Erlaube CodeBuild die Interaktion mit anderen AWS Diensten - AWS CodeBuild

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erlaube CodeBuild die Interaktion mit anderen AWS Diensten

Wenn Sie die Schritte AWS CodeBuild für den Zugriff Erste Schritte mit der Konsole zum ersten Mal ausführen, benötigen Sie die Informationen in diesem Thema höchstwahrscheinlich nicht. Wenn Sie die Nutzung jedoch fortsetzen CodeBuild, möchten Sie möglicherweise beispielsweise die Interaktion mit anderen AWS Diensten zulassen CodeBuild .

Um die Interaktion mit abhängigen AWS Diensten in Ihrem Namen CodeBuild zu ermöglichen, benötigen Sie eine AWS CodeBuild Servicerolle. Sie können eine CodeBuild Servicerolle mithilfe der AWS CodePipeline Konsolen CodeBuild oder erstellen. Weitere Informationen finden Sie hier:

Wenn Sie nicht beabsichtigen, diese Konsolen zu verwenden, wird in diesem Abschnitt beschrieben, wie Sie eine CodeBuild Servicerolle mit der IAM Konsole oder der erstellen AWS CLI.

Wichtig

CodeBuild verwendet die Servicerolle für alle Vorgänge, die in Ihrem Namen ausgeführt werden. Wenn die Rolle Berechtigungen umfasst, die der Benutzer nicht haben sollte, können Sie die Berechtigungen eines Benutzers versehentlich weiterleiten. Stellen Sie sicher, dass die Rolle die geringsten Rechte zugesteht.

Die auf dieser Seite beschriebene Servicerolle enthält eine Richtlinie, die die für die Verwendung erforderlichen Mindestberechtigungen gewährt CodeBuild. Je nach Anwendungsfall müssen Sie möglicherweise zusätzliche Berechtigungen hinzufügen.

Um eine CodeBuild Servicerolle (Konsole) zu erstellen
  1. Öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/.

    Sie sollten bereits unter Verwendung eines der folgenden Konten bzw. Benutzer bei der Konsole angemeldet sein:

    • Ihr AWS Root-Konto. Dies wird nicht empfohlen. Weitere Informationen finden Sie unter Der AWS-Konto Root-Benutzer im Benutzerhandbuch.

    • Ein Administratorbenutzer in Ihrem AWS Konto. Weitere Informationen finden Sie im Benutzerhandbuch unter Erstellen Ihres ersten AWS-Konto Root-Benutzers und Ihrer ersten Root-Gruppe.

    • Ein Benutzer in Ihrem AWS Konto, der berechtigt ist, mindestens die folgenden Aktionen durchzuführen:

      iam:AddRoleToInstanceProfile iam:AttachRolePolicy iam:CreateInstanceProfile iam:CreatePolicy iam:CreateRole iam:GetRole iam:ListAttachedRolePolicies iam:ListPolicies iam:ListRoles iam:PassRole iam:PutRolePolicy iam:UpdateAssumeRolePolicy

      Weitere Informationen finden Sie im Benutzerhandbuch unter Überblick über IAM Richtlinien.

  2. Wählen Sie im Navigationsbereich Richtlinien.

  3. Wählen Sie Create Policy (Richtlinie erstellen) aus.

  4. Wählen Sie auf der Seite Richtlinie erstellen die Option JSON.

  5. Geben Sie für die JSON Richtlinie Folgendes ein und wählen Sie dann Richtlinie überprüfen aus:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsPolicy", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "CodeCommitPolicy", "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" }, { "Sid": "S3GetObjectPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*" }, { "Sid": "S3PutObjectPolicy", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "*" }, { "Sid": "ECRPullPolicy", "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" }, { "Sid": "ECRAuthPolicy", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
    Anmerkung

    Diese Richtlinie enthält Aussagen, die den Zugriff auf eine potenziell große Anzahl von AWS Ressourcen ermöglichen. AWS CodeBuild Um den Zugriff auf bestimmte AWS Ressourcen zu beschränken, ändern Sie den Wert des Resource Arrays. Weitere Informationen finden Sie in der Sicherheitsdokumentation für den AWS Dienst.

  6. Geben Sie auf der Seite Review Policy (Richtlinie prüfen) unter Policy Name (Richtlinienname) einen Namen für die Richtlinie ein (z. B. CodeBuildServiceRolePolicy), und wählen Sie dann Create policy (Richtlinie erstellen).

    Anmerkung

    Wenn Sie einen anderen Namen verwenden, müssen Sie diesen während der gesamten Anleitung verwenden.

  7. Wählen Sie im Navigationsbereich Rollen aus.

  8. Wählen Sie Rolle erstellen aus.

  9. Wählen CodeBuildSie auf der Seite „Rolle erstellen“, auf der der AWS Dienst bereits ausgewählt ist, die Option und anschließend Weiter: Berechtigungen aus.

  10. Wählen Sie auf der Seite „Berechtigungsrichtlinien anhängen“ die Option CodeBuildServiceRolePolicyund anschließend Weiter: Überprüfen aus.

  11. Geben Sie auf der Seite Create role and review (Rolle erstellen und prüfen) für Role name (Rollenname) einen Namen für die Rolle ein (z. B. CodeBuildServiceRole), und wählen Sie dann Create role (Rolle erstellen).

