

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.

# Sécurité dans AWS CodeBuild
<a name="security"></a>

La sécurité du cloud AWS est la priorité absolue. En tant que AWS client, vous bénéficiez de centres de données et d'architectures réseau conçus pour répondre aux exigences des entreprises les plus sensibles en matière de sécurité.

La sécurité est une responsabilité partagée entre vous AWS et vous. Le [modèle de responsabilité partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) décrit cette notion par les termes sécurité *du* cloud et sécurité *dans* le cloud :
+ **Sécurité du cloud** : AWS est chargée de protéger l'infrastructure qui exécute les AWS services dans le AWS Cloud. AWS vous fournit également des services que vous pouvez utiliser en toute sécurité. Des auditeurs tiers testent et vérifient régulièrement l’efficacité de notre sécurité dans le cadre des [programmes de conformitéAWS](https://aws.amazon.com/compliance/programs/). Pour en savoir plus sur les programmes de conformité qui s'appliquent à AWS CodeBuild, consultez la section [AWS Services concernés par programme de conformité](https://aws.amazon.com/compliance/services-in-scope/).
+ **Sécurité dans le cloud** — Votre responsabilité est déterminée par le AWS service que vous utilisez. Vous êtes également responsable d’autres facteurs, y compris la sensibilité de vos données, les exigences de votre entreprise, ainsi que la législation et la réglementation applicables.

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagée lors de son utilisation CodeBuild. Les rubriques suivantes expliquent comment procéder à la configuration CodeBuild pour atteindre vos objectifs de sécurité et de conformité. Vous apprendrez également à utiliser d'autres AWS services qui vous aident à surveiller et à sécuriser vos CodeBuild ressources.

**Topics**
+ [

# Protection des données dans AWS CodeBuild
](data-protection.md)
+ [

# Gestion des identités et des accès dans AWS CodeBuild
](auth-and-access-control.md)
+ [

# Validation de conformité pour AWS CodeBuild
](compliance-validation.md)
+ [

# Résilience dans AWS CodeBuild
](codebuild-disaster-recovery-resiliency.md)
+ [

# Sécurité de l'infrastructure dans AWS CodeBuild
](infrastructure-security.md)
+ [

# Accédez à votre fournisseur source dans CodeBuild
](access-tokens.md)
+ [

# Prévention du cas de figure de l’adjoint désorienté entre services
](cross-service-confused-deputy-prevention.md)

# Protection des données dans AWS CodeBuild
<a name="data-protection"></a>

Le [modèle de responsabilité AWS partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) de s'applique à la protection des données dans AWS CodeBuild. Comme décrit dans ce modèle, AWS est chargé de protéger l'infrastructure mondiale qui gère tous les AWS Cloud. La gestion du contrôle de votre contenu hébergé sur cette infrastructure relève de votre responsabilité. Vous êtes également responsable des tâches de configuration et de gestion de la sécurité des Services AWS que vous utilisez. Pour plus d’informations sur la confidentialité des données, consultez [Questions fréquentes (FAQ) sur la confidentialité des données](https://aws.amazon.com/compliance/data-privacy-faq/). Pour en savoir plus sur la protection des données en Europe, consultez le billet de blog [Modèle de responsabilité partagée d’AWS et RGPD (Règlement général sur la protection des données)](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) sur le *Blog de sécuritéAWS *.

À des fins de protection des données, nous vous recommandons de protéger les Compte AWS informations d'identification et de configurer les utilisateurs individuels avec AWS IAM Identity Center ou Gestion des identités et des accès AWS (IAM). Ainsi, chaque utilisateur se voit attribuer uniquement les autorisations nécessaires pour exécuter ses tâches. Nous vous recommandons également de sécuriser vos données comme indiqué ci-dessous :
+ Utilisez l’authentification multifactorielle (MFA) avec chaque compte.
+  SSL/TLS À utiliser pour communiquer avec AWS les ressources. Nous exigeons TLS 1.2 et recommandons TLS 1.3.
+ Configurez l'API et la journalisation de l'activité des utilisateurs avec AWS CloudTrail. Pour plus d'informations sur l'utilisation des CloudTrail sentiers pour capturer AWS des activités, consultez la section [Utilisation des CloudTrail sentiers](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) dans le *guide de AWS CloudTrail l'utilisateur*.
+ Utilisez des solutions de AWS chiffrement, ainsi que tous les contrôles de sécurité par défaut qu'ils contiennent Services AWS.
+ Utilisez des services de sécurité gérés avancés tels qu’Amazon Macie, qui contribuent à la découverte et à la sécurisation des données sensibles stockées dans Amazon S3.
+ Si vous avez besoin de modules cryptographiques validés par la norme FIPS 140-3 pour accéder AWS via une interface de ligne de commande ou une API, utilisez un point de terminaison FIPS. Pour plus d’informations sur les points de terminaison FIPS disponibles, consultez [Norme FIPS (Federal Information Processing Standard) 140-3](https://aws.amazon.com/compliance/fips/).

Nous vous recommandons fortement de ne jamais placer d’informations confidentielles ou sensibles, telles que les adresses e-mail de vos clients, dans des balises ou des champs de texte libre tels que le champ **Nom**. Cela inclut lorsque vous travaillez avec CodeBuild ou d'autres Services AWS utilisateurs de la console, de l'API ou AWS SDKs. AWS CLI Toutes les données que vous entrez dans des balises ou des champs de texte de forme libre utilisés pour les noms peuvent être utilisées à des fins de facturation ou dans les journaux de diagnostic. Si vous fournissez une adresse URL à un serveur externe, nous vous recommandons fortement de ne pas inclure d’informations d’identification dans l’adresse URL permettant de valider votre demande adressée à ce serveur.

 Pour protéger les informations sensibles, les informations suivantes sont masquées dans CodeBuild les journaux : 
+  Chaînes spécifiées à l'aide du Parameter Store dans les variables d'environnement CodeBuild du projet ou dans la section buildspec`env/parameter-store`. Pour plus d'informations, consultez la [présentation de la console [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) et Systems Manager Parameter Store dans le guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) de l'*utilisateur d'Amazon EC2 Systems Manager*. 
+  Chaînes spécifiées AWS Secrets Manager à l'aide des variables d'environnement CodeBuild du projet ou de la section buildspec`env/secrets-manager`. Pour de plus amples informations, veuillez consulter [Gestion des clés](security-key-management.md). 

Pour de plus amples informations sur la protection des données, veuillez consulter le billet de blog [Modèle de responsabilité partagée AWS et RGPD](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) à la page *Blog sur la sécuritéAWS *.

**Topics**
+ [

# Chiffrement des données
](security-encryption.md)
+ [

# Gestion des clés
](security-key-management.md)
+ [

# Confidentialité du trafic
](security-traffic-privacy.md)

# Chiffrement des données
<a name="security-encryption"></a>

Le chiffrement est un élément important de la CodeBuild sécurité. Certains chiffrements, par exemple pour les données en transit, sont fournis par défaut et vous n'avez pas besoin de faire quoi que ce soit. Vous pouvez en configurer d'autres, par exemple pour les données au repos, lorsque vous créez votre projet ou votre génération. 
+ **Chiffrement des données au repos** - Les artefacts de build, tels qu'un cache, des journaux, des fichiers de données de rapports de test bruts exportés et des résultats de build, sont chiffrés par défaut à l'aide Clés gérées par AWS de. Si vous ne souhaitez pas utiliser ces clés KMS, vous devez créer et configurer une clé gérée par le client. Pour de plus amples informations, veuillez consulter [Création de clés KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) et [Concepts d'AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) dans le *Guide de l'utilisateur AWS Key Management Service *. 
  + Vous pouvez stocker l'identifiant de la clé AWS KMS CodeBuild utilisée pour chiffrer l'artefact de sortie de construction dans la variable d'`CODEBUILD_KMS_KEY_ID`environnement. Pour de plus amples informations, consultez [Variables d'environnement dans les environnements de génération](build-env-ref-env-vars.md). 
  + Vous pouvez spécifier une clé gérée par le client lorsque vous créez un projet de construction. Pour plus d'informations, consultez [Set the Encryption Key Using the Console](create-project.md#encryptionkey-console) et [Définissez la clé de chiffrement à l'aide de la CLI](create-project.md#cli.encryptionkey). 

  Les volumes Amazon Elastic Block Store de votre parc de produits sont chiffrés par défaut à l'aide de Clés gérées par AWS. 
+ **Chiffrement des données en transit** : toutes les communications entre les clients CodeBuild et entre CodeBuild et leurs dépendances en aval sont protégées par des connexions TLS signées à l'aide du processus de signature Signature version 4. Tous les CodeBuild points de terminaison utilisent des certificats SHA-256 gérés par. AWS Autorité de certification privée Pour de plus amples informations, veuillez consulter [Processus de signature Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) et [Présentation d'ACM PCA](https://docs.aws.amazon.com/privateca/latest/userguide/). 
+ **Chiffrement des artefacts** de génération : le rôle de CodeBuild service associé au projet de génération nécessite l'accès à une clé KMS afin de chiffrer ses artefacts de sortie de génération. Par défaut, CodeBuild utilise un Clé gérée par AWS pour Amazon S3 dans votre AWS compte. Si vous ne souhaitez pas l'utiliser Clé gérée par AWS, vous devez créer et configurer une clé gérée par le client. Pour plus d'informations, reportez-vous à [Chiffrer les sorties de build](setting-up-kms.md) la section [Création de clés](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) dans le *Guide du AWS KMS développeur*.

# Gestion des clés
<a name="security-key-management"></a>

Vous pouvez protéger votre contenu d'une utilisation non autorisée grâce au chiffrement. Stockez vos clés de chiffrement dans AWS Secrets Manager, puis autorisez le rôle de CodeBuild service associé au projet de génération à obtenir les clés de chiffrement depuis votre compte Secrets Manager. Pour de plus amples informations, veuillez consulter [Chiffrez les résultats de construction à l'aide d'une clé gérée par le client](setting-up-kms.md), [Créez un projet de construction dans AWS CodeBuild](create-project.md), [Exécuter AWS CodeBuild les builds manuellement](run-build.md) et [Didacticiel : Stockage et récupération d'un secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html). 

Utilisez la variable d'`CODEBUILD_KMS_KEY_ID`environnement dans une commande de construction pour obtenir l'identifiant de AWS KMS clé. Pour de plus amples informations, veuillez consulter [Variables d'environnement dans les environnements de génération](build-env-ref-env-vars.md). 

Vous pouvez utiliser Secrets Manager pour protéger les informations d'identification d'un registre privé qui stocke une image Docker utilisée pour votre environnement d'exécution. Pour de plus amples informations, veuillez consulter [Registre privé avec AWS Secrets Manager échantillon pour CodeBuild](sample-private-registry.md). 

# Confidentialité du trafic
<a name="security-traffic-privacy"></a>

Vous pouvez améliorer la sécurité de vos builds en les configurant CodeBuild pour utiliser un point de terminaison VPC d'interface. Pour ce faire, vous n'avez pas besoin d'une passerelle Internet, d'un périphérique NAT ni d'une passerelle privée virtuelle. Il n'est pas non plus nécessaire de le configurer PrivateLink, bien que cela soit recommandé. Pour de plus amples informations, veuillez consulter [Utilisation de points de terminaison de VPC](use-vpc-endpoints-with-codebuild.md). Pour plus d'informations sur PrivateLink les points de terminaison VPC, consultez [AWS PrivateLink](https://aws.amazon.com/privatelink/)et [Accès aux AWS](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink) services via. PrivateLink 

# Gestion des identités et des accès dans AWS CodeBuild
<a name="auth-and-access-control"></a>

L'accès à AWS CodeBuild nécessite des informations d'identification. Ces informations d'identification doivent être autorisées à accéder aux AWS ressources, telles que le stockage et la récupération d'artefacts de build dans des compartiments S3 et la consultation d'Amazon CloudWatch Logs pour les builds. Les sections suivantes décrivent comment vous pouvez utiliser [Gestion des identités et des accès AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)(IAM) et comment CodeBuild sécuriser l'accès à vos ressources :

# Vue d'ensemble de la gestion des autorisations d'accès à vos AWS CodeBuild ressources
<a name="auth-and-access-control-iam-access-control-identity-based"></a>

Chaque AWS ressource appartient à un AWS compte, et les autorisations de création ou d'accès à une ressource sont régies par des politiques d'autorisation. Un compte administrateur peut attacher des politiques d'autorisations à des identités IAM (c'est-à-dire des utilisateurs, des groupes et des rôles). 

**Note**  
Un administrateur de compte (ou utilisateur administrateur) est un utilisateur doté des privilèges d’administrateur. Pour plus d'informations, consultez [Bonnes pratiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l'utilisateur IAM*.

Lorsque vous accordez des autorisations, vous décidez qui obtient les autorisations, les ressources auxquelles elles peuvent accéder et les actions pouvant être effectuées sur ces ressources.

**Topics**
+ [

## AWS CodeBuild ressources et opérations
](#arn-formats)
+ [

## Présentation de la propriété des ressources
](#understanding-resource-ownership)
+ [

## Gestion de l’accès aux ressources
](#managing-access-resources)
+ [

## Spécification des éléments d'une politique : actions, effets et mandataires
](#actions-effects-principals)

## AWS CodeBuild ressources et opérations
<a name="arn-formats"></a>

Dans AWS CodeBuild, la ressource principale est un projet de construction. Dans une stratégie, vous utilisez un Amazon Resource Name (ARN) pour identifier la ressource à laquelle la stratégie s'applique. Les builds sont également des ressources auxquelles ils sont ARNs associés. Pour plus d'informations, consultez [Amazon Resource Names (ARN) et AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) dans le *Référence générale d'Amazon Web Services*.


| Type de ressource | Format ARN | 
| --- | --- | 
| Génération de projet |  `arn:aws:codebuild:region-ID:account-ID:project/project-name`  | 
| Génération |  `arn:aws:codebuild:region-ID:account-ID:build/build-ID`  | 
| Groupe de rapports | arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name | 
| Rapport | arn:aws:codebuild:region-ID:account-ID:report/report-ID | 
| Flotte |  `arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID`  | 
|  Toutes les CodeBuild ressources  |  `arn:aws:codebuild:*`  | 
|  Toutes les CodeBuild ressources détenues par le compte spécifié dans la AWS région spécifiée  |  `arn:aws:codebuild:region-ID:account-ID:*`  | 

**Important**  
Lorsque vous utilisez la fonctionnalité de capacité réservée, les données mises en cache sur les instances de flotte, y compris les fichiers source, les couches Docker et les répertoires mis en cache spécifiés dans les spécifications de construction, peuvent être accessibles aux autres projets du même compte. Cela est intentionnel et permet aux projets au sein d'un même compte de partager des instances de flotte.

**Note**  
La plupart AWS des services considèrent les deux points (:)) ou les barres obliques (/) comme le même caractère dans ARNs. Cependant, CodeBuild utilise une correspondance exacte dans les modèles de ressources et les règles. Veillez à utiliser les caractères corrects lors de la création de modèles d'événements, afin qu'ils correspondent à la syntaxe ARN de la ressource.

Par exemple, vous pouvez indiquer un projet de construction spécifique (*myBuildProject*) dans votre instruction en utilisant son ARN comme suit :

```
"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"
```

Pour spécifier toutes les ressources, ou si une action d'API n'est pas compatible ARNs, utilisez le caractère générique (\$1) dans l'`Resource`élément comme suit :

```
"Resource": "*"
```

Certaines actions CodeBuild d'API acceptent plusieurs ressources (par exemple,`BatchGetProjects`). Pour spécifier plusieurs ressources dans une seule instruction, séparez-les ARNs par des virgules, comme suit :

```
"Resource": [
  "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject",
  "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject"
]
```

CodeBuild fournit un ensemble d'opérations permettant de travailler avec les CodeBuild ressources. Pour en obtenir la liste, consultez [AWS CodeBuild référence aux autorisations](auth-and-access-control-permissions-reference.md).

## Présentation de la propriété des ressources
<a name="understanding-resource-ownership"></a>

Le AWS compte possède les ressources créées dans le compte, quelle que soit la personne qui les a créées. Plus précisément, le propriétaire de la ressource est le AWS compte de l'[entité principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) (c'est-à-dire le compte root, un utilisateur ou un rôle IAM) qui authentifie la demande de création de ressource. Les exemples suivants illustrent comment cela fonctionne :
+ Si vous utilisez les informations d'identification du compte root de votre AWS compte pour créer une règle, votre AWS compte est le propriétaire de la CodeBuild ressource.
+ Si vous créez un utilisateur dans votre AWS compte et que vous accordez l'autorisation de créer CodeBuild des ressources à cet utilisateur, celui-ci peut créer CodeBuild des ressources. Cependant, votre AWS compte, auquel appartient l'utilisateur, est propriétaire des CodeBuild ressources.
+ Si vous créez un rôle IAM dans votre AWS compte avec les autorisations nécessaires pour créer CodeBuild des ressources, toute personne pouvant assumer ce rôle peut créer des CodeBuild ressources. Votre AWS compte, auquel appartient le rôle, est propriétaire des CodeBuild ressources.

## Gestion de l’accès aux ressources
<a name="managing-access-resources"></a>

Une politique d'autorisations décrit qui a accès à quelles ressources. 

**Note**  
Cette section décrit l'utilisation d'IAM dans AWS CodeBuild. Elle ne fournit pas d’informations détaillées sur le service IAM. Pour une documentation complète sur IAM, consultez [Qu'est-ce que IAM ?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) dans le *Guide de l'utilisateur IAM*. Pour plus d'informations sur la syntaxe et les descriptions des stratégies IAM, consultez [Référence de stratégie AWS IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dans le *Guide de l'utilisateur IAM*.

Les politiques attachées à une identité IAM sont appelées des politiques basées sur l'identité (politiques IAM). Les politiques associées à une ressource sont appelées politiques basées sur les ressources. CodeBuild prend en charge les politiques basées sur l'identité et les politiques basées sur les ressources pour certaines applications en lecture seule à des fins de APIs partage de ressources entre comptes.

### Accès sécurisé aux compartiments S3
<a name="secure-s3-buckets"></a>

Nous vous recommandons vivement d'inclure les autorisations suivantes dans votre rôle IAM afin de vérifier que le compartiment S3 associé à votre CodeBuild projet est votre propriété ou celle d'une personne de confiance. Ces autorisations ne sont pas incluses dans les politiques et les rôles AWS gérés. Vous devez les ajouter vous-même. 
+  `s3:GetBucketAcl` 
+  `s3:GetBucketLocation` 

Si le propriétaire d'un compartiment S3 utilisé par votre projet change, vous devez vérifier que vous êtes toujours propriétaire du compartiment et mettre à jour les autorisations dans votre rôle IAM dans le cas contraire. Pour plus d’informations, consultez [Permettre aux utilisateurs d'interagir avec CodeBuild](setting-up-service-permissions-group.md) et [CodeBuild Autoriser l'interaction avec d'autres AWS services](setting-up-service-role.md). 

## Spécification des éléments d'une politique : actions, effets et mandataires
<a name="actions-effects-principals"></a>

Pour chaque AWS CodeBuild ressource, le service définit un ensemble d'opérations d'API. Pour accorder des autorisations pour ces opérations d'API CodeBuild , définissez un ensemble d'actions que vous pouvez spécifier dans une politique. Certaines opérations d'API peuvent exiger des autorisations pour plusieurs actions afin de réaliser l'opération d'API. Pour plus d’informations, consultez [AWS CodeBuild ressources et opérations](#arn-formats) et [AWS CodeBuild référence aux autorisations](auth-and-access-control-permissions-reference.md).

Voici les éléments de base d'une politique :
+ **Ressource :** vous utilisez un nom Amazon Resource Name (ARN) pour identifier la ressource à laquelle s'applique la politique.
+ **Action** : vous utilisez des mots clés d'action pour identifier les opérations sur les ressources que vous souhaitez autoriser ou refuser. Par exemple, l'autorisation `codebuild:CreateProject` autorise l'utilisateur à effectuer l'opération `CreateProject`.
+ **Effet** : vous spécifiez l'effet, qu'il s'agisse d'autoriser ou de refuser, lorsque l'utilisateur demande l'action. Si vous n’accordez pas explicitement l’accès pour (autoriser) une ressource, l’accès est implicitement refusé. Vous pouvez également explicitement refuser l’accès à une ressource. Vous pouvez le faire afin de vous assurer qu'un utilisateur n'y a pas accès, même si une stratégie différente accorde cet accès.
+ **Principal** — Dans les politiques basées sur l'identité (politiques IAM), l'utilisateur auquel la politique est attachée est le principal implicite. Pour les politiques basées sur une ressource, vous spécifiez l'utilisateur, le compte, le service ou une autre entité qui doit recevoir les autorisations.

Pour en savoir plus sur la syntaxe des stratégies IAM et pour obtenir des descriptions, consultez [Référence de stratégie IAM AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dans le *Guide de l'utilisateur IAM*.

Pour un tableau présentant toutes les actions d' CodeBuild API et les ressources auxquelles elles s'appliquent, consultez le[AWS CodeBuild référence aux autorisations](auth-and-access-control-permissions-reference.md).

# Utilisation de politiques basées sur l'identité pour AWS CodeBuild
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

Cette rubrique fournit des exemples de stratégies basées sur l'identité qui montrent comment un administrateur de compte peut lier des stratégies d'autorisations à des identités IAM (autrement dit, des utilisateurs, des groupes et des rôles) et accorder ainsi des autorisations pour effectuer des opérations sur les ressources AWS CodeBuild .

**Important**  
Nous vous recommandons de consulter d'abord les rubriques d'introduction qui expliquent les concepts de base et les options disponibles pour gérer l'accès à vos CodeBuild ressources. Pour de plus amples informations, veuillez consulter [Vue d'ensemble de la gestion des autorisations d'accès à vos AWS CodeBuild ressources](auth-and-access-control-iam-access-control-identity-based.md).

**Topics**
+ [

## Autorisations requises pour utiliser la AWS CodeBuild console
](#console-permissions)
+ [

## Autorisations requises pour se connecter AWS CodeBuild à Amazon Elastic Container Registry
](#ecr-policies)
+ [

## Autorisations requises pour que la AWS CodeBuild console puisse se connecter aux fournisseurs de sources
](#console-policies)
+ [

## AWS politiques gérées (prédéfinies) pour AWS CodeBuild
](#managed-policies)
+ [

## CodeBuild politiques et notifications gérées
](#notifications-permissions)
+ [

## CodeBuild mises à jour des politiques AWS gérées
](#security-iam-awsmanpol-updates)
+ [

## Exemples de politiques gérées par le client
](#customer-managed-policies)

Voici un exemple de stratégie d'autorisations qui autorise un utilisateur à obtenir des informations sur des projets de génération uniquement dans la région `us-east-2` pour le compte `123456789012` pour tout projet de génération dont le nom commence par `my` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

## Autorisations requises pour utiliser la AWS CodeBuild console
<a name="console-permissions"></a>

Un utilisateur qui utilise la AWS CodeBuild console doit disposer d'un ensemble minimal d'autorisations lui permettant de décrire les autres AWS ressources du AWS compte. Vous devez détenir les autorisations des services suivants :
+ AWS CodeBuild
+ Amazon CloudWatch
+ CodeCommit (si vous stockez votre code source dans un AWS CodeCommit dépôt)
+ Amazon Elastic Container Registry (Amazon ECR) (si vous utilisez un environnement de construction qui repose sur une image Docker dans un référentiel Amazon ECR)
**Note**  
Depuis le 26 juillet 2022, la politique IAM par défaut a été mise à jour. Pour de plus amples informations, veuillez consulter [Autorisations requises pour se connecter AWS CodeBuild à Amazon Elastic Container Registry](#ecr-policies).
+ Amazon Elastic Container Service (Amazon ECS) (si vous utilisez un environnement de construction qui repose sur une image Docker dans un référentiel Amazon ECR)
+ Gestion des identités et des accès AWS (JE SUIS)
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Storage Service (Amazon S3)

Si vous créez une politique IAM plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas comme prévu.

## Autorisations requises pour se connecter AWS CodeBuild à Amazon Elastic Container Registry
<a name="ecr-policies"></a>

Depuis le 26 juillet 2022, AWS CodeBuild a mis à jour sa politique IAM par défaut pour les autorisations Amazon ECR. Les autorisations suivantes ont été supprimées de la politique par défaut :

```
"ecr:PutImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload"
```

Pour les CodeBuild projets créés avant le 26 juillet 2022, nous vous recommandons de mettre à jour votre politique avec la politique Amazon ECR suivante :

```
"Action": [
    "ecr:BatchCheckLayerAvailability",
    "ecr:GetDownloadUrlForLayer",
    "ecr:BatchGetImage"
]
```

Pour plus d'informations sur la mise à jour de votre politique, consultez[Permettre aux utilisateurs d'interagir avec CodeBuild](setting-up-service-permissions-group.md).

## Autorisations requises pour que la AWS CodeBuild console puisse se connecter aux fournisseurs de sources
<a name="console-policies"></a>

La AWS CodeBuild console utilise les actions d'API suivantes pour se connecter aux fournisseurs de sources (par exemple, les GitHub référentiels).
+ `codebuild:ListConnectedOAuthAccounts`
+ `codebuild:ListRepositories`
+ `codebuild:PersistOAuthToken`
+ `codebuild:ImportSourceCredentials`

Vous pouvez associer des fournisseurs de sources (tels que GitHub des référentiels) à vos projets de génération à l'aide de la AWS CodeBuild console. Pour ce faire, vous devez d'abord ajouter les actions d'API précédentes aux politiques d'accès IAM associées à l'utilisateur que vous utilisez pour accéder à la AWS CodeBuild console.

Les actions d'API `ListConnectedOAuthAccounts`, `ListRepositories` et `PersistOAuthToken` ne sont pas conçues pour être appelées par votre code. Par conséquent, ces actions d'API ne sont pas incluses dans le AWS CLI et AWS SDKs.

## AWS politiques gérées (prédéfinies) pour AWS CodeBuild
<a name="managed-policies"></a>

AWS répond à de nombreux cas d'utilisation courants en fournissant des politiques IAM autonomes créées et administrées par. AWS Ces politiques AWS gérées accordent les autorisations nécessaires pour les cas d'utilisation courants afin que vous n'ayez pas à rechercher les autorisations nécessaires. Les politiques gérées fournissent CodeBuild également des autorisations pour effectuer des opérations dans d'autres services, tels que IAM AWS CodeCommit, Amazon EC2, Amazon ECR, Amazon SNS et CloudWatch Amazon Events, conformément aux responsabilités des utilisateurs auxquels la politique en question a été accordée. Par exemple, il s'agit d'une `AWSCodeBuildAdminAccess` politique utilisateur de niveau administratif qui permet aux utilisateurs dotés de cette politique de créer et de gérer des règles relatives aux CloudWatch événements pour les versions de projets et des rubriques Amazon SNS pour les notifications relatives aux événements liés au projet (sujets dont les noms sont préfixés par`arn:aws:codebuild:`), ainsi que d'administrer des projets et des groupes de rapports dans. CodeBuild Pour plus d’informations, consultez [Politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dans le *Guide de l’utilisateur IAM*.

Les politiques AWS gérées suivantes, que vous pouvez associer aux utilisateurs de votre compte, sont spécifiques à AWS CodeBuild.

**AWSCodeBuildAdminAccess**  
Fournit un accès complet CodeBuild , y compris les autorisations pour administrer les projets de CodeBuild construction. 

**AWSCodeBuildDeveloperAccess**  
Permet d'accéder à l'administration du projet de build, CodeBuild mais ne l'autorise pas.

**AWSCodeBuildReadOnlyAccess**  
Fournit un accès en lecture seule à. CodeBuild

Pour accéder aux artefacts de sortie de build CodeBuild créés, vous devez également joindre la politique AWS gérée nommée`AmazonS3ReadOnlyAccess`.

Pour créer et gérer des rôles de CodeBuild service, vous devez également associer la politique AWS gérée nommée`IAMFullAccess`.

Vous pouvez également créer vos propres politiques IAM personnalisées afin d'accorder des autorisations pour les actions et les ressources CodeBuild. Vous pouvez attacher ces stratégies personnalisées aux utilisateurs ou groupes qui nécessitent ces autorisations.

**Topics**
+ [

### AWSCodeBuildAdminAccess
](#admin-access-policy)
+ [

### AWSCodeBuildDeveloperAccess
](#developer-access-policy)
+ [

### AWSCodeBuildReadOnlyAccess
](#read-only-access-policy)

### AWSCodeBuildAdminAccess
<a name="admin-access-policy"></a>

La `AWSCodeBuildAdminAccess` politique fournit un accès complet aux projets de CodeBuild construction CodeBuild, y compris les autorisations nécessaires à leur administration. Appliquez cette politique uniquement aux utilisateurs de niveau administratif afin de leur accorder un contrôle total sur les CodeBuild projets, les groupes de rapports et les ressources associées de votre AWS compte, y compris la possibilité de supprimer des projets et des groupes de rapports.

Pour la stratégie entièrement gérée, voir la référence [ AWSCodeBuildAdminAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildAdminAccess.html)des politiques gérées par IAM.

### AWSCodeBuildDeveloperAccess
<a name="developer-access-policy"></a>

La `AWSCodeBuildDeveloperAccess` politique permet d'accéder à toutes les fonctionnalités et aux ressources liées aux projets CodeBuild et aux groupes de rapports. Cette politique n'autorise pas les utilisateurs à supprimer CodeBuild des projets, des groupes de rapports ou des ressources connexes dans d'autres AWS services, tels que CloudWatch les événements. Nous vous recommandons d'appliquer cette stratégie à la plupart des utilisateurs.

Pour la stratégie entièrement gérée, voir la référence [ AWSCodeBuildDeveloperAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildDeveloperAccess.html)des politiques gérées par IAM.

### AWSCodeBuildReadOnlyAccess
<a name="read-only-access-policy"></a>

La `AWSCodeBuildReadOnlyAccess` politique accorde un accès en lecture seule aux CodeBuild ressources associées dans d'autres AWS services. Appliquez cette stratégie aux utilisateurs qui peuvent afficher et exécuter des builds, afficher des projets et afficher des groupes de rapports, mais qui ne peuvent pas y apporter de modifications. 

Pour la stratégie entièrement gérée, voir la référence [ AWSCodeBuildReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildReadOnlyAccess.xml)des politiques gérées par IAM.

## CodeBuild politiques et notifications gérées
<a name="notifications-permissions"></a>

CodeBuild prend en charge les notifications, qui peuvent informer les utilisateurs des modifications importantes apportées aux projets de construction. Les politiques gérées CodeBuild incluent des déclarations de politique relatives à la fonctionnalité de notification. Pour plus d'informations, consultez [En quoi consistent les notifications ?](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html)

### Autorisations liées aux notifications dans les stratégies gérées en lecture seule
<a name="notifications-readonly"></a>

La stratégie gérée `AWSCodeBuildReadOnlyAccess` inclut les déclarations suivantes pour autoriser l'accès en lecture seule aux notifications. Les utilisateurs auxquels s’applique cette stratégie gérée peuvent voir des notifications pour les ressources, mais ne peuvent ni les créer, ni les gérer ni s'y abonner. 

```
   {
        "Sid": "CodeStarNotificationsPowerUserAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:DescribeNotificationRule"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*:*:project/*"}
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListEventTypes",
            "codestar-notifications:ListTargets"
        ],
        "Resource": "*"
    }
```

### Autorisations liées aux notifications dans d'autres stratégies gérées
<a name="notifications-otheraccess"></a>

La stratégie gérée `AWSCodeBuildDeveloperAccess` inclut les déclarations suivantes pour autoriser les utilisateurs à créer et modifier des notifications, et s'y abonner. Les utilisateurs ne peuvent pas supprimer les règles de notification ni gérer les balises pour les ressources.

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*:*:project/*"}
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

Pour plus d'informations sur l'IAM et les notifications, voir [Identity and Access ManagementAWS CodeStarNotifications](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

## CodeBuild mises à jour des politiques AWS gérées
<a name="security-iam-awsmanpol-updates"></a>

Consultez les détails des mises à jour des politiques AWS gérées CodeBuild depuis que ce service a commencé à suivre ces modifications. Pour recevoir des alertes automatiques concernant les modifications apportées à cette page, abonnez-vous au fil RSS sur[AWS CodeBuild Historique du document du guide de l'utilisateur](history.md).




| Modifier | Description | Date | 
| --- | --- | --- | 
|  `AWSCodeBuildAdminAccess`et `AWSCodeBuildDeveloperAccess` — Mise à jour des politiques existantes  |  CodeBuild a ajouté l'`ssmmessages:OpenDataChannel`autorisation à ces politiques pour prendre en charge le débogage interactif des versions de Session Manager. Les `AWSCodeBuildDeveloperAccess` politiques `AWSCodeBuildAdminAccess` et incluent désormais l'`ssmmessages:OpenDataChannel`action permettant aux ressources de session du gestionnaire de session (`arn:aws:ssm:*:*:session/*`) de prendre en charge l'application du protocole SigV4 sur cette WebSocket API.  | 1er décembre 2025 | 
|  `AWSCodeBuildAdminAccess`,`AWSCodeBuildDeveloperAccess`, et `AWSCodeBuildReadOnlyAccess` — Mise à jour des politiques existantes  |  CodeBuild a mis à jour une ressource relative à ces politiques. Les `AWSCodeBuildReadOnlyAccess` politiques `AWSCodeBuildAdminAccess``AWSCodeBuildDeveloperAccess`,, et ont été modifiées pour mettre à jour une ressource existante. La ressource d'origine `arn:aws:codebuild:*` a été mise à jour vers`arn:aws:codebuild:*:*:project/*`.  | 15 novembre 2024 | 
|  `AWSCodeBuildAdminAccess`,`AWSCodeBuildDeveloperAccess`, et `AWSCodeBuildReadOnlyAccess` — Mise à jour des politiques existantes  |  CodeBuild a ajouté une ressource à ces politiques pour soutenir le changement de AWS CodeConnections marque. Les `AWSCodeBuildReadOnlyAccess` politiques `AWSCodeBuildAdminAccess``AWSCodeBuildDeveloperAccess`,, et ont été modifiées pour ajouter une ressource,`arn:aws:codeconnections:*:*:*`.  | 18 avril 2024 | 
|  `AWSCodeBuildAdminAccess`et `AWSCodeBuildDeveloperAccess` — Mise à jour des politiques existantes  |  CodeBuild a ajouté une autorisation à ces politiques pour prendre en charge un type de notification supplémentaire utilisant Amazon Q Developer dans les applications de chat. Les `AWSCodeBuildDeveloperAccess` politiques `AWSCodeBuildAdminAccess` et ont été modifiées pour ajouter une autorisation,`chatbot:ListMicrosoftTeamsChannelConfigurations`.  | 16 mai 2023 | 
|  CodeBuild a commencé à suivre les modifications  |  CodeBuild a commencé à suivre les modifications apportées AWS à ses politiques gérées.  | 16 mai 2021 | 

## Exemples de politiques gérées par le client
<a name="customer-managed-policies"></a>

Dans cette section, vous trouverez des exemples de stratégies utilisateur qui accordent des autorisations pour des actions AWS CodeBuild . Ces politiques fonctionnent lorsque vous utilisez l' CodeBuild API AWS SDKs, ou AWS CLI. Lorsque vous utilisez la console, vous devez accorder des autorisations supplémentaires spécifiques à la console. Pour plus d'informations, consultez [Autorisations requises pour utiliser la AWS CodeBuild console](#console-permissions).

Vous pouvez utiliser les exemples de politiques IAM suivants pour limiter l' CodeBuild accès de vos utilisateurs et de vos rôles.

**Topics**
+ [

### Autorisation d'un utilisateur à obtenir des informations sur les projets de génération
](#customer-managed-policies-example-batch-get-projects)
+ [

### Autoriser un utilisateur à obtenir des informations sur les flottes
](#customer-managed-policies-get-information-about-fleets)
+ [

### Autorisation d'un utilisateur à obtenir des informations sur les groupes de rapports
](#customer-managed-policies-get-information-about-report-group)
+ [

### Autorisation d'un utilisateur à obtenir des informations sur les rapports
](#customer-managed-policies-get-information-about-reports)
+ [

### Autorisation d'un utilisateur à créer des projets de génération
](#customer-managed-policies-example-create-project)
+ [

### Autoriser un utilisateur à créer une flotte
](#customer-managed-policies-example-create-fleet)
+ [

### Autorisation d'un utilisateur à créer un groupe de rapports
](#customer-managed-policies-example-create-report-group)
+ [

### Autoriser un utilisateur à supprimer une flotte
](#customer-managed-policies-example-delete-fleet)
+ [

### Autorisation d'un utilisateur à supprimer un groupe de rapports
](#customer-managed-policies-example-delete-report-group)
+ [

### Autorisation d'un utilisateur à supprimer un rapport
](#customer-managed-policies-example-delete-report)
+ [

### Autorisation d'un utilisateur à supprimer des projets de génération
](#customer-managed-policies-example-delete-project)
+ [

### Autorisation d'un utilisateur à obtenir une liste de noms de projet de génération
](#customer-managed-policies-example-list-projects)
+ [

### Autorisation d'un utilisateur à modifier des informations sur les projets de génération
](#customer-managed-policies-example-update-project)
+ [

### Autoriser un utilisateur à modifier une flotte
](#customer-managed-policies-example-change-fleet)
+ [

### Autorisation d'un utilisateur à modifier un groupe de rapports
](#customer-managed-policies-example-change-report-group)
+ [

### Autorisation d'un utilisateur à obtenir des informations sur les générations
](#customer-managed-policies-example-batch-get-builds)
+ [

### Autoriser un utilisateur à obtenir une liste des versions IDs pour un projet de construction
](#customer-managed-policies-example-list-builds-for-project)
+ [

### Autoriser un utilisateur à obtenir une liste de versions IDs
](#customer-managed-policies-example-list-builds)
+ [

### Autoriser un utilisateur à obtenir une liste de flottes
](#customer-managed-policies-example-get-list-of-fleets)
+ [

### Autorisation d'un utilisateur à obtenir une liste de groupes de rapports
](#customer-managed-policies-example-get-list-of-report-groups)
+ [

### Autorisation d'un utilisateur à obtenir une liste de rapports
](#customer-managed-policies-example-get-list-of-reports)
+ [

### Autorisation d'un utilisateur à obtenir une liste de rapports pour un groupe de rapports
](#customer-managed-policies-example-get-list-of-reports-for-report-group)
+ [

### Autorisation d'un utilisateur à obtenir une liste de cas de test pour un rapport
](#customer-managed-policies-example-get-list-of-test-cases-for-report)
+ [

### Autorisation d'un utilisateur à démarrer l'exécution de générations
](#customer-managed-policies-example-start-build)
+ [

### Autorisation d'un utilisateur à tenter d'arrêter des générations
](#customer-managed-policies-example-stop-build)
+ [

### Autorisation d'un utilisateur à tenter de supprimer des générations
](#customer-managed-policies-example-delete-builds)
+ [

### Permettre à un utilisateur d'obtenir des informations sur les images Docker gérées par CodeBuild
](#customer-managed-policies-example-list-curated-environment-images)
+ [

### Autoriser un utilisateur à ajouter une politique d'autorisation pour un rôle de service de flotte
](#customer-managed-policies-example-permission-policy-fleet-service-role)
+ [

### Autoriser CodeBuild l'accès aux AWS services requis pour créer une interface réseau VPC
](#customer-managed-policies-example-create-vpc-network-interface)
+ [

### Utilisez une déclaration de refus pour éviter AWS CodeBuild de vous déconnecter des fournisseurs de sources
](#customer-managed-policies-example-deny-disconnect)

### Autorisation d'un utilisateur à obtenir des informations sur les projets de génération
<a name="customer-managed-policies-example-batch-get-projects"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à obtenir des informations sur des projets de génération dans la région `us-east-2` pour le compte `123456789012` pour tout projet de génération dont le nom commence par `my` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"      
    }
  ]
}
```

------

### Autoriser un utilisateur à obtenir des informations sur les flottes
<a name="customer-managed-policies-get-information-about-fleets"></a>

L'exemple de déclaration de politique suivant permet à un utilisateur d'obtenir des informations sur les flottes de la `us-east-2` région pour créer un compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetFleets",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à obtenir des informations sur les groupes de rapports
<a name="customer-managed-policies-get-information-about-report-group"></a>

L'exemple de déclaration de stratégie suivant permet à un utilisateur d'obtenir des informations sur les groupes de rapports dans la région `us-east-2` du compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReportGroups",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à obtenir des informations sur les rapports
<a name="customer-managed-policies-get-information-about-reports"></a>

L'exemple de déclaration de stratégie suivant permet à un utilisateur d'obtenir des informations sur les rapports dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReports",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à créer des projets de génération
<a name="customer-managed-policies-example-create-project"></a>

L'exemple de déclaration de politique suivant permet à un utilisateur de créer des projets de construction avec n'importe quel nom, mais uniquement dans la `us-east-2` région pour le compte `123456789012` et en utilisant uniquement le rôle de CodeBuild service spécifié :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

L'exemple de déclaration de politique suivant permet à un utilisateur de créer des projets de construction avec n'importe quel nom, mais uniquement dans la `us-east-2` région pour le compte `123456789012` et en utilisant uniquement le rôle de CodeBuild service spécifié. Cela garantit également que l'utilisateur ne peut utiliser le rôle de service spécifié qu'avec d'autres services AWS CodeBuild et non avec d'autres AWS services.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole",
      "Condition": {
          "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"}
      }
    }
  ]
}
```

------

### Autoriser un utilisateur à créer une flotte
<a name="customer-managed-policies-example-create-fleet"></a>

L'exemple de déclaration de politique suivant permet à un utilisateur de créer une flotte dans la `us-east-2` région pour créer un compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à créer un groupe de rapports
<a name="customer-managed-policies-example-create-report-group"></a>

L'exemple suivant d'instruction de stratégie permet à un utilisateur de créer un groupe de rapports dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Autoriser un utilisateur à supprimer une flotte
<a name="customer-managed-policies-example-delete-fleet"></a>

L'exemple de déclaration de politique suivant permet à un utilisateur de supprimer une flotte dans la `us-east-2` région pour créer un compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à supprimer un groupe de rapports
<a name="customer-managed-policies-example-delete-report-group"></a>

L'exemple suivant d'instruction de stratégie permet à un utilisateur de supprimer un groupe de rapports dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à supprimer un rapport
<a name="customer-managed-policies-example-delete-report"></a>

L'exemple suivant d'instruction de stratégie permet à un utilisateur de supprimer un rapport dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReport",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à supprimer des projets de génération
<a name="customer-managed-policies-example-delete-project"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à supprimer des projets de génération dans la région `us-east-2` pour le compte `123456789012` pour tout projet de génération dont le nom commence par `my` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à obtenir une liste de noms de projet de génération
<a name="customer-managed-policies-example-list-projects"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à obtenir une liste de noms de projet de génération pour le même compte :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListProjects",
      "Resource": "*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à modifier des informations sur les projets de génération
<a name="customer-managed-policies-example-update-project"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à modifier les informations sur des projets de génération avec n'importe quel nom, mais uniquement dans la région `us-east-2` pour le compte `123456789012`, et à utiliser uniquement le rôle de service AWS CodeBuild spécifié :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

### Autoriser un utilisateur à modifier une flotte
<a name="customer-managed-policies-example-change-fleet"></a>

L'exemple de déclaration de politique suivant permet à un utilisateur de modifier une flotte dans la `us-east-2` région pour créer un compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à modifier un groupe de rapports
<a name="customer-managed-policies-example-change-report-group"></a>

L'exemple suivant d'instruction de stratégie permet à un utilisateur de modifier un groupe de rapports dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à obtenir des informations sur les générations
<a name="customer-managed-policies-example-batch-get-builds"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à obtenir des informations sur les générations dans la région `us-east-2` pour le compte `123456789012` pour les projets de génération nommés `my-build-project` et `my-other-build-project` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetBuilds",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### Autoriser un utilisateur à obtenir une liste des versions IDs pour un projet de construction
<a name="customer-managed-policies-example-list-builds-for-project"></a>

L'exemple de déclaration de politique suivant permet à un utilisateur d'obtenir une liste des constructions IDs dans la `us-east-2` région `123456789012` pour tenir compte des projets de construction nommés `my-build-project` et `my-other-build-project` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuildsForProject",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### Autoriser un utilisateur à obtenir une liste de versions IDs
<a name="customer-managed-policies-example-list-builds"></a>

L'exemple de déclaration de politique suivant permet à un utilisateur d'obtenir une liste de toutes les IDs versions pour le même compte :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuilds",
      "Resource": "*"
    }
  ]
}
```

------

### Autoriser un utilisateur à obtenir une liste de flottes
<a name="customer-managed-policies-example-get-list-of-fleets"></a>

L'exemple de déclaration de politique suivant permet à un utilisateur d'obtenir une liste des flottes de la `us-east-2` région pour créer un compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListFleets",
      "Resource": "*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à obtenir une liste de groupes de rapports
<a name="customer-managed-policies-example-get-list-of-report-groups"></a>

L'exemple de déclaration de stratégie suivant permet à un utilisateur d'obtenir une liste de groupes de rapports dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportGroups",
      "Resource": "*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à obtenir une liste de rapports
<a name="customer-managed-policies-example-get-list-of-reports"></a>

L'exemple de déclaration de stratégie suivant permet à un utilisateur d'obtenir une liste de rapports dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReports",
      "Resource": "*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à obtenir une liste de rapports pour un groupe de rapports
<a name="customer-managed-policies-example-get-list-of-reports-for-report-group"></a>

L'exemple de déclaration de stratégie suivant permet à un utilisateur d'obtenir une liste de rapports pour un groupe de rapports dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportsForReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à obtenir une liste de cas de test pour un rapport
<a name="customer-managed-policies-example-get-list-of-test-cases-for-report"></a>

L'exemple de déclaration de stratégie suivant permet à un utilisateur d'obtenir une liste de cas de test pour un rapport dans la région `us-east-2` pour le compte `123456789012` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DescribeTestCases",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à démarrer l'exécution de générations
<a name="customer-managed-policies-example-start-build"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à exécuter des générations dans la région `us-east-2` pour le compte `123456789012` pour les projets de génération dont le nom commence par `my` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StartBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à tenter d'arrêter des générations
<a name="customer-managed-policies-example-stop-build"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à tenter d'arrêter des générations uniquement dans la région `us-east-2` pour le compte `123456789012` pour tout projet de génération dont le nom commence par `my` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StopBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Autorisation d'un utilisateur à tenter de supprimer des générations
<a name="customer-managed-policies-example-delete-builds"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à tenter de supprimer des générations uniquement dans la région `us-east-2` pour le compte `123456789012` pour tout projet de génération dont le nom commence par `my` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchDeleteBuilds",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Permettre à un utilisateur d'obtenir des informations sur les images Docker gérées par CodeBuild
<a name="customer-managed-policies-example-list-curated-environment-images"></a>

L'exemple de déclaration de stratégie suivant autorise un utilisateur à obtenir des informations sur toutes les images Docker gérées par CodeBuild :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListCuratedEnvironmentImages",
      "Resource": "*"
    }
  ]
}
```

------

### Autoriser un utilisateur à ajouter une politique d'autorisation pour un rôle de service de flotte
<a name="customer-managed-policies-example-permission-policy-fleet-service-role"></a>

L'exemple de déclaration de politique de ressources suivant permet à un utilisateur d'ajouter une politique d'autorisation VPC pour un rôle de service de flotte :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeBuildFleetVpcCreateNI",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                "arn:aws:ec2:us-west-2:111122223333:security-group/security-group-id-1",
                "arn:aws:ec2:us-west-2:111122223333:network-interface/*"
            ]
        },
        {
            "Sid": "CodeBuildFleetVpcPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CodeBuildFleetVpcNIPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1"
                    ]
                }
            }
        }
    ]
}
```

------

L'exemple de déclaration de politique de ressources suivant permet à un utilisateur d'ajouter une politique d'autorisation Amazon Managed Image (AMI) personnalisée pour un rôle de service de flotte :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeImages",
            "Resource": "*"
        } 
    ]
}
```

------

L'exemple de déclaration de politique de confiance suivant permet à un utilisateur d'ajouter une politique d'autorisation pour un rôle de service de flotte :

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

****  

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

------

### Autoriser CodeBuild l'accès aux AWS services requis pour créer une interface réseau VPC
<a name="customer-managed-policies-example-create-vpc-network-interface"></a>

L'exemple de déclaration de politique suivant accorde AWS CodeBuild l'autorisation de créer une interface réseau dans un VPC avec deux sous-réseaux :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:AuthorizedService": "codebuild.amazonaws.com"
                },
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-2"
                    ]
                }
            }
        }
    ]
}
```

------

### Utilisez une déclaration de refus pour éviter AWS CodeBuild de vous déconnecter des fournisseurs de sources
<a name="customer-managed-policies-example-deny-disconnect"></a>

 L'exemple de déclaration de stratégie suivant utilise une déclaration de refus pour empêcher AWS CodeBuild de se déconnecter des fournisseurs de source. Il utilise `codebuild:DeleteOAuthToken`, qui est l'inverse de `codebuild:PersistOAuthToken` et de `codebuild:ImportSourceCredentials`, pour se connecter aux fournisseurs de source. Pour de plus amples informations, veuillez consulter [Autorisations requises pour que la AWS CodeBuild console puisse se connecter aux fournisseurs de sources](#console-policies). 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "codebuild:DeleteOAuthToken",
      "Resource": "*"
    }
  ]
}
```

------

# AWS CodeBuild référence aux autorisations
<a name="auth-and-access-control-permissions-reference"></a>

Vous pouvez utiliser des AWS clés de condition larges dans vos AWS CodeBuild polices pour exprimer des conditions. Pour obtenir une liste, consultez la section [Clés disponibles](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) dans le *guide de l'utilisateur IAM*.

Vous spécifiez les actions dans le champ `Action` de la politique. Pour spécifier une action, utilisez le préfixe `codebuild:` suivi du nom de l'opération d'API (par exemple, `codebuild:CreateProject` ou `codebuild:StartBuild`). Pour spécifier plusieurs actions dans une même instruction, séparez-les par une virgule (par exemple, `"Action": [ "codebuild:CreateProject", "codebuild:StartBuild" ]`).

**Utilisation de caractères génériques**

Vous spécifiez un ARN, avec ou sans caractère générique (\$1) comme valeur de ressource dans le champ `Resource` de la stratégie. Vous pouvez utiliser un caractère générique pour spécifier plusieurs actions ou ressources. Par exemple, `codebuild:*` spécifie toutes les CodeBuild actions et `codebuild:Batch*` indique toutes les CodeBuild actions commençant par le mot`Batch`. L'exemple suivant accorde l'accès à tous les projets de génération dont le nom commence par `my` : 

```
arn:aws:codebuild:us-east-2:123456789012:project/my*
```<a name="actions-related-to-objects-table"></a>CodeBuild Opérations d'API et autorisations requises pour les actions

BatchDeleteBuilds  
 **Action :** `codebuild:BatchDeleteBuilds`   
Requise pour supprimer des générations  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetBuilds  
 **Action :** `codebuild:BatchGetBuilds`   
Requise pour obtenir des informations sur des générations.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetProjects  
 **Action :** `codebuild:BatchGetProjects`   
Requise pour obtenir des informations sur des projets de génération.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetReportGroups  
 **Action :** `codebuild:BatchGetReportGroups`   
Obligatoire pour obtenir des informations sur les groupes de rapports.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchGetReports  
 **Action :** `codebuild:BatchGetReports`   
Obligatoire pour obtenir des informations sur des générations.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchPutTestCases¹  
 **Action :** `codebuild:BatchPutTestCases`   
Obligatoire pour créer ou mettre à jour un rapport de test.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateProject  
 **Actions :** `codebuild:CreateProject`, `iam:PassRole`   
Requise pour créer des projets de génération.  
 **Ressources:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

CreateReport¹  
 **Action :** `codebuild:CreateReport`   
Obligatoire pour créer un rapport de test.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateReportGroup  
 **Action :** `codebuild:CreateReportGroup`   
Obligatoire pour créer un groupe de rapports.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateWebhook  
 **Action :** `codebuild:CreateWebhook`   
Requise pour créer un webhook.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteProject  
 **Action :** `codebuild:DeleteProject`   
Nécessaire pour supprimer un CodeBuild projet.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteReport  
 **Action :** `codebuild:DeleteReport`   
Obligatoire pour supprimer une règle.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteReportGroup  
 **Action :** `codebuild:DeleteReportGroup`   
Obligatoire pour supprimer un groupe de rapports.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteSourceCredentials  
 **Action :** `codebuild:DeleteSourceCredentials`   
Nécessaire pour supprimer un ensemble d'`SourceCredentialsInfo`objets contenant des informations sur les informations d'identification d'un GitHub référentiel GitHub Enterprise Server ou Bitbucket.   
 **Ressource :** `*` 

DeleteWebhook  
 **Action :** `codebuild:DeleteWebhook`   
Requise pour créer un webhook.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DescribeTestCases  
 **Action :** `codebuild:DescribeTestCases`   
Obligatoire pour renvoyer une liste paginée de cas de test.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

ImportSourceCredentials  
 **Action :** `codebuild:ImportSourceCredentials`   
Nécessaire pour importer un ensemble d'`SourceCredentialsInfo`objets contenant des informations sur les informations d'identification d'un GitHub référentiel GitHub Enterprise Server ou Bitbucket.   
 **Ressource :** `*` 

InvalidateProjectCache  
 **Action :** `codebuild:InvalidateProjectCache`   
Requise pour réinitialiser le cache pour un projet.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListBuildBatches  
 **Action :** `codebuild:ListBuildBatches`   
Nécessaire pour obtenir une liste des lots de construction IDs.  
 **Ressource :** `*` 

ListBuildBatchesForProject  
 **Action :** `codebuild:ListBuildBatchesForProject`   
Nécessaire pour obtenir une liste des lots de construction IDs pour un projet spécifique.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name` 

ListBuilds  
 **Action :** `codebuild:ListBuilds`   
Nécessaire pour obtenir une liste des versions IDs.  
 **Ressource :** `*` 

ListBuildsForProject  
 **Action :** `codebuild:ListBuildsForProject`   
Nécessaire pour obtenir la liste des versions IDs d'un projet de construction.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListCuratedEnvironmentImages  
 **Action :** `codebuild:ListCuratedEnvironmentImages`   
Requise pour obtenir des informations sur toutes les images Docker gérées par AWS CodeBuild.   
 **Ressource :** `*` (requise, mais ne fait pas référence à une ressource AWS adressable) 

ListProjects  
 **Action :** `codebuild:ListProjects`   
Requise pour obtenir une liste de noms de projet de génération.  
 **Ressource :** `*` 

ListReportGroups  
 **Action :** `codebuild:ListReportGroups`   
Obligatoire pour obtenir une liste des groupes de rapports.  
 **Ressource :** `*` 

ListReports  
 **Action :** `codebuild:ListReports`   
Obligatoire pour obtenir une liste de rapports.  
 **Ressource :** `*` 

ListReportsForReportGroup  
 **Action :** `codebuild:ListReportsForReportGroup`   
Obligatoire pour obtenir une liste de rapports pour un groupe de rapports.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

RetryBuild  
**Action :** `codebuild:RetryBuild`   
Nécessaire pour réessayer les builds.  
**Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name `

StartBuild  
 **Action :** `codebuild:StartBuild`   
Requise pour démarrer l'exécution de générations.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

StopBuild  
 **Action :** `codebuild:StopBuild`   
Requise pour tenter d'arrêter des générations en cours d'exécution.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

UpdateProject  
 **Actions :** `codebuild:UpdateProject`, `iam:PassRole`   
Requise pour modifier des informations sur les générations.  
 **Ressources:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateProjectVisibility  <a name="UpdateProjectVisibility"></a>
 **Actions :** `codebuild:UpdateProjectVisibility`, `iam:PassRole`   
Nécessaire pour modifier la visibilité publique des versions d'un projet.  
 **Ressources:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateReport¹  
 **Action :** `codebuild:UpdateReport`   
Obligatoire pour créer ou mettre à jour un rapport de test.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateReportGroup  
 **Action :** `codebuild:UpdateReportGroup`   
Obligatoire pour mettre à jour un groupe de rapports.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateWebhook  
 **Action :** `codebuild:UpdateWebhook`   
Requise pour mettre à jour un webhook.  
 **Ressource :** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

¹ Utilisé uniquement à des fins d'autorisation. Il n'existe aucune API pour cette action.

# Utilisation de balises pour contrôler l'accès aux AWS CodeBuild ressources
<a name="auth-and-access-control-using-tags"></a>

Les conditions figurant dans les déclarations de politique IAM font partie de la syntaxe que vous pouvez utiliser pour spécifier les autorisations relatives aux actions basées sur des CodeBuild projets. Vous pouvez créer une politique qui autorise ou refuse des actions sur des projets en fonction des balises associées à ces projets, puis appliquer ces politiques aux groupes IAM que vous configurez pour gérer les utilisateurs. Pour plus d'informations sur l'application de balises à un projet à l'aide de la console ou AWS CLI consultez[Créez un projet de construction dans AWS CodeBuild](create-project.md). Pour plus d'informations sur l'application de balises à l'aide du CodeBuild SDK, consultez [CreateProject ](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_RequestSyntax)la section « [Tags](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) » dans le manuel de *référence des CodeBuild API*. Pour plus d'informations sur l'utilisation de balises pour contrôler l'accès aux AWS ressources, consultez la section [Contrôle de l'accès aux AWS ressources à l'aide de balises de ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) dans le *guide de l'utilisateur IAM*.

**Important**  
Lorsque vous utilisez la fonctionnalité de capacité réservée, les données mises en cache sur les instances de flotte, y compris les fichiers source, les couches Docker et les répertoires mis en cache spécifiés dans les spécifications de construction, peuvent être accessibles aux autres projets du même compte. Cela est intentionnel et permet aux projets au sein d'un même compte de partager des instances de flotte.

**Example Exemple 1 : Limiter les actions CodeBuild du projet en fonction des balises de ressources**  
 L'exemple suivant refuse toutes les actions `BatchGetProjects` sur les projets marqués avec la clé `Environment` utilisant la valeur `Production`. L'administrateur d'un utilisateur doit associer cette politique IAM en plus de la politique utilisateur gérée aux utilisateurs non autorisés. La clé de condition `aws:ResourceTag` est utilisée pour contrôler l'accès aux ressources en fonction de leurs balises.     
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetProjects"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:ResourceTag/Environment": "Production"
        }
      }
    }
  ]
}
```

**Example Exemple 2 : Limiter les actions CodeBuild du projet en fonction des balises de demande**  
La stratégie suivante refuse aux utilisateurs l'autorisation pour l'action `CreateProject` si la demande contient une balise avec la clé `Environment` et la valeur de clé `Production`. En outre, la stratégie empêche ces utilisateurs non autorisés de modifier des projets en utilisant la clé de condition `aws:TagKeys` pour ne pas autoriser `UpdateProject` si la requête contient une balise avec la clé `Environment`. Un administrateur doit associer cette politique IAM en plus de la politique utilisateur gérée aux utilisateurs qui ne sont pas autorisés à effectuer ces actions. La clé de `aws:RequestTag` condition est utilisée pour contrôler les balises qui peuvent être transmises dans une demande IAM    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:CreateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:RequestTag/Environment": "Production"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:UpdateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": ["Environment"]
        }
      }
    }
  ]
}
```

**Example Exemple 3 : Refuser ou autoriser des actions sur des groupes de rapports en fonction des balises de ressources**  
Vous pouvez créer une politique qui autorise ou refuse les actions sur les CodeBuild ressources (projets et groupes de rapports) en fonction des AWS balises associées à ces ressources, puis appliquer ces politiques aux groupes IAM que vous configurez pour gérer les utilisateurs. Par exemple, vous pouvez créer une politique qui refuse toutes les CodeBuild actions sur tout groupe de rapports dont la clé de AWS balise `Status` et la valeur clé sont`Secret`, puis appliquer cette politique au groupe IAM que vous avez créé pour les développeurs généraux (*Developers*). Vous devez ensuite vous assurer que les développeurs travaillant sur ces groupes de rapports balisés ne sont pas membres de ce *Developers* groupe général, mais appartiennent plutôt à un autre groupe IAM auquel la politique restrictive n'est pas appliquée (`SecretDevelopers`).  
L'exemple suivant refuse toutes les CodeBuild actions sur les groupes de rapports marqués par la clé `Status` et la valeur clé de `Secret` :    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetReportGroups",
        "codebuild:CreateReportGroup",
        "codebuild:DeleteReportGroup",
        "codebuild:ListReportGroups",
        "codebuild:ListReportsForReportGroup",
        "codebuild:UpdateReportGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:RequestedRegion": "us-east-1"
        }
      }
    }
  ]
}
```

**Example Exemple 4 : Limiter CodeBuild les actions en AWSCode BuildDeveloperAccess fonction des balises de ressources**  
Vous pouvez créer des politiques qui autorisent CodeBuild des actions sur tous les groupes de rapports et projets qui ne sont pas marqués par des balises spécifiques. Par exemple, la stratégie suivante accorde l'équivalent des autorisations [AWSCodeBuildDeveloperAccess](auth-and-access-control-iam-identity-based-access-control.md#developer-access-policy) pour tous les groupes de rapports, sauf ceux balisés avec les balises spécifiées :    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codebuild:StartBuild",
            "codebuild:StopBuild",
            "codebuild:BatchGet*",
            "codebuild:GetResourcePolicy",
            "codebuild:DescribeTestCases",
            "codebuild:List*",
            "codecommit:GetBranch",
            "codecommit:GetCommit",
            "codecommit:GetRepository",
            "codecommit:ListBranches",
            "cloudwatch:GetMetricStatistics",
            "events:DescribeRule",
            "events:ListTargetsByRule",
            "events:ListRuleNamesByTarget",
            "logs:GetLogEvents",
            "s3:GetBucketLocation",
            "s3:ListAllMyBuckets"
         ],
         "Resource": "*",
         "Condition": {
            "StringNotEquals": {
               "aws:ResourceTag/Status": "Secret",
               "aws:ResourceTag/Team": "Saanvi"
            }
         }
      }
   ]
}
```

# Affichage des ressources dans la console
<a name="console-resources"></a>

La AWS CodeBuild console doit être `ListRepositories` autorisée à afficher la liste des référentiels de votre AWS compte dans la AWS région où vous êtes connecté. La console comprend également une fonction **Go to resource (Accéder aux ressources)** qui permet d'effectuer rapidement une recherche de ressources sensible à la casse. Cette recherche est effectuée dans votre AWS compte dans la AWS région où vous êtes connecté. Les ressources suivantes sont affichées pour les services suivants :
+ AWS CodeBuild : Projets de génération
+ AWS CodeCommit : Référentiels
+ AWS CodeDeploy : Applications
+ AWS CodePipeline : Pipelines

Pour effectuer cette recherche pour les ressources dans tous les services, vous devez disposer des autorisations suivantes :
+ CodeBuild: `ListProjects`
+ CodeCommit: `ListRepositories`
+ CodeDeploy: `ListApplications`
+ CodePipeline: `ListPipelines`

Les résultats ne sont pas renvoyés pour les ressources d'un service si vous ne disposez pas d'autorisations pour ce service. Même si vous êtes autorisé à afficher des ressources, certaines ressources ne sont pas renvoyées si une valeur `Deny` explicite est définie pour l'affichage de ces ressources.

# Validation de conformité pour AWS CodeBuild
<a name="compliance-validation"></a>

Pour savoir si un [programme Services AWS de conformité Service AWS s'inscrit dans le champ d'application de programmes de conformité](https://aws.amazon.com/compliance/services-in-scope/) spécifiques, consultez Services AWS la section de conformité et sélectionnez le programme de conformité qui vous intéresse. Pour des informations générales, voir Programmes de [AWS conformité Programmes AWS](https://aws.amazon.com/compliance/programs/) de .

Vous pouvez télécharger des rapports d'audit tiers à l'aide de AWS Artifact. Pour plus d'informations, voir [Téléchargement de rapports dans AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Votre responsabilité en matière de conformité lors de l'utilisation Services AWS est déterminée par la sensibilité de vos données, les objectifs de conformité de votre entreprise et les lois et réglementations applicables. Pour plus d'informations sur votre responsabilité en matière de conformité lors de l'utilisation Services AWS, consultez [AWS la documentation de sécurité](https://docs.aws.amazon.com/security/).

# Résilience dans AWS CodeBuild
<a name="codebuild-disaster-recovery-resiliency"></a>

L'infrastructure AWS mondiale est construite autour des AWS régions et des zones de disponibilité. AWS Les régions fournissent plusieurs zones de disponibilité physiquement séparées et isolées, connectées par un réseau à faible latence, à haut débit et hautement redondant. Avec les zones de disponibilité, vous pouvez concevoir et exploiter des applications et des bases de données qui basculent automatiquement d’une zone de disponibilité à l’autre sans interruption. Les zones de disponibilité sont plus hautement disponibles, tolérantes aux pannes et évolutives que les infrastructures traditionnelles à un ou plusieurs centres de données. 

Pour plus d'informations sur AWS les régions et les zones de disponibilité, consultez la section [Infrastructure AWS globale](https://aws.amazon.com/about-aws/global-infrastructure/).

# Sécurité de l'infrastructure dans AWS CodeBuild
<a name="infrastructure-security"></a>

En tant que service géré, AWS CodeBuild il est protégé par la sécurité du réseau AWS mondial. Pour plus d'informations sur les services AWS de sécurité et sur la manière dont AWS l'infrastructure est protégée, consultez la section [Sécurité du AWS cloud](https://aws.amazon.com/security/). Pour concevoir votre AWS environnement en utilisant les meilleures pratiques en matière de sécurité de l'infrastructure, consultez la section [Protection de l'infrastructure](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) dans le cadre * AWS bien architecturé du pilier de sécurité*.

Vous utilisez des appels d'API AWS publiés pour accéder CodeBuild via le réseau. Les clients doivent prendre en charge les éléments suivants :
+ Protocole TLS (Transport Layer Security). Nous exigeons TLS 1.2 et recommandons TLS 1.3.
+ Ses suites de chiffrement PFS (Perfect Forward Secrecy) comme DHE (Ephemeral Diffie-Hellman) ou ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). La plupart des systèmes modernes tels que Java 7 et les versions ultérieures prennent en charge ces modes.

# Accédez à votre fournisseur source dans CodeBuild
<a name="access-tokens"></a>

Pour GitHub ou GitHub Enterprise Server, vous utilisez un jeton d'accès personnel, un secret du Gestionnaire de Secrets, une connexion ou une OAuth application pour accéder au fournisseur source. Pour Bitbucket, vous utilisez un jeton d'accès, un mot de passe d'application, un secret du Gestionnaire de Secrets, une connexion ou une OAuth application pour accéder au fournisseur source. 

**Topics**
+ [

# Créez et stockez un jeton dans un secret du Gestionnaire de Secrets
](asm-create-secret.md)
+ [

# GitHub et accès au serveur d' GitHub entreprise dans CodeBuild
](access-tokens-github-overview.md)
+ [

# Accès à Bitbucket dans CodeBuild
](access-tokens-bitbucket-overview.md)
+ [

# GitLab accéder à CodeBuild
](access-tokens-gitlab-overview.md)

# Créez et stockez un jeton dans un secret du Gestionnaire de Secrets
<a name="asm-create-secret"></a>

Si vous choisissez de stocker votre jeton d'accès à l'aide de Secrets Manager, vous pouvez utiliser une connexion secrète existante ou en créer un nouveau. Pour créer un nouveau secret, procédez comme suit :

------
#### [ AWS Management Console ]

**Pour créer un secret Secrets Manager dans le AWS Management Console**

1. Dans le **champ Source provider**, choisissez **Bitbucket** ou **GitHub Enterprise**. **GitHub**

1. Pour **Credential**, effectuez l'une des opérations suivantes :
   + Choisissez **Informations d'identification source par défaut** pour utiliser les informations d'identification source par défaut de votre compte pour les appliquer à tous les projets.

     1. Si vous n'êtes pas connecté à votre fournisseur de source, choisissez **Gérer les informations d'identification de source par défaut**.

     1. Pour le **type d'identification**, choisissez un type d'identification autre que. **CodeConnections**

     1. Pour **Service**, choisissez **Secrets Manager** et pour **Secrets**, choisissez **Nouveau secret**.

     1. Dans **Nom du secret**, entrez le nom de votre secret.

     1. Dans **Description secrète - facultatif**, entrez une description de votre secret.

     1. Selon le fournisseur source que vous avez choisi, entrez votre jeton ou votre nom d'utilisateur et le mot de passe de l'application, puis choisissez **Enregistrer**.
   + Choisissez **Identifiant source personnalisé pour utiliser un identifiant** source personnalisé afin de remplacer les paramètres par défaut de votre compte.

     1. Pour le **type d'identification**, choisissez un type d'identification autre que. **CodeConnections**

     1. Dans **Connexion**, choisissez **Créer un secret**.

     1. Dans **Nom du secret**, entrez le nom de votre secret.

     1. Dans **Description secrète - facultatif**, entrez une description de votre secret.

     1. Selon le fournisseur source que vous avez choisi, entrez votre jeton ou votre nom d'utilisateur et le mot de passe de l'application, puis choisissez **Créer**.

------
#### [ AWS CLI ]

**Pour créer un secret Secrets Manager dans le AWS CLI**
+ Ouvrez une invite de terminal (Linux, macOS ou Unix) ou de commande (Windows). Utilisez le AWS CLI pour exécuter la **create-secret** commande Secrets Manager.

  ```
  aws secretsmanager create-secret --region <aws-region> \
              --name '<secret-name>' \
              --description '<secret-description>' \
              --secret-string '{
                  "ServerType":"<server-type>",
                  "AuthType":"<auth-type>",
                  "Token":"<token>"
                  }' \
              --tags Key=codebuild:source,Value='' \
                  Key=codebuild:source:type,Value=<type> \
                  Key=codebuild:source:provider,Value=<provider>
  ```

  Les secrets de Secrets Manager qui sont CodeBuild acceptés doivent se trouver dans le même compte et dans la même AWS région que le CodeBuild projet et doivent être au format JSON suivant :

  ```
  {
              "ServerType": ServerType,
              "AuthType: AuthType,
              "Token": string,
              "Username": string // Optional and is only used for Bitbucket app password
          }
  ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/asm-create-secret.html)

  En outre, CodeBuild utilise les balises de ressources suivantes sur le secret pour garantir que les secrets sont facilement sélectionnables lors de la création ou de la modification de projets.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/asm-create-secret.html)

------

# GitHub et accès au serveur d' GitHub entreprise dans CodeBuild
<a name="access-tokens-github-overview"></a>

En GitHub effet, vous pouvez utiliser un jeton d'accès personnel, une OAuth application, un secret du Gestionnaire de Secrets ou une connexion à une GitHub application pour accéder au fournisseur source. Pour GitHub Enterprise Server, vous pouvez utiliser un jeton d'accès personnel, un secret du Gestionnaire de Secrets ou une connexion GitHub App pour accéder au fournisseur source.

**Topics**
+ [

# GitHub Connexions aux applications pour GitHub et GitHub Enterprise Server
](connections-github-app.md)
+ [

# GitHub et jeton d'accès au serveur GitHub Enterprise
](access-tokens-github.md)
+ [

# GitHub OAuth appli
](oauth-app-github.md)

# GitHub Connexions aux applications pour GitHub et GitHub Enterprise Server
<a name="connections-github-app"></a>

Vous pouvez utiliser GitHub l'application pour vous connecter à CodeBuild. GitHub Les connexions aux applications sont prises en charge via [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

L'accès au fournisseur de source vous permet de déclencher une compilation en vous abonnant à [GitHub événements webhook](github-webhook.md) [ CreateWebhook](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateWebhook.html)using ou [Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md) en utilisant in CodeBuild.

**Note**  
CodeConnections est disponible dans un nombre de régions inférieur à CodeBuild. Vous pouvez utiliser des connexions entre régions dans. CodeBuild Les connexions créées dans les régions optionnelles ne peuvent pas être utilisées dans d'autres régions. Pour plus d’informations, consultez [Points de terminaison et quotas AWS CodeConnections](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [

## Étape 1 : créer une connexion à GitHub l'application (console)
](#connections-github-console)
+ [

## Étape 2 : Accorder l'accès au rôle IAM du CodeBuild projet pour utiliser la connexion
](#connections-github-role-access)
+ [

## Étape 3 : Configuration CodeBuild pour utiliser la nouvelle connexion
](#connections-github-account-credential)
+ [Résolution des problèmes liés à l' GitHub application](#connections-github-troubleshooting)

## Étape 1 : créer une connexion à GitHub l'application (console)
<a name="connections-github-console"></a>

Suivez ces étapes pour utiliser la CodeBuild console afin d'ajouter une connexion pour votre projet dans GitHub.

**Pour créer une connexion avec GitHub**
+ Suivez les instructions du *guide de l'utilisateur des outils* de développement pour [créer une connexion à GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).

**Note**  
Au lieu de créer ou d'utiliser une connexion existante dans votre compte, vous pouvez utiliser une connexion partagée depuis un autre AWS compte. Pour plus d'informations, voir [Partager des connexions avec AWS des comptes](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Étape 2 : Accorder l'accès au rôle IAM du CodeBuild projet pour utiliser la connexion
<a name="connections-github-role-access"></a>

Vous pouvez accorder l'accès au rôle IAM du CodeBuild projet pour utiliser les GitHub jetons vendus par votre connexion.

**Pour accorder l'accès CodeBuild au rôle IAM du projet**

1. Créez un rôle IAM pour votre CodeBuild projet en suivant les instructions correspondant [CodeBuild Autoriser l'interaction avec d'autres AWS services](setting-up-service-role.md) à votre CodeBuild projet.

1. Tout en suivant les instructions, ajoutez la politique IAM suivante à votre rôle de CodeBuild projet pour autoriser l'accès à la connexion.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Étape 3 : Configuration CodeBuild pour utiliser la nouvelle connexion
<a name="connections-github-account-credential"></a>

Vous pouvez configurer une connexion en tant qu'identifiant au niveau du compte et l'utiliser dans un projet.

------
#### [ AWS Management Console ]

**Pour configurer une connexion en tant qu'identifiant au niveau du compte dans AWS Management Console**

1. Dans le **champ Source provider**, sélectionnez **GitHub**. 

1. Pour **Credential**, effectuez l'une des opérations suivantes :
   + Choisissez **Informations d'identification source par défaut** pour utiliser les informations d'identification source par défaut de votre compte pour les appliquer à tous les projets.

     1. Si vous n'êtes pas connecté à GitHub, choisissez **Gérer les informations d'identification de source par défaut**.

     1. Pour le **type d'identifiant**, choisissez **GitHub App**.

     1. Dans **Connexion**, choisissez d'utiliser une connexion existante ou d'en créer une nouvelle.
   + Choisissez **Identifiant source personnalisé pour utiliser un identifiant** source personnalisé afin de remplacer les paramètres par défaut de votre compte.

     1. Pour le **type d'identifiant**, choisissez **GitHub App**.

     1. Dans **Connexion**, choisissez d'utiliser une connexion existante ou d'en créer une nouvelle.

------
#### [ AWS CLI ]

**Pour configurer une connexion en tant qu'identifiant au niveau du compte dans AWS CLI**
+ Ouvrez une invite de terminal (Linux, macOS ou Unix) ou de commande (Windows). Utilisez le AWS CLI pour exécuter la **import-source-credentials** commande, en spécifiant le `--auth-type``--server-type`, et `--token` pour votre connexion.

  Utilisez la commande suivante :

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type GITHUB --token <connection-arn>
  ```

------

Vous pouvez également configurer plusieurs jetons pour vos CodeBuild projets. Pour de plus amples informations, veuillez consulter [Configurer plusieurs jetons comme informations d'identification au niveau de la source](multiple-access-tokens.md#asm-source-credential).

## Résolution des problèmes liés à l' GitHub application
<a name="connections-github-troubleshooting"></a>

Les informations suivantes peuvent vous aider à résoudre les problèmes courants liés à l' GitHub application.

**Topics**
+ [

### Installez l' GitHub application AWS Connector for dans une région indésirable
](#connections-github-troubleshooting.undesired-region)
+ [

### La connexion à GitHub l'application n'a pas accès aux référentiels
](#connections-github-troubleshooting.repo-access)
+ [

### Le rôle IAM du AWS service ne dispose pas des autorisations IAM nécessaires.
](#connections-github-troubleshooting.iam-permissions)

### Installez l' GitHub application AWS Connector for dans une région indésirable
<a name="connections-github-troubleshooting.undesired-region"></a>

**Problème :** vous avez installé le AWS connecteur GitHub depuis le GitHub Marketplace, mais la connexion a été créée dans une région indésirable. Si vous tentez de reconfigurer l'application sur le GitHub site Web, elle ne fonctionnera pas car elle est déjà installée sur votre GitHub compte.

**Cause possible :** l'application étant déjà installée sur votre GitHub compte, vous ne pouvez que reconfigurer les autorisations de l'application.

**Solution recommandée :** vous pouvez créer une nouvelle connexion avec l'ID d'installation dans la région souhaitée.

1. Ouvrez la CodeConnections console dans [https://console.aws.amazon.com/codesuite/Paramètres/connexions](https://console.aws.amazon.com/codesuite/settings/connections) et naviguez jusqu'à la région souhaitée à l'aide du sélecteur de région dans la barre de navigation de la AWS console.

1. Suivez les instructions du *guide de l'utilisateur des outils* de développement pour [créer une connexion à GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).
**Note**  
Comme vous avez déjà installé le AWS Connector pour GitHub l'application, vous pouvez le choisir au lieu d'installer une nouvelle application.

### La connexion à GitHub l'application n'a pas accès aux référentiels
<a name="connections-github-troubleshooting.repo-access"></a>

**Problème :** un AWS service utilisant la connexion, tel que CodeBuild ou CodePipeline, indique qu'il n'a pas accès au référentiel ou que le référentiel n'existe pas. Voici quelques messages d'erreur possibles :
+ `Authentication required for primary source.`
+ `Unable to create webhook at this time. Please try again later.`
+ `Failed to create webhook. GitHub API limit reached. Please try again later.`

***Cause possible :** il se peut que vous utilisiez l' GitHub application et que vous n'ayez pas accordé l'autorisation d'accès au webhook.*  
**Solution recommandée :** pour accorder l'étendue d'autorisation requise, suivez les instructions de la [section Navigation vers l' GitHub application que vous souhaitez consulter ou modifier](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps#navigating-to-the-github-app-you-want-to-review-or-modify) pour configurer l'application installée. Dans la section des autorisations, vous verrez que l'application n'a pas d'autorisation pour les webhooks et qu'il est possible de consulter les autorisations récemment demandées. Vérifiez et acceptez les nouvelles autorisations. Pour plus d'informations, consultez la section [Approbation des autorisations mises à jour pour une application](https://docs.github.com/en/apps/using-github-apps/approving-updated-permissions-for-a-github-app). GitHub 

***Cause possible :** La connexion fonctionnait comme prévu, mais elle n'a soudainement plus accès aux référentiels.*  
**Solution possible :** Commencez par examiner vos [autorisations](https://docs.github.com/en/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps) et vos [installations](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps), puis vérifiez que l' GitHub application est autorisée et installée. Si l'installation de l' GitHub application est suspendue, vous devez l'annuler. Si l' GitHub application n'est pas autorisée pour une connexion [UAT (User Access Token)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user), ou si elle n'est pas installée pour une connexion [IAT (Installation Access Token)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation), la connexion existante n'est plus utilisable et vous devrez créer une nouvelle connexion. Notez que la réinstallation de l' GitHub application ne rétablira pas la connexion précédente associée à l'ancienne installation.  
**Solution possible :** s'il s'agit d'une connexion UAT, assurez-vous qu'elle n'est pas utilisée simultanément, par exemple lors de plusieurs exécutions CodeBuild simultanées de génération. Cela est dû au fait qu'il invalide GitHub immédiatement un UAT précédemment émis si un jeton expirant est actualisé par la connexion. Si vous devez utiliser une connexion UAT pour plusieurs CodeBuild versions simultanées, vous pouvez créer plusieurs connexions et utiliser chaque connexion indépendamment.  
**Solution possible :** Si la connexion UAT n'a pas été utilisée au cours des 6 derniers mois, la connexion sera invalidée par. GitHub Pour résoudre ce problème, créez une nouvelle connexion.

***Cause possible :** vous avez peut-être utilisé une connexion UAT sans installer l'application.*  
**Solution recommandée :** Bien que la création d'une connexion UAT ne nécessite pas d'associer la connexion à une installation d' GitHub application, une installation est requise pour que le référentiel soit accessible. Suivez les instructions pour [vérifier les installations](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) afin de vous assurer que l' GitHub application est bien installée. S'il n'est pas installé, accédez à la [page de GitHub l'application](https://github.com/marketplace/aws-connector-for-github) pour installer l'application. Pour plus d'informations sur l'accès de l'UAT, consultez [À propos des jetons d'accès utilisateur](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app#about-user-access-tokens).

### Le rôle IAM du AWS service ne dispose pas des autorisations IAM nécessaires.
<a name="connections-github-troubleshooting.iam-permissions"></a>

**Problème :** l'un des messages d'erreur suivants s'affiche :
+ `Access denied to connection <connection-arn>`
+ `Failed to get access token from <connection-arn>`

**Solution recommandée :** vous utilisez généralement une connexion avec un AWS service, tel que CodePipeline ou CodeBuild. Lorsque vous attribuez AWS un rôle IAM au AWS service, celui-ci peut utiliser l'autorisation du rôle pour agir en votre nom. Assurez-vous que le rôle IAM dispose des autorisations nécessaires. Pour plus d'informations sur l'autorisation IAM nécessaire, voir [Accorder l'accès au rôle IAM CodeBuild du projet pour utiliser la connexion et la](#connections-github-role-access) [gestion des identités et des accès pour les AWS CodeStar notifications et CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html) dans le guide de l'*utilisateur de la console Developer Tools*.

# GitHub et jeton d'accès au serveur GitHub Enterprise
<a name="access-tokens-github"></a>

## Prérequis de jeton d'accès
<a name="access-tokens-github-prereqs"></a>

Avant de commencer, vous devez ajouter les étendues d'autorisation appropriées à votre jeton GitHub d'accès. 

En effet GitHub, votre jeton d'accès personnel doit avoir les champs d'application suivants. 
+ **repo** : accorde un contrôle total des référentiels privés. 
+ **repo:status** : accorde l' read/write accès aux statuts de validation des référentiels publics et privés.
+ **admin:repo\$1hook** : accorde le contrôle total des hooks de référentiel. Cette règle n'est pas obligatoire si votre jeton dispose de la règle `repo`. 
+ **admin:org\$1hook** : accorde le contrôle total des hooks de l'organisation. Cette étendue n'est requise que si vous utilisez la fonctionnalité de webhook de l'organisation.

Pour plus d'informations, consultez [la section Comprendre les étendues des OAuth applications](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) sur le GitHub site Web.

Si vous utilisez des jetons d'accès personnels précis, selon votre cas d'utilisation, votre jeton d'accès personnel peut nécessiter les autorisations suivantes :
+ **Contenu : Lecture seule** : autorise l'accès aux référentiels privés. Cette autorisation est requise si vous utilisez des référentiels privés comme source.
+ **Statuts de validation : lecture et écriture** : accorde l'autorisation de créer des statuts de validation. Cette autorisation est requise si le webhook est configuré dans votre projet ou si la fonctionnalité d'état de création de rapports est activée.
+ **Webhooks : lecture et écriture** : accorde l'autorisation de gérer les webhooks. Cette autorisation est requise si le webhook est configuré dans votre projet.
+ **Demandes d'extraction : en lecture seule** : accorde l'autorisation d'accéder aux demandes d'extraction. Cette autorisation est requise si votre webhook possède un `FILE_PATH` filtre sur les événements de pull request.
+ **Administration : lecture et écriture** : cette autorisation est requise si vous utilisez la fonctionnalité GitHub Actions Runner auto-hébergée avec CodeBuild. Pour plus de détails, voir [Créer un jeton d'enregistrement pour un référentiel](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository) et[Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md).

**Note**  
Si vous souhaitez accéder aux référentiels de l'organisation, assurez-vous de spécifier l'organisation en tant que propriétaire de la ressource du jeton d'accès.

Pour plus d'informations, consultez la section [Autorisations requises pour les jetons d'accès personnels détaillés](https://docs.github.com/en/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28) sur le GitHub site Web.

## Connect GitHub avec un jeton d'accès (console)
<a name="access-tokens-github-console"></a>

Pour utiliser la console afin de connecter votre projet à GitHub l'aide d'un jeton d'accès, procédez comme suit lorsque vous créez un projet. Pour plus d'informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console). 

1. Dans le **champ Source provider**, sélectionnez **GitHub**. 

1. Pour **Credential**, effectuez l'une des opérations suivantes :
   + Choisissez d'utiliser les informations d'identification du compte pour appliquer les informations d'identification source par défaut de votre compte à tous les projets.

     1. Si vous n'êtes pas connecté à GitHub, choisissez **Gérer les informations d'identification du compte**.

     1. Pour le **type d'identifiant**, choisissez **jeton d'accès personnel**.
   + Si vous avez choisi d'utiliser les informations d'identification au niveau du compte pour le **service**, choisissez le service que vous souhaitez utiliser pour stocker votre jeton et procédez comme suit :

     1. Si vous choisissez d'utiliser **Secrets Manager**, vous pouvez choisir d'utiliser une connexion secrète existante ou d'en créer un nouveau, puis choisir **Enregistrer**. Pour plus d'informations sur la création d'un nouveau secret, consultez[Créez et stockez un jeton dans un secret du Gestionnaire de Secrets](asm-create-secret.md).

     1. Si vous choisissez de l'utiliser **CodeBuild**, entrez votre jeton d'accès GitHub personnel, puis choisissez **Enregistrer**.
   + Sélectionnez **Utiliser les informations d'identification de remplacement pour ce projet uniquement** pour utiliser des informations d'identification source personnalisées afin de remplacer les paramètres d'identification de votre compte.

     1. Dans la liste des informations d'identification renseignée, choisissez l'une des options sous **Jeton d'accès personnel**.

     1. Vous pouvez également créer un nouveau jeton d'accès personnel en sélectionnant **créer une nouvelle connexion par jeton d'accès personnel** dans la description.

## Connectez-vous à GitHub l'aide d'un jeton d'accès (CLI)
<a name="access-tokens-github-cli"></a>

Suivez ces étapes pour connecter votre projet AWS CLI à l' GitHub aide d'un jeton d'accès. Pour plus d'informations sur l'utilisation du AWS CLI with AWS CodeBuild, consultez le[Référence des commandes en ligne](cmd-ref.md). 

1. Exécutez la commande **import-source-credentials** : 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   Des données au format JSON apparaissent dans la sortie. Copiez les données dans un fichier (par exemple,`import-source-credentials.json`) situé sur l'ordinateur local ou sur l'instance où le AWS CLI est installé. Modifiez les données copiées comme suit, puis enregistrez vos résultats. 

   ```
   {
       "serverType": "server-type",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Remplacez les éléments suivants : 
   + *server-type*: valeur requise. Le fournisseur de source utilisé pour cette information d'identification. Les valeurs valides sont GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB et GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: valeur requise. Type d'authentification utilisé pour se connecter à un référentiel. Les valeurs valides sont OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS et SECRETS\$1MANAGER. Car GitHub seul PERSONAL\$1ACCESS\$1TOKEN est autorisé. BASIC\$1AUTH n'est autorisé qu'avec le mot de passe de l'application Bitbucket.
   + *should-overwrite*: valeur facultative. Définissez cette valeur sur `false` pour empêcher le remplacement des informations d'identification source du référentiel. Définissez cette valeur sur `true` pour remplacer les informations d'identification source du référentiel. La valeur par défaut est `true`.
   + *token*: valeur requise. Pour GitHub notre serveur d' GitHub entreprise, il s'agit du jeton d'accès personnel. Pour Bitbucket, il s'agit du jeton d'accès personnel ou du mot de passe de l'application. Pour le type d'authentification CODECONNECTIONS, il s'agit de l'ARN de connexion. Pour le type d'authentification SECRETS\$1MANAGER, il s'agit de l'ARN secret.
   + *username*: valeur facultative. Ce paramètre est ignoré pour GitHub les fournisseurs de sources GitHub Enterprise Server. 

1. Pour vous connecter à votre compte avec un jeton d'accès, passez au répertoire contenant le fichier `import-source-credentials.json` que vous avez enregistré à l'étape 1 et exécutez à nouveau la commande **import-source-credentials**. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   Les données au format JSON apparaissent dans la sortie avec un Amazon Resource Name (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**Note**  
Si vous exécutez la commande **import-source-credentials** avec le même type de serveur et de auth une seconde fois, le jeton d'accès stocké est mis à jour. 

   Une fois que votre compte est connecté par un jeton d'accès, vous pouvez l'utiliser `create-project` pour créer votre CodeBuild projet. Pour de plus amples informations, veuillez consulter [Création d'un projet de génération (AWS CLI)](create-project.md#create-project-cli). 

1. Pour afficher les jetons d'accès connectés, exécutez la commande **list-source-credentials**. 

   ```
   aws codebuild list-source-credentials
   ```

   Un objet `sourceCredentialsInfos` au format JSON apparaît dans la sortie : 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "server-type", 
                   "arn": "arn"
               }
           ]
       }
   ```

   Le `sourceCredentialsObject` contient la liste des informations d'identification de la source connectée : 
   + L'élément `authType` est le type d'authentification utilisé par les informations d'identification. Cela peut être `OAUTH``BASIC_AUTH`,`PERSONAL_ACCESS_TOKEN`,`CODECONNECTIONS`, ou`SECRETS_MANAGER`. 
   + Le `serverType` est le type de fournisseur de source. Cela peut être `GITHUB``GITHUB_ENTERPRISE`,`BITBUCKET`,`GITLAB`, ou`GITLAB_SELF_MANAGED`. 
   + Le `arn` est l'ARN du jeton. 

1. Pour vous déconnecter d'un fournisseur de source et supprimer ses jetons d'accès, exécutez la commande **delete-source-credentials** avec son ARN. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Des données au format JSON sont renvoyées avec un ARN des informations d'identification supprimées. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# GitHub OAuth appli
<a name="oauth-app-github"></a>

## Connect GitHub en utilisant OAuth (console)
<a name="oauth-app-github-console"></a>

Pour utiliser la console afin de connecter votre projet à GitHub une OAuth application, procédez comme suit lorsque vous créez un projet. Pour plus d'informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console). 

1. Dans le **champ Source provider**, sélectionnez **GitHub**. 

1. Pour **Credential**, effectuez l'une des opérations suivantes :
   + Choisissez d'utiliser les informations d'identification du compte pour appliquer les informations d'identification source par défaut de votre compte à tous les projets.

     1. Si vous n'êtes pas connecté à GitHub, choisissez **Gérer les informations d'identification du compte**.

     1. Pour le **type d'identifiant**, choisissez **OAuth app**.
   + Si vous avez choisi d'utiliser les informations d'identification au niveau du compte pour le **service**, choisissez le service que vous souhaitez utiliser pour stocker votre jeton et procédez comme suit :

     1. Si vous choisissez d'utiliser **Secrets Manager**, vous pouvez choisir d'utiliser une connexion secrète existante ou d'en créer un nouveau, puis choisir **Enregistrer**. Pour plus d'informations sur la création d'un nouveau secret, consultez[Créez et stockez un jeton dans un secret du Gestionnaire de Secrets](asm-create-secret.md).

     1. Si vous choisissez d'utiliser, **CodeBuild**puis choisissez **Enregistrer**.
   + Sélectionnez **Utiliser les informations d'identification de remplacement pour ce projet uniquement** pour utiliser des informations d'identification source personnalisées afin de remplacer les paramètres d'identification de votre compte.

     1. Dans la liste des informations d'identification renseignée, choisissez l'une des options sous **OAuth application**.

     1. Vous pouvez également créer un nouveau jeton d' OAuth application en sélectionnant **Créer une nouvelle connexion par jeton d'application Oauth** dans la description.

Pour consulter vos OAuth applications autorisées, accédez à [Applications](https://github.com/settings/applications) activées GitHub et vérifiez qu'une application nommée `AWS CodeBuild (region)` appartenant à [aws-codesuite](https://github.com/aws-codesuite) est répertoriée.

# Accès à Bitbucket dans CodeBuild
<a name="access-tokens-bitbucket-overview"></a>

Pour Bitbucket, vous utilisez un jeton d'accès, un mot de passe d'application, une OAuth application ou une connexion Bitbucket pour accéder au fournisseur source.

**Topics**
+ [

# Connexions à l'application Bitbucket
](connections-bitbucket-app.md)
+ [

# Mot de passe ou jeton d'accès de l'application Bitbucket
](access-tokens-bitbucket.md)
+ [

# Application Bitbucket OAuth
](oauth-app-bitbucket.md)

# Connexions à l'application Bitbucket
<a name="connections-bitbucket-app"></a>

Vous pouvez utiliser Bitbucket pour vous connecter à CodeBuild. Les connexions à l'application Bitbucket sont prises en charge via [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

**Note**  
CodeConnections est disponible dans moins de régions que CodeBuild. Vous pouvez utiliser des connexions entre régions dans. CodeBuild Les connexions créées dans les régions optionnelles ne peuvent pas être utilisées dans d'autres régions. Pour plus d’informations, consultez [Points de terminaison et quotas AWS CodeConnections](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [

## Étape 1 : créer une connexion à Bitbucket (console)
](#connections-bitbucket-console)
+ [

## Étape 2 : Accorder l'accès au rôle IAM du CodeBuild projet pour utiliser la connexion
](#connections-bitbucket-role-access)
+ [

## Étape 3 : Configuration CodeBuild pour utiliser la nouvelle connexion
](#connections-bitbucket-account-credential)

## Étape 1 : créer une connexion à Bitbucket (console)
<a name="connections-bitbucket-console"></a>

Suivez ces étapes pour utiliser la CodeBuild console afin d'ajouter une connexion pour votre projet dans Bitbucket.

**Pour créer une connexion à Bitbucket**
+ Suivez les instructions du *guide de l'utilisateur des outils* de développement pour [créer une connexion à Bitbucket](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-bitbucket.html).

**Note**  
Au lieu de créer ou d'utiliser une connexion existante dans votre compte, vous pouvez utiliser une connexion partagée depuis un autre AWS compte. Pour plus d'informations, voir [Partager des connexions avec AWS des comptes](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Étape 2 : Accorder l'accès au rôle IAM du CodeBuild projet pour utiliser la connexion
<a name="connections-bitbucket-role-access"></a>

Vous pouvez accorder l'accès au rôle IAM du CodeBuild projet pour utiliser les jetons Bitbucket vendus par votre connexion.

**Pour accorder l'accès CodeBuild au rôle IAM du projet**

1. Créez un rôle IAM pour votre CodeBuild projet en suivant les instructions correspondant [CodeBuild Autoriser l'interaction avec d'autres AWS services](setting-up-service-role.md) à votre CodeBuild projet.

1. Tout en suivant les instructions, ajoutez la politique IAM suivante à votre rôle de CodeBuild projet pour autoriser l'accès à la connexion.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Étape 3 : Configuration CodeBuild pour utiliser la nouvelle connexion
<a name="connections-bitbucket-account-credential"></a>

Vous pouvez configurer une connexion en tant qu'identifiant au niveau du compte et l'utiliser dans un projet.

------
#### [ AWS Management Console ]

**Pour configurer une connexion en tant qu'identifiant au niveau du compte dans AWS Management Console**

1. Pour **Source provider (Fournisseur de source)**, choisissez **Bitbucket**. 

1. Pour **Credential**, effectuez l'une des opérations suivantes :
   + Choisissez **Informations d'identification source par défaut** pour utiliser les informations d'identification source par défaut de votre compte pour les appliquer à tous les projets.

     1. Si vous n'êtes pas connecté à Bitbucket, choisissez **Gérer les informations d'identification de source par défaut**.

     1. Pour le **type d'identifiant**, choisissez **CodeConnections**.

     1. Dans **Connexion**, choisissez d'utiliser une connexion existante ou d'en créer une nouvelle.
   + Choisissez **Identifiant source personnalisé pour utiliser un identifiant** source personnalisé afin de remplacer les paramètres par défaut de votre compte.

     1. Pour le **type d'identifiant**, choisissez **CodeConnections**.

     1. Dans **Connexion**, choisissez d'utiliser une connexion existante ou d'en créer une nouvelle.

------
#### [ AWS CLI ]

**Pour configurer une connexion en tant qu'identifiant au niveau du compte dans AWS CLI**
+ Ouvrez une invite de terminal (Linux, macOS ou Unix) ou de commande (Windows). Utilisez le AWS CLI pour exécuter la **import-source-credentials** commande, en spécifiant le `--auth-type``--server-type`, et `--token` pour votre connexion.

  Utilisez la commande suivante :

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type BITBUCKET --token <connection-arn>
  ```

------

Pour plus d'informations sur la configuration de plusieurs jetons dans votre CodeBuild projet, consultez[Configurer plusieurs jetons comme informations d'identification au niveau de la source](multiple-access-tokens.md#asm-source-credential).

# Mot de passe ou jeton d'accès de l'application Bitbucket
<a name="access-tokens-bitbucket"></a>

## Conditions préalables
<a name="access-tokens-bitbucket-prerequisites"></a>

Avant de commencer, vous devez ajouter les étendues d'autorisation appropriées au mot de passe ou au jeton d'accès de votre application Bitbucket. 

Pour Bitbucket, le mot de passe ou le jeton d'accès de votre application doit avoir les champs d'application suivants. 
+ **repository:read** : accorde l'accès en lecture à tous les référentiels auxquels l'utilisateur d'autorisation a accès. 
+ **pullrequest:read** : accorde l'accès en lecture aux demandes d'extraction. Si votre projet possède un webhook Bitbucket, le mot de passe ou le jeton d'accès de votre application doit avoir cette portée. 
+ **webhook** : accorde l'accès aux webhooks. Si votre projet comporte une opération webhook, le mot de passe ou le jeton d'accès de votre application doit avoir cette portée. 
+ **compte** : accorde un accès en lecture aux informations du compte de l'utilisateur.

Pour plus d'informations, consultez [Scopes for Bitbucket Cloud REST API](https://developer.atlassian.com/cloud/bitbucket/bitbucket-cloud-rest-api-scopes/) et Bitbucket [Cloud OAuth sur le site Web de Bitbucket](https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html).

## Connect Bitbucket avec un mot de passe d'application (console)
<a name="access-tokens-bitbucket-password-console"></a>

Pour utiliser la console afin de connecter votre projet à Bitbucket à l'aide d'un mot de passe d'application, procédez comme suit lorsque vous créez un projet. Pour plus d'informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console). 

1. Pour **Source provider (Fournisseur de source)**, choisissez **Bitbucket**. 

1. Pour **Credential**, effectuez l'une des opérations suivantes :
   + Choisissez d'utiliser les informations d'identification du compte pour appliquer les informations d'identification source par défaut de votre compte à tous les projets.

     1. Si vous n'êtes pas connecté à Bitbucket, choisissez **Gérer les informations d'identification du compte**.

     1. Pour le **type d'identifiant,** choisissez le mot de **passe de l'application**.
   + Si vous avez choisi d'utiliser les informations d'identification au niveau du compte pour le **service**, choisissez le service que vous souhaitez utiliser pour stocker votre jeton et procédez comme suit :

     1. Si vous choisissez d'utiliser **Secrets Manager**, vous pouvez choisir d'utiliser une connexion secrète existante ou d'en créer un nouveau, puis choisir **Enregistrer**. Pour plus d'informations sur la création d'un nouveau secret, consultez[Créez et stockez un jeton dans un secret du Gestionnaire de Secrets](asm-create-secret.md).

     1. Si vous choisissez de l'utiliser **CodeBuild**, entrez votre nom d'utilisateur Bitbucket et le mot de passe de l'application, puis choisissez **Enregistrer**.
   + Sélectionnez **Utiliser les informations d'identification de remplacement pour ce projet uniquement** pour utiliser des informations d'identification source personnalisées afin de remplacer les paramètres d'identification de votre compte.

     1. Dans la liste des informations d'identification renseignée, choisissez l'une des options sous Mot de **passe de l'application**.

     1. Vous pouvez également créer un nouveau jeton de mot de passe d'application en sélectionnant **créer une nouvelle connexion par mot de passe d'application** dans la description.

## Connect Bitbucket avec un jeton d'accès (console)
<a name="access-tokens-bitbucket-console"></a>

Pour utiliser la console afin de connecter votre projet à Bitbucket à l'aide d'un jeton d'accès, procédez comme suit lorsque vous créez un projet. Pour plus d'informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console). 

1. Pour **Source provider (Fournisseur de source)**, choisissez **Bitbucket**. 

1. Pour **Credential**, effectuez l'une des opérations suivantes :
   + Choisissez d'utiliser les informations d'identification du compte pour appliquer les informations d'identification source par défaut de votre compte à tous les projets.

     1. Si vous n'êtes pas connecté à Bitbucket, choisissez **Gérer les informations d'identification du compte**.

     1. Pour le **type d'identifiant**, choisissez **jeton d'accès personnel**.
   + Si vous avez choisi d'utiliser les informations d'identification au niveau du compte pour le **service**, choisissez le service que vous souhaitez utiliser pour stocker votre jeton et procédez comme suit :

     1. Si vous choisissez d'utiliser **Secrets Manager**, vous pouvez choisir d'utiliser une connexion secrète existante ou d'en créer un nouveau, puis choisir **Enregistrer**. Pour plus d'informations sur la création d'un nouveau secret, consultez[Créez et stockez un jeton dans un secret du Gestionnaire de Secrets](asm-create-secret.md).

     1. Si vous choisissez de l'utiliser **CodeBuild**, entrez votre jeton d'accès personnel Bitbucket, puis choisissez **Enregistrer**.
   + Sélectionnez **Utiliser les informations d'identification de remplacement pour ce projet uniquement** pour utiliser des informations d'identification source personnalisées afin de remplacer les paramètres d'identification de votre compte.

     1. Dans la liste des informations d'identification renseignée, choisissez l'une des options sous **Jeton d'accès personnel**.

     1. Vous pouvez également créer un nouveau jeton d'accès personnel en sélectionnant **créer une nouvelle connexion par jeton d'accès personnel** dans la description.

## Connectez Bitbucket à l'aide d'un mot de passe d'application ou d'un jeton d'accès (CLI)
<a name="access-tokens-bitbucket-cli"></a>

Suivez ces étapes pour connecter votre projet à Bitbucket AWS CLI à l'aide d'un mot de passe d'application ou d'un jeton d'accès. Pour plus d'informations sur l'utilisation du AWS CLI with AWS CodeBuild, consultez le[Référence des commandes en ligne](cmd-ref.md). 

1. Exécutez la commande **import-source-credentials** : 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   Des données au format JSON apparaissent dans la sortie. Copiez les données dans un fichier (par exemple,`import-source-credentials.json`) situé sur l'ordinateur local ou sur l'instance où le AWS CLI est installé. Modifiez les données copiées comme suit, puis enregistrez vos résultats. 

   ```
   {
       "serverType": "BITBUCKET",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Remplacez les éléments suivants : 
   + *server-type*: valeur requise. Le fournisseur de source utilisé pour cette information d'identification. Les valeurs valides sont GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB et GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: valeur requise. Type d'authentification utilisé pour se connecter à un référentiel. Les valeurs valides sont OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS et SECRETS\$1MANAGER. Car GitHub seul PERSONAL\$1ACCESS\$1TOKEN est autorisé. BASIC\$1AUTH n'est autorisé qu'avec le mot de passe de l'application Bitbucket.
   + *should-overwrite*: valeur facultative. Définissez cette valeur sur `false` pour empêcher le remplacement des informations d'identification source du référentiel. Définissez cette valeur sur `true` pour remplacer les informations d'identification source du référentiel. La valeur par défaut est `true`.
   + *token*: valeur requise. Pour GitHub notre serveur d' GitHub entreprise, il s'agit du jeton d'accès personnel. Pour Bitbucket, il s'agit du jeton d'accès personnel ou du mot de passe de l'application. Pour le type d'authentification CODECONNECTIONS, il s'agit de l'ARN de connexion. Pour le type d'authentification SECRETS\$1MANAGER, il s'agit de l'ARN secret.
   + *username*: valeur facultative. Ce paramètre est ignoré pour GitHub les fournisseurs de sources GitHub Enterprise Server. 

1. Pour connecter votre compte à l'aide d'un mot de passe d'application ou d'un jeton d'accès, accédez au répertoire qui contient le `import-source-credentials.json` fichier que vous avez enregistré à l'étape 1 et réexécutez la **import-source-credentials** commande. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   Les données au format JSON apparaissent dans la sortie avec un Amazon Resource Name (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**Note**  
Si vous exécutez la commande **import-source-credentials** avec le même type de serveur et de auth une seconde fois, le jeton d'accès stocké est mis à jour. 

   Une fois que votre compte est connecté à l'aide d'un mot de passe d'application, vous pouvez `create-project` l'utiliser pour créer votre CodeBuild projet. Pour de plus amples informations, veuillez consulter [Création d'un projet de génération (AWS CLI)](create-project.md#create-project-cli). 

1. Pour afficher les mots de passe ou les jetons d'accès des applications connectées, exécutez la **list-source-credentials** commande. 

   ```
   aws codebuild list-source-credentials
   ```

   Un objet `sourceCredentialsInfos` au format JSON apparaît dans la sortie : 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "BITBUCKET", 
                   "arn": "arn"
               }
           ]
       }
   ```

   Le `sourceCredentialsObject` contient la liste des informations d'identification de la source connectée : 
   + L'élément `authType` est le type d'authentification utilisé par les informations d'identification. Cela peut être `OAUTH``BASIC_AUTH`,`PERSONAL_ACCESS_TOKEN`,`CODECONNECTIONS`, ou`SECRETS_MANAGER`. 
   + Le `serverType` est le type de fournisseur de source. Cela peut être `GITHUB``GITHUB_ENTERPRISE`,`BITBUCKET`,`GITLAB`, ou`GITLAB_SELF_MANAGED`. 
   + Le `arn` est l'ARN du jeton. 

1. Pour vous déconnecter d'un fournisseur source et supprimer son mot de passe d'application ou ses jetons d'accès, exécutez la **delete-source-credentials** commande avec son ARN. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Des données au format JSON sont renvoyées avec un ARN des informations d'identification supprimées. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# Application Bitbucket OAuth
<a name="oauth-app-bitbucket"></a>

## Connect Bitbucket en utilisant OAuth (console)
<a name="oauth-app-bitbucket-console"></a>

Pour utiliser la console afin de connecter votre projet à Bitbucket à l'aide d'une OAuth application, procédez comme suit lorsque vous créez un projet. Pour plus d'informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console). 

1. Pour **Source provider (Fournisseur de source)**, choisissez **Bitbucket**. 

1. Pour **Credential**, effectuez l'une des opérations suivantes :
   + Choisissez d'utiliser les informations d'identification du compte pour appliquer les informations d'identification source par défaut de votre compte à tous les projets.

     1. Si vous n'êtes pas connecté à Bitbucket, choisissez **Gérer les informations d'identification du compte**.

     1. Pour le **type d'identifiant**, choisissez **OAuth app**.
   + Si vous avez choisi d'utiliser les informations d'identification au niveau du compte pour le **service**, choisissez le service que vous souhaitez utiliser pour stocker votre jeton et procédez comme suit :

     1. Si vous choisissez d'utiliser **Secrets Manager**, vous pouvez choisir d'utiliser une connexion secrète existante ou d'en créer un nouveau, puis choisir **Enregistrer**. Pour plus d'informations sur la création d'un nouveau secret, consultez[Créez et stockez un jeton dans un secret du Gestionnaire de Secrets](asm-create-secret.md).

     1. Si vous choisissez d'utiliser, **CodeBuild**puis choisissez **Enregistrer**.
   + Sélectionnez **Utiliser les informations d'identification de remplacement pour ce projet uniquement** pour utiliser des informations d'identification source personnalisées afin de remplacer les paramètres d'identification de votre compte.

     1. Dans la liste des informations d'identification renseignée, choisissez l'une des options sous **OAuth application**.

     1. Vous pouvez également créer un nouveau jeton d' OAuth application en sélectionnant **Créer une nouvelle connexion par jeton d'application Oauth** dans la description.

Pour consulter vos OAuth applications autorisées, accédez à [Autorisations d'](https://bitbucket.org/account/settings/app-authorizations/)applications sur Bitbucket et vérifiez qu'une application nommée `AWS CodeBuild (region)` est répertoriée. 

# GitLab accéder à CodeBuild
<a name="access-tokens-gitlab-overview"></a>

En GitLab effet, vous utilisez une GitLab connexion pour accéder au fournisseur source.

**Topics**
+ [

## Connect CodeBuild à GitLab
](#connections-gitlab)

## Connect CodeBuild à GitLab
<a name="connections-gitlab"></a>

Les connexions vous permettent d'autoriser et d'établir des configurations qui associent votre fournisseur tiers aux AWS ressources que vous utilisez AWS CodeConnections. Pour associer votre référentiel tiers en tant que source pour votre projet de construction, vous utilisez une connexion. 

Pour ajouter un fournisseur de source GitLab ou un fournisseur de source GitLab autogéré CodeBuild, vous pouvez choisir de : 
+ Utilisez l'assistant de **création de projet** ou la page **Modifier la source** de la CodeBuild console pour choisir l'option **GitLab**ou le fournisseur **GitLab autogéré**. Consultez [Création d'une connexion à GitLab (console)](#connections-gitlab-console) la section pour ajouter le fournisseur source. La console vous permet de créer une ressource de connexions.
+ Utilisez la CLI pour créer vos ressources de connexions, voir [Création d'une connexion à GitLab (CLI)](#connections-gitlab-cli) pour créer une ressource de connexions avec la CLI.

**Note**  
Vous pouvez également créer une connexion à l'aide de la console Developer Tools sous **Paramètres**. Voir [Créer une connexion](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html).

**Note**  
En autorisant l'installation de cette connexion GitLab, vous autorisez notre service à traiter vos données en accédant à votre compte, et vous pouvez révoquer ces autorisations à tout moment en désinstallant l'application.

### Créez une connexion avec GitLab
<a name="connections-gitlab-create"></a>

Cette section décrit comment se connecter GitLab à CodeBuild. Pour plus d’informations sur les connexions GitLab , consultez [Connect CodeBuild à GitLab](#connections-gitlab).

Avant de commencer :
+ Vous devez déjà avoir créé un compte auprès de GitLab.
**Note**  
Les connexions fournissent uniquement l'accès aux référentiels appartenant au compte qui a été utilisé pour créer et autoriser la connexion. 
**Note**  
Vous pouvez créer des connexions à un référentiel dans lequel vous avez le rôle de **propriétaire** GitLab, puis la connexion peut être utilisée avec le référentiel avec des ressources telles que CodeBuild. Pour les référentiels dans des groupes, il n'est pas nécessaire d'être le propriétaire du groupe.
+ Pour spécifier une source pour votre projet de build, vous devez déjà avoir créé un référentiel sur GitLab.

**Topics**
+ [

#### Création d'une connexion à GitLab (console)
](#connections-gitlab-console)
+ [

#### Création d'une connexion à GitLab (CLI)
](#connections-gitlab-cli)

#### Création d'une connexion à GitLab (console)
<a name="connections-gitlab-console"></a>

Suivez ces étapes pour utiliser la CodeBuild console afin d'ajouter une connexion pour votre projet (référentiel) dans GitLab.

**Note**  
Au lieu de créer ou d'utiliser une connexion existante dans votre compte, vous pouvez utiliser une connexion partagée depuis un autre AWS compte. Pour plus d'informations, voir [Partager des connexions avec AWS des comptes](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

**Pour créer ou modifier votre projet de construction**

1. Connectez-vous à la CodeBuild console.

1. Choisissez l’une des options suivantes.
   + Choisissez de créer un projet de construction. Suivez les étapes décrites [Création d'un projet de génération (console)](create-project.md#create-project-console) pour terminer le premier écran et dans la section **Source**, sous **Source Provider**, sélectionnez **GitLab**.
   + Choisissez de modifier un projet de construction existant. Choisissez **Modifier**, puis **Source**. Sur la page **Modifier la source**, sous **Fournisseur de source**, sélectionnez **GitLab**.

1. Sélectionnez l’une des méthodes suivantes :
   + Sous **Connexion**, choisissez **Connexion par défaut**. La connexion par défaut applique une GitLab connexion par défaut à tous les projets.
   + Sous **Connexion**, choisissez **Connexion personnalisée**. Connexion personnalisée applique une GitLab connexion personnalisée qui remplace les paramètres par défaut de votre compte.

1. Effectuez l’une des actions suivantes :
   + Sous **Connexion par défaut** ou **Connexion personnalisée**, si vous n'avez pas encore créé de connexion avec votre fournisseur, choisissez **Créer une nouvelle GitLab connexion**. Passez à l'étape 5 pour créer la connexion.
   + Sous **Connexion**, si vous avez déjà créé une connexion avec votre fournisseur, choisissez-la. Passez à l'étape 10.
**Note**  
Si vous fermez la fenêtre contextuelle avant de créer une GitLab connexion, vous devez actualiser la page.

1. Pour créer une connexion à un GitLab référentiel, sous **Sélectionnez un fournisseur**, sélectionnez **GitLab**. Dans **Connection name (Nom de la connexion)**, saisissez le nom de la connexion que vous souhaitez créer. Choisissez **Connect to (Se connecter à) GitLab**.  
![\[Capture d'écran de la console montrant l'option de connexion sélectionnée pour GitLab.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/connections-create-gitlab.png)

1. Lorsque la page de connexion GitLab s'affiche, connectez-vous avec vos informations d'identification, puis choisissez **Se connecter**.

1. Si c'est la première fois que vous autorisez la connexion, une page d'autorisation s'affiche avec un message demandant l'autorisation de connexion pour accéder à votre GitLab compte.

   Choisissez **Authorize** (Autoriser).  
![\[Capture d'écran montrant le message d'autorisation de connexion à votre GitLab compte.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/gitlab-authorization.png)

1. Le navigateur revient à la page de la console des connexions. Dans **les paramètres de GitLab connexion**, la nouvelle connexion est affichée dans **Nom de la connexion**.

1. Choisissez **Se connecter**.

   Une fois la GitLab connexion créée avec succès, une bannière de réussite s'affiche en haut de la page. 

1. Sur la page **Créer un projet de construction**, dans la liste déroulante **Connexion par défaut** ou **Connexion personnalisée**, assurez-vous que l'ARN de votre connexion est répertorié. Sinon, cliquez sur le bouton d'actualisation pour le faire apparaître.

1. Dans **Repository**, choisissez le nom de votre projet en GitLab spécifiant le chemin du projet avec l'espace de noms. Par exemple, pour un référentiel au niveau du groupe, entrez le nom du référentiel au format suivant :. `group-name/repository-name` Pour plus d'informations sur le chemin et l'espace de noms, consultez le `path_with_namespace` champ dans [https://docs.gitlab.com/ee/get-single-projectapi/projects.html\$1](https://docs.gitlab.com/ee/api/projects.html#get-single-project). Pour plus d'informations sur l'espace de noms dans GitLab, consultez [https://docs.gitlab.com/ee/user/namespace/](https://docs.gitlab.com/ee/user/namespace/).
**Note**  
Pour les groupes dans GitLab, vous devez spécifier manuellement le chemin du projet avec l'espace de noms. Par exemple, pour un référentiel nommé `myrepo` dans un groupe`mygroup`, entrez ce qui suit :`mygroup/myrepo`. Vous pouvez trouver le chemin du projet avec l'espace de noms dans l'URL dans GitLab.

   

1. Dans **Version source (facultatif)**, entrez un identifiant de pull request, une branche, un identifiant de validation, une balise ou une référence et un identifiant de validation. Pour de plus amples informations, veuillez consulter [Exemple de version source avec AWS CodeBuild](sample-source-version.md).
**Note**  
Nous vous recommandons de choisir des noms de branche Git qui ne ressemblent pas à des validations IDs, tels que `811dd1ba1aba14473856cee38308caed7190c0d` ou`5392f7`. Cela vous permet d'éviter les collisions entre Git Checkout et les validations réelles.

   

1. Dans **Git clone depth (facultatif)**, vous pouvez créer un clone superficiel dont l'historique est tronqué au nombre de validations spécifié. Si vous souhaitez un clone complet, choisissez **Full**.

1. Dans **État de la construction - facultatif**, sélectionnez **Signaler les statuts de construction au fournisseur source lorsque vos builds commencent et se terminent** si vous souhaitez que l'état du début et de la fin de votre build soit signalé à votre fournisseur source.

   Pour pouvoir signaler l'état de construction au fournisseur de source, l'utilisateur associé au fournisseur de source doit avoir un accès en écriture au dépôt. Si l'utilisateur ne dispose pas d'un accès en écriture, l'état de construction ne peut pas être mis à jour. Pour de plus amples informations, veuillez consulter [Accès au fournisseur de source](access-tokens.md).

#### Création d'une connexion à GitLab (CLI)
<a name="connections-gitlab-cli"></a>

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour créer une connexion. 

Pour ce faire, utilisez la commande **create-connection**. 

**Important**  
Une connexion créée via le AWS CLI ou AWS CloudFormation est en `PENDING` état par défaut. Après avoir créé une connexion avec la CLI CloudFormation, utilisez la console pour modifier la connexion afin de définir son état`AVAILABLE`.

**Pour créer une connexion**
+ Suivez les instructions du *guide de l'utilisateur de la console Developer Tools* pour [créer une connexion à GitLab (CLI)](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-gitlab.html#connections-create-gitlab-cli).

# Prévention du cas de figure de l’adjoint désorienté entre services
<a name="cross-service-confused-deputy-prevention"></a>

Le problème de député confus est un problème de sécurité dans lequel une entité qui n’est pas autorisée à effectuer une action peut contraindre une entité plus privilégiée à le faire. En AWS, l'usurpation d'identité interservices peut entraîner un problème de confusion chez les adjoints. L’usurpation d’identité entre services peut se produire lorsqu’un service (le *service appelant*) appelle un autre service (le *service appelé*). Le service appelant peut être manipulé et ses autorisations utilisées pour agir sur les ressources d’un autre client auxquelles on ne serait pas autorisé à accéder autrement. Pour éviter cela, AWS fournit des outils qui vous aident à protéger vos données pour tous les services avec des principaux de service qui ont eu accès aux ressources de votre compte. 

Nous recommandons d'utiliser les clés de contexte de condition [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)et les clés contextuelles dans les politiques de ressources afin de limiter les autorisations qui AWS CodeBuild accordent un autre service à la ressource. Utilisez `aws:SourceArn` si vous souhaitez qu’une seule ressource soit associée à l’accès entre services. Utilisez `aws:SourceAccount` si vous souhaitez autoriser l’association d’une ressource de ce compte à l’utilisation interservices.

Le moyen le plus efficace de se protéger contre le problème de député confus consiste à utiliser la clé de contexte de condition globale `aws:SourceArn` avec l’ARN complet de la ressource. Si vous ne connaissez pas l’ARN complet de la ressource ou si vous spécifiez plusieurs ressources, utilisez la clé de contexte de condition globale `aws:SourceArn` avec des caractères génériques (`*`) pour les parties inconnues de l’ARN. Par exemple, `arn:aws:codebuild:*:123456789012:*`. 

Si la valeur `aws:SourceArn` ne contient pas l’ID du compte, tel qu’un ARN de compartiment Amazon S3, vous devez utiliser les deux clés de contexte de condition globale pour limiter les autorisations. 

La valeur de `aws:SourceArn` doit être l'ARN CodeBuild du projet.

L'exemple suivant montre comment utiliser les touches de contexte de condition `aws:SourceAccount` globale `aws:SourceArn` et globale CodeBuild pour éviter le problème de confusion des adjoints.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------