CodeBuild Autoriser l'interaction avec d'autres AWS services - AWS CodeBuild

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

CodeBuild Autoriser l'interaction avec d'autres AWS services

Si vous suivez les étapes décrites Mise en route à l'aide de la console pour y accéder AWS CodeBuild pour la première fois, vous n'avez probablement pas besoin des informations contenues dans cette rubrique. Cependant, au fur et à mesure que vous continuez à utiliser CodeBuild, vous souhaiterez peut-être faire des choses telles que CodeBuild autoriser l'interaction avec d'autres AWS services.

CodeBuild Pour pouvoir interagir avec les AWS services dépendants en votre nom, vous avez besoin d'un rôle AWS CodeBuild de service. Vous pouvez créer un rôle CodeBuild de service à l'aide des AWS CodePipeline consoles CodeBuild or. Pour plus d'informations, consultez :

Si vous ne prévoyez pas d'utiliser ces consoles, cette section explique comment créer un rôle de CodeBuild service avec la IAM console ou le AWS CLI.

Important

CodeBuild utilise le rôle de service pour toutes les opérations effectuées en votre nom. Si le rôle comprend des autorisations que l'utilisateur ne devrait pas avoir, vous avez peut-être remonté accidentellement ses autorisations. Vérifiez que le rôle accorde le privilège le plus faible.

Le rôle de service décrit sur cette page contient une politique qui accorde les autorisations minimales requises pour être utilisé CodeBuild. Il se peut que vous deviez ajouter des autorisations supplémentaires, en fonction de votre cas d'utilisation.

Pour créer un rôle CodeBuild de service (console)
  1. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

    Vous devez vous être déjà connecté à la console à l'aide de l'une des actions suivantes :

    • Votre compte AWS root. Ceci n'est pas recommandé. Pour plus d'informations, consultez la section L'utilisateur Compte AWS root dans le guide de l'utilisateur.

    • Utilisateur administrateur de votre AWS compte. Pour plus d'informations, consultez la section Création de votre premier utilisateur et groupe Compte AWS root dans le guide de l'utilisateur.

    • Un utilisateur de votre AWS compte autorisé à effectuer les actions minimales suivantes :

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

      Pour plus d'informations, consultez la section Présentation des IAM politiques dans le guide de l'utilisateur.

  2. Dans le panneau de navigation, choisissez Politiques.

  3. Choisissez Create Policy (Créer une politique).

  4. Sur la page Créer une politique, choisissez JSON.

  5. Pour la JSON politique, entrez ce qui suit, puis choisissez Réviser la politique :

    { "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": "*" } ] }
    Note

    Cette politique contient des déclarations qui autorisent l'accès à un nombre potentiellement important de AWS ressources. Pour restreindre AWS CodeBuild l'accès à des AWS ressources spécifiques, modifiez la valeur du Resource tableau. Pour plus d'informations, consultez la documentation de sécurité du AWS service.

  6. Sur la page Review Policy (Examiner une stratégie), pour Policy Name (Nom de stratégie), saisissez un nom pour la stratégie (par exemple, CodeBuildServiceRolePolicy), puis choisissez Create policy (Créer une stratégie).

    Note

    Si vous choisissez un autre nom, veillez à l'utiliser tout au long de cette procédure.

  7. Dans le panneau de navigation, choisissez Roles (Rôles).

  8. Sélectionnez Create role (Créer un rôle).

  9. Sur la page Créer un rôle, le AWS service étant déjà sélectionné, choisissez CodeBuild, puis choisissez Next:Permissions.

  10. Sur la page Joindre des politiques d'autorisation CodeBuildServiceRolePolicy, sélectionnez, puis choisissez Suivant : Révision.

  11. Sur la page Create role and review (Créer un rôle et vérifier), pour Role name (Nom du rôle), saisissez le nom du rôle (par exemple, CodeBuildServiceRole), puis choisissez Create role (Créer un rôle).

Pour créer un rôle CodeBuild de service (AWS CLI)
  1. Assurez-vous d'avoir configuré la AWS CLI clé AWS d'accès et la clé d'accès AWS secrète correspondant à l'une des IAM entités, comme décrit dans la procédure précédente. Pour plus d'informations, consultez Préparation de l'installation de l' AWS Command Line Interface dans le Guide de l'utilisateur AWS Command Line Interface .

  2. Dans un répertoire vide du poste de travail local ou de l'instance où le AWS CLI est installé, créez deux fichiers nommés create-role.json etput-role-policy.json. Si vous choisissez des noms de fichier différents, substituez-les tout au long de cette procédure.

    create-role.json:

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

    Nous vous recommandons d’utiliser les clés de condition aws:SourceAccount et aws:SourceArn pour vous protéger contre le problème du député confus. Par exemple, vous pouvez modifier la politique de confiance précédente avec les blocs de conditions suivants. aws:SourceAccountC'est le propriétaire du CodeBuild projet et aws:SourceArn c'est le CodeBuild projetARN.

    Si vous souhaitez limiter votre rôle de service à un AWS compte, cela create-role.json pourrait ressembler à ceci :

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

    Si vous souhaitez limiter votre rôle de service à un CodeBuild projet spécifique, cela create-role.json pourrait ressembler à ceci :

    { "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" } } } ] }
    Note

    Si vous ne connaissez pas ou n'avez pas encore choisi le nom de votre CodeBuild projet et que vous souhaitez une restriction de politique de confiance pour un ARN modèle particulier, vous pouvez remplacer cette partie ARN par un caractère générique (*). Après avoir créé votre projet, vous pouvez mettre à jour la politique de confiance.

    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": "*" } ] }
    Note

    Cette politique contient des déclarations qui autorisent l'accès à un nombre potentiellement important de AWS ressources. Pour restreindre AWS CodeBuild l'accès à des AWS ressources spécifiques, modifiez la valeur du Resource tableau. Pour plus d'informations, consultez la documentation de sécurité du AWS service.

  3. Placez-vous dans le répertoire dans lequel vous avez enregistré les fichiers précédents, puis exécutez les deux commandes suivantes, une par une, dans cet ordre. Vous pouvez utiliser des valeurs différentes pour CodeBuildServiceRole et CodeBuildServiceRolePolicy, mais veillez à les substituer ici.

    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