

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.

# Erlauben CodeBuild Sie die Interaktion mit anderen Diensten AWS
<a name="setting-up-service-role"></a>

Wenn Sie die Schritte AWS CodeBuild für den Zugriff [Erste Schritte mit der Konsole](getting-started-overview.md#getting-started) 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:
+ [Erstellen Sie ein Build-Projekt (Konsole)](create-project.md#create-project-console)
+ [Erstellen Sie eine Pipeline, die CodeBuild (CodePipeline Konsole) verwendet](how-to-create-pipeline-console.md)
+ [Hinzufügen einer CodeBuild Build-Aktion zu einer Pipeline (CodePipeline Konsole)](how-to-create-pipeline-add.md)
+ [Ändern der Einstellungen eines Build-Projekts (Konsole)](change-project.md#change-project-console)

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

**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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) zugesteht.  
Die auf dieser Seite beschriebene Servicerolle enthält eine Richtlinie, die Mindestberechtigungen zur Verwendung von CodeBuild gewährt. Je nach Anwendungsfall müssen Sie möglicherweise zusätzliche Berechtigungen hinzufügen.<a name="setting-up-service-role-console"></a>

**Um eine CodeBuild Servicerolle (Konsole) zu erstellen**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

   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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) *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](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html).
   + 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 die IAM-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).

1. Wählen Sie im Navigationsbereich **Richtlinien**.

1. Wählen Sie **Richtlinie erstellen** aus.

1. Wählen Sie auf der Seite **Create Policy** die Option **JSON** aus.

1. Geben Sie für die JSON-Richtlinie das Folgende ein und wählen Sie dann **Review Policy (Richtlinie prüfen)** aus:

------
#### [ 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": "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.

1. 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.

1. Wählen Sie im Navigationsbereich **Rollen** aus.

1. Wählen Sie **Create role** (Rolle erstellen) aus.

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

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

1. 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)**.<a name="setting-up-service-role-cli"></a>

**Um eine CodeBuild Servicerolle zu erstellen (AWS CLI)**

1. Stellen Sie sicher, dass Sie die 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) im *AWS Command Line Interface -Benutzerhandbuch*.

1. 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` und`put-role-policy.json`. Wenn Sie andere Dateinamen wählen, achten Sie darauf, diese in dieser gesamten Anleitung zu verwenden.

   `create-role.json`:

------
#### [ 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) 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 das `aws:SourceArn` ist das CodeBuild Projekt ARN.

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

------
#### [ JSON ]

****  

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

------

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

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "codebuild.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceArn": "arn:aws:codebuild:us-east-1:111122223333:project/MyProject"
                   }
               }
           }
       ]
   }
   ```

------
**Anmerkung**  
Wenn Sie keinen Namen für Ihr CodeBuild Projekt kennen oder sich nicht für einen Namen entschieden haben und eine Vertrauensrichtlinien-Beschränkung für ein bestimmtes ARN-Muster wünschen, können Sie diesen Teil des ARN durch einen Platzhalter (\$1) ersetzen. Nachdem Sie Ihr Projekt erstellt haben, können Sie die Vertrauensrichtlinie aktualisieren.

   `put-role-policy.json`:

------
#### [ 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.

1. 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
   ```