Um eine CodeBuild Servicerolle zu erstellen (AWS CLI)
  1. Stellen Sie sicher, dass Sie den AWS CLI mit dem AWS Zugriffsschlüssel und dem AWS geheimen Zugriffsschlüssel konfiguriert haben, die einer der IAM Entitäten entsprechen, wie im vorherigen Verfahren beschrieben. Weitere Informationen finden Sie unter Installieren der AWS Command Line Interface im AWS Command Line Interface -Benutzerhandbuch.

  2. Erstellen Sie in einem leeren Verzeichnis auf der lokalen Arbeitsstation oder Instanz, auf der das installiert AWS CLI ist, zwei Dateien mit dem Namen create-role.json undput-role-policy.json. Wenn Sie andere Dateinamen wählen, achten Sie darauf, diese in dieser gesamten Anleitung zu verwenden.

    create-role.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    Anmerkung

    Wir empfehlen Ihnen, die aws:SourceAccount- und aws:SourceArn-Bedingungsschlüssel zu verwenden, um sich vor dem Problem des verwirrten Stellvertreters zu schützen. Sie können beispielsweise die vorherige Vertrauensrichtlinie mit den folgenden Bedingungsblöcken bearbeiten. Der aws:SourceAccount ist der Eigentümer des CodeBuild Projekts und der aws:SourceArn ist das CodeBuild ProjektARN.

    Wenn Sie Ihre Servicerolle auf ein AWS Konto beschränken möchten, create-role.json könnte das etwa so aussehen:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": [ "account-ID" ] } } } ] }

    Wenn Sie Ihre Servicerolle auf ein bestimmtes CodeBuild Projekt beschränken möchten, create-role.json könnte das etwa so aussehen:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:codebuild:region-ID:account-ID:project/project-name" } } } ] }
    Anmerkung

    Wenn Sie keinen Namen für Ihr CodeBuild Projekt kennen oder sich noch nicht dafür entschieden haben und eine Vertrauensrichtlinie für ein bestimmtes ARN Muster festlegen möchten, können Sie diesen Teil von durch einen Platzhalter (*) ersetzen. ARN Nachdem Sie Ihr Projekt erstellt haben, können Sie die Vertrauensrichtlinie aktualisieren.

    put-role-policy.json:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsPolicy", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "CodeCommitPolicy", "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" }, { "Sid": "S3GetObjectPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*" }, { "Sid": "S3PutObjectPolicy", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
    Anmerkung

    Diese Richtlinie enthält Aussagen, die den Zugriff auf eine potenziell große Anzahl von AWS Ressourcen ermöglichen. AWS CodeBuild Um den Zugriff auf bestimmte AWS Ressourcen zu beschränken, ändern Sie den Wert des Resource Arrays. Weitere Informationen finden Sie in der Sicherheitsdokumentation für den AWS Dienst.

  3. Wechseln Sie in das Verzeichnis, in dem Sie die obigen Dateien gespeichert haben, und führen Sie die folgenden Befehle einzeln und in der angegebenen Reihenfolge aus. Sie können andere Werte für CodeBuildServiceRole und CodeBuildServiceRolePolicy verwenden. In diesem Fall müssen Sie sie hier verwenden.

    aws iam create-role --role-name CodeBuildServiceRole --assume-role-policy-document file://create-role.json
    aws iam put-role-policy --role-name CodeBuildServiceRole --policy-name CodeBuildServiceRolePolicy --policy-document file://put-role-policy.json