Wie behebe ich Zugriffsverweigerungsfehler oder Berechtigungsprobleme in CodePipeline?
Wenn ich meine Dateien auf AWS CodePipeline hochlade, erhalte ich die Fehlermeldung „Access Denied“ (Zugriff verweigert).
Lösung
Möglicherweise erhältst du aufgrund unzureichender Berechtigungen für den Amazon Simple Storage Service (Amazon S3)-Bucket den Fehler „Access Denied“ (Zugriff verweigert) oder einen Berechtigungsfehler. Möglicherweise erhältst du auch eine Fehlermeldung, wenn du deinem AWS Identity and Access Management (IAM)-Benutzer und deiner Rolle nicht die richtigen Berechtigungen zugeordnet hast.
Benutzerberechtigungen
Stelle sicher, dass die von AWS verwalteten Richtlinienberechtigungen zum Erstellen und Verwalten von CodePipeline-Ressourcen dem IAM-Benutzer zugeordnet sind.
CodePipeline-Servicerolle
Stelle sicher, dass die mit der CodePipeline verknüpfte Servicerolle über Berechtigungen zur Interaktion mit AWS-Services verfügt.
Bearbeite die Servicerollenanweisung, um den Zugriff auf Ressourcen, die du nicht verwendest, zu entfernen oder hinzuzufügen. Um die Servicerollenanweisung zu bearbeiten, sodass die Berechtigungen auf eine bestimmte Ressource eingeschränkt werden, füge den Amazon-Ressourcennamen (ARN) in den Wert Ressource ein. Hänge deiner Ressource das folgende Beispiel für eine CodePipeline-Servicerollenrichtlinie an, um die Mindestberechtigungen zu gewähren:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3BucketAccess", "Effect": "Allow", "Action": [ "s3:GetBucketVersioning", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::[[pipeArtifactBucketNames]]" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" } } }, { "Sid": "AllowS3ObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:GetObjectVersion", "s3:PutObjectTagging", "s3:GetObjectTagging", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::[[pipeArtifactBucketNames]]/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" } } } ] }
Hinweis: Ersetze pipeArtifactBucketNames durch deinen S3-Bucket-Namen und accountId durch deine AWS-Konto-ID.
CodePipeline-Artefakt-Bucket
Vergewissere dich, dass du die Bucket-Richtlinie und die Berechtigungen für den S3-Bucket, der die Pipeline-Artefakte speichert, korrekt zugewiesen hast.
Informationen zum kontoübergreifenden Zugriff findest du im Abschnitt Aktualisieren der Bucket-Richtlinie für den CodePipeline-Artefakt-Bucket in Konto B unter Wie konfiguriere ich einen CodePipeline-Quellschritt mit einem kontoübergreifenden CodeCommit-Repository?
AWS KMS-Berechtigungen
Vergewissere dich, dass die für die Verschlüsselung verwendeten Schlüssel des AWS Key Management Service (AWS KMS) über die Schlüsselrichtlinien verfügen, die Berechtigungen für kontoübergreifende Ressourcen gewähren. Füge deiner IAM-Rolle die folgende Beispielrichtlinie hinzu, um Berechtigungen hinzuzufügen, die die Verwendung des KMS-Schlüssels für eine kontoübergreifende Rolle ermöglichen.
{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_B:role/cross_account_role_name", // allows access to cross account role "AWS": "arn:aws:iam::account_B:root" // allows access to any role for account_B }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
Hinweis: Ersetze account_B:role/cross_account_role_name durch deinen ARN.
CodeConnections-Berechtigungen
Stelle bei Pipelines, die AWS CodeConnections verwenden, sicher, dass die Verbindung über die Berechtigungen für den Zugriff auf das Quell-Repository verfügt. Wenn die Liste nur einige Repositorys enthält, besteht möglicherweise eine Einschränkung für die Connector-Anwendung, die in deinem Source Control Management (SCM)-System eines Drittanbieters installiert ist.
Um dieses Problem zu beheben, aktualisiere die Anwendung in deinem SCM mit Zugriff auf die Repositorys. Um den Repository-Zugriff in deinem SCM zu überprüfen, überprüfe die Einstellungen für den Repository-Zugriff. Du kannst CodeConnections verwenden, um Drittanbieter von Quellen zu Pipelines hinzuzufügen.
- Themen
- Management & Governance
- Sprache
- Deutsch
