

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 CodeCommit
<a name="security"></a>

La sécurité du cloud AWS est la priorité absolue. En tant que AWS client, vous bénéficiez d'un centre de données et d'une architecture 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 cela comme la sécurité *du* cloud et la 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 [AWS conformité Programmes](https://aws.amazon.com/compliance/programs/) de de conformité. Pour en savoir plus sur les programmes de conformité qui s'appliquent à AWS CodeCommit, voir [AWS Services concernés par programme de conformitéAWS](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 de la sensibilité de vos données, des exigences de votre entreprise, ainsi que de la législation et de la réglementation applicables. 

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagée lors de son utilisation CodeCommit. Les rubriques suivantes expliquent comment procéder à la configuration CodeCommit 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 CodeCommit ressources. 

**Topics**
+ [Protection des données dans AWS CodeCommit](data-protection.md)
+ [Identity and Access Management pour AWS CodeCommit](security-iam.md)
+ [Résilience dans AWS CodeCommit](disaster-recovery-resiliency.md)
+ [Sécurité de l'infrastructure dans AWS CodeCommit](infrastructure-security.md)

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

En tant que service géré, 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 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.

CodeCommit les référentiels sont automatiquement chiffrés au repos. Aucune action du client n'est requise. CodeCommit chiffre également les données du référentiel en transit. Vous pouvez utiliser le protocole HTTPS, le protocole SSH ou les deux avec les CodeCommit référentiels. Pour de plus amples informations, veuillez consulter [Configuration pour AWS CodeCommit](setting-up.md). Vous pouvez également configurer l'[accès entre comptes aux](cross-account.md) CodeCommit référentiels.

**Topics**
+ [AWS Key Management Service et chiffrement pour les AWS CodeCommit référentiels](encryption.md)
+ [Connexion aux AWS CodeCommit référentiels avec des informations d'identification rotatives](temporary-access.md)

# AWS Key Management Service et chiffrement pour les AWS CodeCommit référentiels
<a name="encryption"></a>

Les données stockées dans CodeCommit les référentiels sont chiffrées en transit et au repos. Lorsque des données sont introduites dans un CodeCommit référentiel (par exemple, par un appel**git push**), les données reçues sont CodeCommit cryptées lorsqu'elles sont stockées dans le référentiel. Lorsque des données sont extraites d'un CodeCommit référentiel (par exemple, en appelant**git pull**), CodeCommit les déchiffre puis les envoie à l'appelant. Cela suppose que l'utilisateur IAM associé à la demande push ou pull a été authentifié par. AWS Les données envoyées ou reçues sont transmises à l'aide des protocoles réseau chiffrés HTTPS ou SSH.

Vous pouvez utiliser une clé gérée par le client Clé gérée par AWS ou une clé gérée par le client pour chiffrer et déchiffrer les données de votre référentiel. Pour plus d'informations sur les différences entre les clés gérées par le client et Clés gérées par AWS, voir [Clés gérées par le client et Clés gérées par AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt). Si vous ne spécifiez pas de clé gérée par le client, vous CodeCommit utiliserez une Clé gérée par AWS pour chiffrer et déchiffrer les données de votre référentiel. Ceci Clé gérée par AWS est créé automatiquement pour vous dans votre Compte AWS. La première fois que vous créez un CodeCommit référentiel dans un nouveau Région AWS compte Amazon Web Services, si vous ne spécifiez pas de clé gérée par le client, vous CodeCommit créez une Clé gérée par AWS (la `aws/codecommit` clé) dans cette même clé Région AWS dans AWS Key Management Service (AWS KMS). Cette `aws/codecommit` clé est utilisée uniquement par CodeCommit. Il est stocké dans votre compte Amazon Web Services. Selon ce que vous spécifiez, utilise CodeCommit soit la clé gérée par le client, soit Clé gérée par AWS pour chiffrer et déchiffrer les données du référentiel. 

**Important**  
 CodeCommit exécute les AWS KMS actions suivantes sur la AWS KMS clé utilisée pour chiffrer et déchiffrer les données d'un référentiel. Si vous utilisez un Clé gérée par AWS, l'utilisateur n'a pas besoin d'autorisations explicites pour ces actions, mais aucune politique ne doit lui être attachée qui refuse ces actions pour la `aws/codecommit` clé. Si vous utilisez une clé gérée par le client dont l' Compte AWS identifiant est défini comme principal de politique pour cette clé, ces autorisations doivent être explicitement définies sur`allow`. Plus précisément, lorsque vous créez votre premier référentiel, et si vous mettez à jour les clés de votre référentiel, aucune des autorisations suivantes ne doit être définie sur `deny` si vous utilisez un Clé gérée par AWS, et vous devez être définie sur `allow` si vous utilisez une clé gérée par le client avec un principe de politique :  
`"kms:Encrypt"`
`"kms:Decrypt"`
`"kms:ReEncrypt"`(selon le contexte, cela peut nécessiter`kms:ReEncryptFrom`,   
`kms:ReEncryptTo`, ou `kms:ReEncrypt*` non configuré pour refuser)
`"kms:GenerateDataKey"`
`"kms:GenerateDataKeyWithoutPlaintext"`
`"kms:DescribeKey"`

Si vous souhaitez utiliser votre propre clé gérée par le client, celle-ci doit être disponible Région AWS là où se trouve le référentiel. CodeCommit prend en charge l'utilisation de clés gérées par le client à la fois dans une ou plusieurs régions. Bien que tous les principaux types d'origine des matériaux soient pris en charge, nous vous recommandons d'utiliser l'option **KMS** par défaut. Les clients qui utilisent l'option de **stockage de clés externe** peuvent être confrontés à des retards de la part de leur fournisseur de boutique. En outre. CodeCommit présente les exigences suivantes pour les clés gérées par le client :
+ CodeCommit ne prend en charge que l'utilisation de clés symétriques.
+ Le type d'utilisation de la clé doit être défini sur **Chiffrer et déchiffrer**.

Pour plus d'informations sur la création de clés gérées par le client, consultez [Concepts](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt) et [création de clés](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html).

Pour obtenir des informations sur le Clé gérée par AWS produit généré par CodeCommit, procédez comme suit :

1. Connectez-vous à la console AWS Key Management Service (AWS KMS) AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/kms.](https://console.aws.amazon.com/kms)

1. Pour modifier le Région AWS, utilisez le sélecteur de région dans le coin supérieur droit de la page.

1. Dans le volet de navigation du service, choisissez **Clés gérées par AWS**. Assurez-vous d'être connecté à l' Région AWS endroit où vous souhaitez consulter les clés. 

1. Dans la liste des clés de chiffrement, choisissez la Clé gérée par AWS avec l'alias **aws/codecommit**. Des informations de base sur le Clé détenue par AWS sont affichées.

Vous ne pouvez ni le modifier ni le supprimer Clé gérée par AWS. 

## Comment les algorithmes de chiffrement sont-ils utilisés pour chiffrer les données du référentiel
<a name="encryption-algorithms"></a>

CodeCommit utilise deux approches différentes pour chiffrer les données. Les objets Git individuels de moins de 6 Mo sont chiffrés à l'aide d'AES-GCM-256, qui fournit la validation de l'intégrité des données. Les objets d'une taille comprise entre 6 Mo et 2 Go maximum pour un seul blob sont chiffrés à l'aide du protocole AES-CBC-256. CodeCommit valide toujours le contexte de chiffrement.

## Contexte de chiffrement
<a name="encryption-context"></a>

Chaque service intégré AWS KMS spécifie un contexte de chiffrement pour les opérations de chiffrement et de déchiffrement. Le contexte de chiffrement représente des informations authentifiées supplémentaires utilisées par AWS KMS pour vérifier l'intégrité des données. Lorsque le contexte de chiffrement est spécifié pour l'opération de chiffrement, il doit aussi être indiqué dans l'opération de déchiffrement. Dans le cas contraire, le déchiffrement échoue. CodeCommit utilise l'ID CodeCommit du référentiel pour le contexte de chiffrement. Vous pouvez utiliser la **get-repository** commande ou la CodeCommit console pour trouver l'ID du référentiel. Recherchez l'ID du CodeCommit référentiel dans AWS CloudTrail les journaux pour comprendre quelles opérations de chiffrement ont été effectuées sur quelle clé AWS KMS pour chiffrer ou déchiffrer les données du CodeCommit référentiel.

Pour plus d'informations à ce sujet AWS KMS, consultez le [guide du AWS Key Management Service développeur](https://docs.aws.amazon.com/kms/latest/developerguide/).

# Connexion aux AWS CodeCommit référentiels avec des informations d'identification rotatives
<a name="temporary-access"></a>

Vous pouvez autoriser les utilisateurs à accéder à vos AWS CodeCommit référentiels sans configurer d'utilisateurs IAM pour eux ni utiliser de clé d'accès et de clé secrète. Pour attribuer des autorisations à une identité fédérée, vous devez créer un rôle et définir des autorisations pour ce rôle. Quand une identité externe s’authentifie, l’identité est associée au rôle et reçoit les autorisations qui sont définies par celui-ci. Pour obtenir des informations sur les rôles pour la fédération, consultez [ Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*. Si vous utilisez IAM Identity Center, vous configurez un jeu d’autorisations. IAM Identity Center met en corrélation le jeu d’autorisations avec un rôle dans IAM afin de contrôler à quoi vos identités peuvent accéder après leur authentification. Pour plus d’informations sur les jeux d’autorisations, consultez [Jeux d’autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *. *Vous pouvez également configurer l'accès basé sur les rôles pour permettre aux utilisateurs IAM d'accéder aux CodeCommit référentiels dans des comptes Amazon Web Services distincts (technique connue sous le nom d'accès entre comptes).* Pour connaître la procédure permettant de configurer l'accès entre comptes à un référentiel, consultez [Configuration de l'accès entre comptes à un AWS CodeCommit référentiel à l'aide de rôles](cross-account.md). 

Vous pouvez configurer l'accès pour les utilisateurs qui veulent ou doivent s'authentifier via des méthodes telles que les suivantes :
+ Security Assertion Markup Language (SAML)
+ Authentification multifactorielle (MFA)
+ Fédération
+ Login with Amazon
+ Amazon Cognito
+ Facebook
+ Google
+ Fournisseur d'identité compatible avec OpenID Connect (OIDC)

**Note**  
Les informations suivantes s'appliquent uniquement à l'utilisation **git-remote-codecommit** ou à l'assistant AWS CLI d'identification pour se connecter aux CodeCommit référentiels. L'approche recommandée pour l'accès temporaire ou fédéré CodeCommit étant la configuration**git-remote-codecommit**, cette rubrique fournit des exemples d'utilisation de cet utilitaire. Pour de plus amples informations, veuillez consulter [Étapes de configuration pour les connexions HTTPS AWS CodeCommit avec git-remote-codecommit](setting-up-git-remote-codecommit.md).   
Vous ne pouvez pas utiliser les informations d'identification SSH ou Git et le protocole HTTPS pour vous connecter à CodeCommit des référentiels avec des informations d'accès temporaires ou rotatives. 

N'effectuez pas ces étapes si toutes les conditions suivantes sont vérifiées :
+ Vous êtes connecté à une instance Amazon EC2.
+ Vous utilisez Git et HTTPS avec l'assistant AWS CLI d'identification pour vous connecter depuis l'instance Amazon EC2 aux référentiels. CodeCommit 
+ L'instance Amazon EC2 possède un profil d'instance IAM attaché qui contient les autorisations d'accès décrites dans ou. [Pour les connexions HTTPS sous Linux, macOS ou Unix avec l'assistant AWS CLI d'identification](setting-up-https-unixes.md) [Pour les connexions HTTPS sous Windows avec l'assistant AWS CLI d'identification](setting-up-https-windows.md)
+ Vous avez installé et configuré l'assistant d'identification Git sur l'instance Amazon EC2, comme décrit dans ou. [Pour les connexions HTTPS sous Linux, macOS ou Unix avec l'assistant AWS CLI d'identification](setting-up-https-unixes.md) [Pour les connexions HTTPS sous Windows avec l'assistant AWS CLI d'identification](setting-up-https-windows.md)

Les instances Amazon EC2 qui répondent aux exigences précédentes sont déjà configurées pour communiquer des informations d'accès temporaires en votre CodeCommit nom.

**Note**  
Vous pouvez configurer et utiliser **git-remote-codecommit** sur les instances Amazon EC2.

Pour accorder aux utilisateurs un accès temporaire à vos CodeCommit référentiels, procédez comme suit.



## Étape 1 : Exécuter les prérequis
<a name="temporary-access-prerequisites"></a>

Effectuez les étapes de configuration pour permettre à un utilisateur d'accéder à vos CodeCommit référentiels à l'aide de la rotation des informations d'identification : 
+ Pour l'accès entre comptes, consultez [Procédure pas à pas : délégation d'accès entre comptes Amazon Web Services à l'aide de rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-walkthrough-crossacct.html) et. [Configuration de l'accès entre comptes à un AWS CodeCommit référentiel à l'aide de rôles](cross-account.md)
+ Pour le SAML et la fédération, voir [Utilisation du système d'authentification de votre organisation pour accorder l'accès aux AWS ressources et À](https://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#IdentityBrokerApplication) [propos de la fédération basée sur AWS STS SAML 2.0.](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html)
+ Pour l'authentification multifactorielle, voir [Utilisation de dispositifs Multi-Factor Authentication (MFA) AWS avec des identifiants](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingMFA.html) de sécurité temporaires [et création d'identifiants de sécurité temporaires](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSessionTokens.html) pour permettre l'accès aux utilisateurs IAM.
+ Pour Login with Amazon, Amazon Cognito, Facebook, Google ou tout autre fournisseur d'identité compatible OIDC, consultez [À propos AWS STS](https://docs.aws.amazon.com/STS/latest/UsingSTS/web-identity-federation.html) de Web Identity Federation.

Utilisez les informations contenues [Authentification et contrôle d'accès pour AWS CodeCommit](auth-and-access-control.md) pour spécifier les CodeCommit autorisations que vous souhaitez accorder à l'utilisateur.

## Étape 2 : obtenir le nom du rôle ou les informations d'accès
<a name="temporary-access-get-credentials"></a>

Si vous souhaitez que vos utilisateurs accèdent aux référentiels en assumant un rôle, fournissez-leur l'ARN (Amazon Resource Name) de ce rôle. Sinon, selon la façon dont vous configurez l'accès, l'utilisateur peut obtenir des informations d'identification rotatives de l'une des manières suivantes :
+ Pour un accès entre comptes, appelez la commande AWS CLI [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) ou appelez l'API. AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
+ Pour le SAML, appelez la AWS CLI [assume-role-with-saml](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html)commande ou l'API AWS STS [AssumeRoleWithSAML.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)
+ Pour la fédération, appelez le AWS CLI [rôle ou [get-federation-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html)](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html)les commandes ou le AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)or. [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) APIs
+ Pour le MFA, appelez la AWS CLI [get-session-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html)commande ou l' AWS STS [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html)API.
+ Pour Login with Amazon, Amazon Cognito, Facebook, Google ou tout autre fournisseur d'identité compatible OIDC, appelez la commande AWS CLI [assume-role-with-web-identity ou l'API](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html). AWS STS [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)



## Étape 3 : Installation git-remote-codecommit et configuration du AWS CLI
<a name="temporary-access-configure-credentials"></a>

Vous devez configurer votre ordinateur local pour qu'il utilise les informations d'identification d'accès en installant [https://pypi.org/project/git-remote-codecommit/](https://pypi.org/project/git-remote-codecommit/) et en configurant un profil dans l' AWS CLI.

1. Suivez les instructions de [Configuration ](setting-up.md) pour configurer l' AWS CLI. Utilisez la commande **aws configure** pour configurer un ou plusieurs profils. Envisagez de créer un profil nommé à utiliser lorsque vous vous connectez à des CodeCommit référentiels à l'aide de la rotation des informations d'identification.

1. Vous pouvez associer les informations d'identification au profil AWS CLI nommé de l'utilisateur de l'une des manières suivantes. 
   + Si vous assumez un rôle d'accès CodeCommit, configurez un profil nommé avec les informations requises pour assumer ce rôle. Par exemple, si vous souhaitez assumer un rôle nommé *CodeCommitAccess* dans le compte Amazon Web Services 1111111111, vous pouvez configurer un profil par défaut à utiliser lorsque vous travaillez avec d'autres AWS ressources et un profil nommé à utiliser lorsque vous assumez ce rôle. Les commandes suivantes créent un profil nommé *CodeAccess* qui assume un rôle nommé*CodeCommitAccess*. Le nom d'utilisateur *Maria\$1Garcia* est associé à la session et le profil par défaut est défini comme source de ses AWS informations d'identification :

     ```
     aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess
     aws configure set source_profile default --profile CodeAccess
     aws configure set role_session_name "Maria_Garcia" --profile CodeAccess
     ```

     Si vous souhaitez vérifier les modifications, affichez ou modifiez manuellement le fichier `~/.aws/config` (pour Linux) ou le fichier `%UserProfile%.aws\config` (pour Windows) et examinez les informations sous le profil nommé. Votre fichier peut ressembler à l'exemple suivant :

     ```
     [default]
     region = us-east-1
     output = json
     
     [profile CodeAccess]
     source_profile = default
     role_session_name = Maria_Garcia
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     ```

      Après avoir configuré votre profil nommé, vous pouvez ensuite cloner des référentiels CodeCommit avec l'utilitaire **git-remote-codecommit** à l'aide du profil nommé. Par exemple, pour cloner un référentiel nommé *MyDemoRepo* : 

     ```
     git clone codecommit://CodeAccess@MyDemoRepo
     ```
   + Si vous utilisez la fédération d'identité Web et OpenID Connect (OIDC), configurez un profil nommé qui appelle l'`AssumeRoleWithWebIdentity`API AWS Security Token Service (AWS STS) en votre nom pour actualiser les informations d'identification temporaires. Utilisez la **aws configure set** commande ou modifiez manuellement le `~/.aws/credentials` fichier (pour Linux) ou le `%UserProfile%.aws\credentials` fichier (pour Windows) pour ajouter un profil AWS CLI nommé avec les valeurs de réglage requises. Par exemple, pour créer un profil qui assume le *CodeCommitAccess* rôle et utilise un fichier de jeton d'identité Web \$1/ : *my-credentials* */my-token-file*

     ```
     [CodeCommitWebIdentity]
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     web_identity_token_file=~/my-credentials/my-token-file
     role_session_name = Maria_Garcia
     ```

   Pour plus d'informations, consultez [la section Configuration AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) et [utilisation d'un rôle IAM AWS CLI dans le](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) *guide de l'AWS Command Line Interface utilisateur*.

## Étape 4 : Accès aux CodeCommit référentiels
<a name="temporary-access-use-credentials"></a>

En supposant que votre utilisateur ait suivi les instructions [Connexion à un référentiel](how-to-connect.md) pour se connecter CodeCommit aux référentiels, il utilise ensuite les fonctionnalités étendues fournies par **git-remote-codecommit** Git **git pull** pour appeler **git clone****git push**, cloner, envoyer des push vers et extraire les CodeCommit référentiels auxquels il a accès. Par exemple, pour cloner un référentiel :

```
git clone codecommit://CodeAccess@MyDemoRepo
```

Les commandes Git commit, push et pull utilisent la syntaxe Git régulière. 

Lorsque l'utilisateur utilise le AWS CLI et spécifie le profil AWS CLI nommé associé aux informations d'identification d'accès rotatives, les résultats limités à ce profil sont renvoyés.



# Identity and Access Management pour AWS CodeCommit
<a name="security-iam"></a>

Gestion des identités et des accès AWS (IAM) est un outil Service AWS qui permet à un administrateur de contrôler en toute sécurité l'accès aux AWS ressources. Les administrateurs IAM contrôlent qui peut être *authentifié* (connecté) et *autorisé (autorisé*) à utiliser CodeCommit les ressources. IAM est un Service AWS outil que vous pouvez utiliser sans frais supplémentaires.

**Topics**
+ [Public ciblé](#security_iam_audience)
+ [Authentification par des identités](#security_iam_authentication)
+ [Gestion de l’accès à l’aide de politiques](#security_iam_access-manage)
+ [Authentification et contrôle d'accès pour AWS CodeCommit](auth-and-access-control.md)
+ [Comment AWS CodeCommit fonctionne avec IAM](security_iam_service-with-iam.md)
+ [CodeCommit politiques basées sur les ressources](#security_iam_service-with-iam-resource-based-policies)
+ [Autorisation basée sur les CodeCommit tags](#security_iam_service-with-iam-tags)
+ [CodeCommit Rôles IAM](#security_iam_service-with-iam-roles)
+ [AWS CodeCommit exemples de politiques basées sur l'identité](#security_iam_id-based-policy-examples)
+ [Résolution des problèmes AWS CodeCommit d'identité et d'accès](#security_iam_troubleshoot)

## Public ciblé
<a name="security_iam_audience"></a>

La façon dont vous utilisez Gestion des identités et des accès AWS (IAM) varie en fonction de votre rôle :
+ **Utilisateur du service** : demandez des autorisations à votre administrateur si vous ne pouvez pas accéder aux fonctionnalités (voir [Résolution des problèmes AWS CodeCommit d'identité et d'accès](#security_iam_troubleshoot))
+ **Administrateur du service** : déterminez l’accès des utilisateurs et soumettez les demandes d’autorisation (voir [Comment AWS CodeCommit fonctionne avec IAM](security_iam_service-with-iam.md))
+ **Administrateur IAM** : rédigez des politiques pour gérer l’accès (voir [AWS CodeCommit exemples de politiques basées sur l'identité](#security_iam_id-based-policy-examples))

## Authentification par des identités
<a name="security_iam_authentication"></a>

L'authentification est la façon dont vous vous connectez à AWS l'aide de vos informations d'identification. Vous devez être authentifié en tant qu'utilisateur IAM ou en assumant un rôle IAM. Utilisateur racine d'un compte AWS

Vous pouvez vous connecter en tant qu'identité fédérée à l'aide d'informations d'identification provenant d'une source d'identité telle que AWS IAM Identity Center (IAM Identity Center), d'une authentification unique ou d'informations d'identification. Google/Facebook Pour plus d’informations sur la connexion, consultez [Connexion à votre Compte AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dans le *Guide de l’utilisateur Connexion à AWS *.

Pour l'accès par programmation, AWS fournit un SDK et une CLI pour signer les demandes de manière cryptographique. Pour plus d’informations, consultez [Signature AWS Version 4 pour les demandes d’API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dans le *Guide de l’utilisateur IAM*.

### Compte AWS utilisateur root
<a name="security_iam_authentication-rootuser"></a>

 Lorsque vous créez un Compte AWS, vous commencez par une seule identité de connexion appelée *utilisateur Compte AWS root* qui dispose d'un accès complet à toutes Services AWS les ressources. Il est vivement déconseillé d’utiliser l’utilisateur racine pour vos tâches quotidiennes. Pour les tâches qui requièrent des informations d’identification de l’utilisateur racine, consultez [Tâches qui requièrent les informations d’identification de l’utilisateur racine](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dans le *Guide de l’utilisateur IAM*. 

### Utilisateurs et groupes IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* est une identité qui dispose d’autorisations spécifiques pour une seule personne ou application. Nous vous recommandons d’utiliser ces informations d’identification temporaires au lieu des utilisateurs IAM avec des informations d’identification à long terme. Pour plus d'informations, voir [Exiger des utilisateurs humains qu'ils utilisent la fédération avec un fournisseur d'identité pour accéder à AWS l'aide d'informations d'identification temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) dans le *guide de l'utilisateur IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spécifient une collection d’utilisateurs IAM et permettent de gérer plus facilement les autorisations pour de grands ensembles d’utilisateurs. Pour plus d’informations, consultez [Cas d’utilisation pour les utilisateurs IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dans le *Guide de l’utilisateur IAM*.

### Rôles IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* est une identité dotée d’autorisations spécifiques qui fournit des informations d’identification temporaires. Vous pouvez assumer un rôle en [passant d'un rôle d'utilisateur à un rôle IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou en appelant une opération d' AWS API AWS CLI ou d'API. Pour plus d’informations, consultez [Méthodes pour endosser un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dans le *Guide de l’utilisateur IAM*.

Les rôles IAM sont utiles pour l’accès des utilisateurs fédérés, les autorisations temporaires des utilisateurs IAM, les accès intercompte, les accès entre services et les applications exécutées sur Amazon EC2. Pour plus d’informations, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.

## Gestion de l’accès à l’aide de politiques
<a name="security_iam_access-manage"></a>

Vous contrôlez l'accès en AWS créant des politiques et en les associant à AWS des identités ou à des ressources. Une politique définit les autorisations lorsqu'elles sont associées à une identité ou à une ressource. AWS évalue ces politiques lorsqu'un directeur fait une demande. La plupart des politiques sont stockées AWS sous forme de documents JSON. Pour plus d’informations les documents de politique JSON, consultez [Vue d’ensemble des politiques JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dans le *Guide de l’utilisateur IAM*.

À l’aide de politiques, les administrateurs précisent qui a accès à quoi en définissant quel **principal** peut effectuer des **actions** sur quelles **ressources** et dans quelles **conditions**.

Par défaut, les utilisateurs et les rôles ne disposent d’aucune autorisation. Un administrateur IAM crée des politiques IAM et les ajoute aux rôles, que les utilisateurs peuvent ensuite assumer. Les politiques IAM définissent les autorisations quelle que soit la méthode que vous utilisez pour exécuter l’opération.

### Politiques basées sur l’identité
<a name="security_iam_access-manage-id-based-policies"></a>

Les stratégies basées sur l’identité sont des documents de stratégie d’autorisations JSON que vous attachez à une identité (utilisateur, groupe ou rôle). Ces politiques contrôlent les actions que peuvent exécuter ces identités, sur quelles ressources et dans quelles conditions. Pour découvrir comment créer une politique basée sur l’identité, consultez [Définition d’autorisations IAM personnalisées avec des politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le *Guide de l’utilisateur IAM*.

Les politiques basées sur l’identité peuvent être des *politiques intégrées* (intégrées directement dans une seule identité) ou des *politiques gérées (politiques* autonomes associées à plusieurs identités). Pour découvrir comment choisir entre des politiques gérées et en ligne, consultez [Choix entre les politiques gérées et les politiques en ligne](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dans le *Guide de l’utilisateur IAM*.

### Politiques basées sur les ressources
<a name="security_iam_access-manage-resource-based-policies"></a>

Les politiques basées sur les ressources sont des documents de politique JSON que vous attachez à une ressource. Les exemples incluent *les politiques de confiance de rôle* IAM et les *stratégies de compartiment* Amazon S3. Dans les services qui sont compatibles avec les politiques basées sur les ressources, les administrateurs de service peuvent les utiliser pour contrôler l’accès à une ressource spécifique. Vous devez [spécifier un principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dans une politique basée sur les ressources.

Les politiques basées sur les ressources sont des politiques en ligne situées dans ce service. Vous ne pouvez pas utiliser les politiques AWS gérées par IAM dans une stratégie basée sur les ressources.

### Listes de contrôle d'accès (ACLs)
<a name="security_iam_access-manage-acl"></a>

Les listes de contrôle d'accès (ACLs) contrôlent les principaux (membres du compte, utilisateurs ou rôles) autorisés à accéder à une ressource. ACLs sont similaires aux politiques basées sur les ressources, bien qu'elles n'utilisent pas le format de document de politique JSON.

Amazon S3 et AWS WAF Amazon VPC sont des exemples de services compatibles. ACLs Pour en savoir plus ACLs, consultez la [présentation de la liste de contrôle d'accès (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) dans le *guide du développeur Amazon Simple Storage Service*.

### Autres types de politique
<a name="security_iam_access-manage-other-policies"></a>

AWS prend en charge des types de politiques supplémentaires qui peuvent définir les autorisations maximales accordées par les types de politiques les plus courants :
+ **Limites d’autorisations** : une limite des autorisations définit le nombre maximum d’autorisations qu’une politique basée sur l’identité peut accorder à une entité IAM. Pour plus d’informations, consultez [Limites d’autorisations pour des entités IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dans le *Guide de l’utilisateur IAM*.
+ **Politiques de contrôle des services (SCPs)** — Spécifiez les autorisations maximales pour une organisation ou une unité organisationnelle dans AWS Organizations. Pour plus d’informations, consultez [Politiques de contrôle de service](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dans le *Guide de l’utilisateur AWS Organizations *.
+ **Politiques de contrôle des ressources (RCPs)** : définissez le maximum d'autorisations disponibles pour les ressources de vos comptes. Pour plus d'informations, voir [Politiques de contrôle des ressources (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) dans le *guide de AWS Organizations l'utilisateur*.
+ **Politiques de session** : politiques avancées que vous passez en tant que paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur fédéré. Pour plus d’informations, consultez [Politiques de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dans le *Guide de l’utilisateur IAM*.

### Plusieurs types de politique
<a name="security_iam_access-manage-multiple-policies"></a>

Lorsque plusieurs types de politiques s’appliquent à la requête, les autorisations en résultant sont plus compliquées à comprendre. Pour savoir comment AWS déterminer s'il faut autoriser une demande lorsque plusieurs types de politiques sont impliqués, consultez la section [Logique d'évaluation des politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) dans le *guide de l'utilisateur IAM*.

# Authentification et contrôle d'accès pour AWS CodeCommit
<a name="auth-and-access-control"></a>

L'accès à AWS CodeCommit nécessite des informations d'identification. Ces informations d'identification doivent être autorisées à accéder aux AWS ressources, telles que CodeCommit les référentiels, et à votre utilisateur IAM, que vous utilisez pour gérer vos informations d'identification Git ou la clé publique SSH que vous utilisez pour établir des connexions Git. Les sections suivantes fournissent des informations détaillées sur la manière dont vous pouvez utiliser [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) et CodeCommit pour sécuriser l'accès à vos ressources :
+ [Authentification](#authentication)
+ [Contrôle d’accès](#access-control)

## Authentification
<a name="authentication"></a>

Étant donné que CodeCommit les référentiels sont basés sur Git et prennent en charge les fonctionnalités de base de Git, y compris les informations d'identification Git, nous vous recommandons d'utiliser un utilisateur IAM lorsque vous travaillez avec. CodeCommit Vous pouvez y accéder CodeCommit avec d'autres types d'identité, mais les autres types d'identité sont soumis à des restrictions, comme décrit ci-dessous.

Type d'identité :
+ Utilisateur **IAM : un utilisateur** [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) est une identité au sein de votre compte Amazon Web Services dotée d'autorisations personnalisées spécifiques. Par exemple, un utilisateur IAM peut être autorisé à créer et à gérer les informations d'identification Git pour accéder aux CodeCommit référentiels. **Il s'agit du type d'utilisateur recommandé pour travailler avec CodeCommit.** [Vous pouvez utiliser un nom d'utilisateur et un mot de passe IAM pour vous connecter à des AWS pages Web sécurisées telles que [AWS Management Console](https://console.aws.amazon.com/)les [forums de AWS discussion](https://forums.aws.amazon.com/) ou le AWS Support centre.](https://console.aws.amazon.com/support/home#/) 

  Vous pouvez générer des informations d'identification Git ou associer des clés publiques SSH à votre utilisateur IAM, ou vous pouvez les installer et les configurer. **git-remote-codecommit** Il s'agit des méthodes les plus simples pour configurer Git pour qu'il fonctionne avec vos CodeCommit référentiels. Avec les [informations d'identification Git](setting-up-gc.md), vous générez un nom d'utilisateur et un mot de passe statiques dans IAM. Ensuite, vous utilisez ces informations pour les connexions HTTPS avec Git et n'importe quel outil tiers prenant en charge l'authentification par nom d'utilisateur et mot de passe Git. Avec les connexions SSH, vous créez des fichiers de clés publiques et privées sur votre machine locale que Git CodeCommit utilise pour l'authentification SSH. Vous associez la clé publique à votre utilisateur IAM et vous stockez la clé privée sur votre machine locale. **[git-remote-codecommit](setting-up-git-remote-codecommit.md)**étend Git lui-même et ne nécessite pas de configurer les informations d'identification Git pour l'utilisateur.

  En outre, vous pouvez générer des [clés d'accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) pour chaque utilisateur. Utilisez les clés d'accès lorsque vous accédez aux AWS services par programmation, soit par [le biais de l'un des](https://aws.amazon.com/tools/), AWS SDKs soit à l'aide du [AWS Command Line Interface ()AWS CLI](https://aws.amazon.com/cli/). Les kits SDK et les outils de l'interface de ligne de commande utilisent les clés d'accès pour chiffrer la signature des demandes. Si vous n'utilisez pas les AWS outils, vous devez signer vous-même les demandes. CodeCommit prend en charge *Signature Version 4*, un protocole permettant d'authentifier les demandes d'API entrantes. Pour plus d'informations sur l'authentification des demandes, consultez [Processus de signature Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) dans le document *Références générales AWS*.
+ **Utilisateur root du compte Amazon Web Services** : lorsque vous vous inscrivez AWS, vous fournissez une adresse e-mail et un mot de passe associés à votre compte Amazon Web Services. Il s'agit de vos *informations d'identification racine* et elles fournissent un accès complet à l'ensemble de vos ressources AWS . Certaines CodeCommit fonctionnalités ne sont pas disponibles pour les utilisateurs de comptes root. En outre, la seule façon d'utiliser Git avec votre compte root est d'installer et de configurer **git-remote-codecommit** (recommandé) ou de configurer l'assistant AWS d'identification, qui est inclus dans le. AWS CLI Vous ne pouvez pas utiliser les informations d'identification Git ni les paires de clés publiques/privées SSH avec votre compte utilisateur racine. Pour ces raisons, nous vous déconseillons d'utiliser l'utilisateur de votre compte root lorsque vous interagissez avec CodeCommit.
**Important**  
Pour des raisons de sécurité, nous vous conseillons d'utiliser les informations d'identification racine uniquement pour créer un *utilisateur administrateur*, qui est un *utilisateur IAM* disposant des autorisations complètes sur votre compte AWS . Vous pouvez ensuite utiliser cet utilisateur administrateur pour créer d'autres utilisateurs IAM et des rôles dotés d'autorisations limitées. Pour plus d'informations, consultez [Bonnes pratiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users) et [Création d'un utilisateurs administrateur et d'un groupe](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) dans le *Guide de l'utilisateur IAM*.
+ **IAM Identity Center et utilisateurs d'IAM Identity Center** : AWS IAM Identity Center élargit les capacités de Gestion des identités et des accès AWS afin de fournir un espace central regroupant l'administration des utilisateurs et leur accès aux applications Comptes AWS cloud. Bien que recommandé comme bonne pratique pour la plupart des utilisateurs AWS, IAM Identity Center ne fournit actuellement aucun mécanisme pour les informations d'identification Git ou les paires de clés SSH. Ces utilisateurs peuvent installer et configurer **git-remote-codecommit** pour cloner des CodeCommit référentiels en local, mais tous les environnements de développement intégrés (IDEs) ne prennent pas en charge le clonage, le transfert ou l'extraction. **git-remote-codecommit**

  Il est recommandé d'obliger les utilisateurs humains à utiliser la fédération avec un fournisseur d'identité pour accéder à Services AWS l'aide d'informations d'identification temporaires.

  Une *identité fédérée* est un utilisateur provenant de l'annuaire de votre entreprise, de votre fournisseur d'identité Web ou Directory Service qui y accède à Services AWS l'aide d'informations d'identification provenant d'une source d'identité. Les identités fédérées assument des rôles qui fournissent des informations d’identification temporaires.

  Pour une gestion des accès centralisée, nous vous recommandons d’utiliser AWS IAM Identity Center. Pour plus d’informations, consultez [Qu’est-ce que IAM Identity Center ?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.
+ **Rôle IAM** — Tout comme un utilisateur IAM, un [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) est une identité IAM que vous pouvez créer dans votre compte pour accorder des autorisations spécifiques.

  Un *[rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* est une identité dotée d’autorisations spécifiques qui fournit des informations d’identification temporaires. Vous pouvez assumer un rôle en [passant d'un rôle d'utilisateur à un rôle IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou en appelant une opération d' AWS API AWS CLI ou d'API. Pour plus d’informations, consultez [Méthodes pour endosser un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dans le *Guide de l’utilisateur IAM*.

  Les rôles IAM sont utiles pour l’accès des utilisateurs fédérés, les autorisations temporaires des utilisateurs IAM, les accès intercompte, les accès entre services et les applications exécutées sur Amazon EC2. Pour plus d’informations, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.
**Note**  
 Vous ne pouvez pas utiliser les informations d'identification Git ni les paires de clés publiques/privées SSH avec les utilisateur fédérés. En outre, les préférences utilisateur ne sont pas disponibles pour les utilisateurs fédérés. Pour plus d'informations sur la configuration des connexions à l'aide de l'accès fédéré, consultez [Étapes de configuration pour les connexions HTTPS AWS CodeCommit avec git-remote-codecommit](setting-up-git-remote-codecommit.md).

## Contrôle d’accès
<a name="access-control"></a>

Vous pouvez disposer d'informations d'identification valides pour authentifier vos demandes, mais vous ne pouvez pas créer de CodeCommit ressources ni y accéder si vous n'êtes pas autorisé à le faire. Par exemple, vous devez disposer des autorisations requises pour afficher les référentiels, transmettre le code, créer et gérer les informations d'identification Git, etc.

Les sections suivantes décrivent comment gérer les autorisations pour CodeCommit. Nous vous recommandons de lire d’abord la présentation.
+ [Vue d'ensemble de la gestion des autorisations d'accès à vos CodeCommit ressources](#auth-and-access-control-iam-access-control-identity-based)
+ [Utilisation de politiques basées sur l'identité (politiques IAM) pour CodeCommit](auth-and-access-control-iam-identity-based-access-control.md)
+ [CodeCommit référence aux autorisations](auth-and-access-control-permissions-reference.md)

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

Chaque AWS ressource est détenue par un compte Amazon Web Services. Les autorisations pour créer ou accéder à un ressource sont gérées par des stratégies d'autorisations. Un compte administrateur peut attacher des politiques d'autorisations à des identités IAM (c'est-à-dire des utilisateurs, des groupes et des rôles). Certains services, tels que AWS Lambda, permettent également d'associer des politiques d'autorisation aux ressources. 

**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 les reçoit, à quelles ressources ces autorisations s'appliquent et les actions spécifiques que vous souhaitez autoriser sur ces ressources.

**Topics**
+ [CodeCommit 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)
+ [Délimitation des ressources dans CodeCommit](#resource-scoping)
+ [Spécification des éléments d'une politique : ressources, actions, effets et mandataires](#actions-effects-principals)
+ [Spécification de conditions dans une politique](#policy-conditions)

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

Dans CodeCommit, la ressource principale est un référentiel. Chaque ressource possède un Amazon Resource Name (ARN) associé unique. Dans une politique, vous utilisez un Amazon Resource Name (ARN) pour identifier la ressource à laquelle la politique s'applique. Pour plus d'informations sur ARNs, 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*. CodeCommit ne prend actuellement pas en charge les autres types de ressources, appelés sous-ressources.

Le tableau suivant décrit comment spécifier les CodeCommit ressources.


| Type de ressource | Format ARN | 
| --- | --- | 
| Référentiel |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  Tous les CodeCommit référentiels  |  arn:aws:codecommit:\$1  | 
|  Tous les CodeCommit référentiels détenus par le compte spécifié dans le Région AWS  |  arn:aws:codecommit : : \$1 *region* *account-id*  | 

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

Par exemple, vous pouvez indiquer un référentiel spécifique (*MyDemoRepo*) dans votre instruction à l'aide de son ARN comme suit :

```
"Resource": "arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo"
```

Pour spécifier tous les référentiels appartenant à un compte spécifique, utilisez le caractère générique (\$1) comme suit :

```
"Resource": "arn:aws:codecommit:us-west-2:111111111111:*"
```

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

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

Vous pouvez également utiliser le caractère générique (\$1) pour spécifier toutes les ressources qui correspondent à une partie du nom du référentiel. Par exemple, l'ARN suivant indique tout CodeCommit référentiel qui commence par le nom `MyDemo` et qui est enregistré sur le compte Amazon Web Services `111111111111` dans le `us-east-2` Région AWS :

```
arn:aws:codecommit:us-east-2:111111111111:MyDemo*
```

 Pour obtenir la liste des opérations disponibles qui fonctionnent avec les CodeCommit ressources, consultez[CodeCommit 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 compte Amazon Web Services possède les ressources créées dans le compte, quel que soit leur créateur. Plus précisément, le propriétaire de la ressource est le compte Amazon Web Services 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 IAM ou un rôle IAM) qui authentifie la demande de création de ressource. Les exemples suivants illustrent comment cela fonctionne :
+ Si vous créez un utilisateur IAM dans votre compte Amazon Web Services et que vous accordez des autorisations pour créer CodeCommit des ressources à cet utilisateur, celui-ci peut créer des CodeCommit ressources. Toutefois, votre compte Amazon Web Services, auquel appartient l'utilisateur, est propriétaire des CodeCommit ressources.
+ Si vous utilisez les informations d'identification du compte root de votre compte Amazon Web Services pour créer une règle, votre compte Amazon Web Services est le propriétaire de la CodeCommit ressource.
+ Si vous créez un rôle IAM dans votre compte Amazon Web Services avec l'autorisation de créer des CodeCommit ressources, toute personne habilitée à assumer ce rôle peut créer des CodeCommit ressources. Votre compte Amazon Web Services, auquel appartient le rôle, est propriétaire des CodeCommit ressources.

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

Pour gérer l'accès aux AWS ressources, vous utilisez des politiques d'autorisation. Une *permissions policy* (politique d'autorisation) décrit qui a accès à quoi. La section suivante explique les options disponibles pour créer des stratégies d'autorisation.

**Note**  
Cette section décrit l'utilisation d'IAM dans le contexte de CodeCommit. Elle ne fournit pas d’informations détaillées sur le service IAM. Pour plus d'informations sur l'IAM, voir [Qu'est-ce que l'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 IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dans le *Guide de l'utilisateur IAM*.

Les politiques d'autorisation associées à une identité IAM sont appelées politiques basées sur l'identité (politiques IAM). Les stratégies d'autorisation qui sont associées à une ressource sont des stratégies basées sur la ressource. Actuellement, ne CodeCommit prend en charge que les politiques basées sur l'identité (politiques IAM).

**Topics**
+ [Politiques basées sur une identité (politiques IAM)](#identity-based-policies)
+ [Politiques basées sur les ressources](#resource-based-policies-overview)

#### Politiques basées sur une identité (politiques IAM)
<a name="identity-based-policies"></a>

Pour gérer l'accès aux AWS ressources, vous devez associer des politiques d'autorisation aux identités IAM. Dans CodeCommit, vous utilisez des politiques basées sur l'identité pour contrôler l'accès aux référentiels. Par exemple, vous pouvez effectuer les opérations suivantes : 
+ **Associer une politique d'autorisation à un utilisateur ou à un groupe de votre compte** : pour autoriser un utilisateur à consulter les CodeCommit ressources dans la CodeCommit console, associez une politique d'autorisation basée sur l'identité à un utilisateur ou à un groupe auquel l'utilisateur appartient.
+ **Associer une politique d'autorisation à un rôle (pour accorder des autorisations entre comptes)** : la délégation, par exemple lorsque vous souhaitez accorder un accès entre comptes, implique la mise en place d'une relation de confiance entre le compte propriétaire de la ressource (le compte de confiance) et le compte contenant les utilisateurs devant accéder à la ressource (le compte de confiance). Une stratégie d'autorisation accorde à l'utilisateur d'un rôle les autorisations nécessaires pour exécuter les tâches prévues sur la ressource. Une stratégie d'approbation détermine les comptes approuvés autorisés à accorder à leurs utilisateurs les autorisations nécessaires pour assumer le rôle. Pour plus d'informations, consultez la section [Termes et concepts de l'IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html). 

  Pour accorder des autorisations entre comptes, associez une politique d'autorisation basée sur l'identité à un rôle IAM. Par exemple, l'administrateur du compte A peut créer un rôle pour accorder des autorisations entre comptes à un autre compte Amazon Web Services (par exemple, le compte B) ou à un AWS service comme suit :

  1. L'administrateur du Compte A crée un rôle IAM et attache une politique d'autorisation à ce rôle qui accorde des autorisations sur les ressources dans le Compte A.

  1. L'administrateur du Compte A attache une politique d'approbation au rôle identifiant le Compte B comme principal pouvant assumer ce rôle.

  1. L'administrateur du compte B peut ensuite déléguer les autorisations nécessaires pour assumer le rôle à n'importe quel utilisateur du compte B. Cela permet aux utilisateurs du compte B de créer ou d'accéder aux ressources du compte A. Si vous souhaitez accorder à un AWS service l'autorisation d'assumer le rôle, le principal responsable de la politique de confiance peut également être un directeur de AWS service. Pour plus d'informations, consultez la section Délégation dans les [termes et concepts de l'IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html).

  Pour en savoir plus sur l'utilisation d'IAM pour déléguer des autorisations, consultez [Gestion des accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) dans le *Guide de l'utilisateur IAM*.



L'exemple suivant de stratégie permet à un utilisateur de créer une branche dans un référentiel nommé *MyDemoRepo* :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:CreateBranch"
      ],
      "Resource" : "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo"
    }
  ]
}
```

------

Pour restreindre les appels et les ressources auxquels les utilisateurs de votre compte ont accès, créez des politiques IAM spécifiques, puis associez ces politiques aux utilisateurs IAM. Pour plus d'informations sur la création de rôles IAM et pour découvrir des exemples de déclarations de politique IAM pour CodeCommit, voir. [Exemples de politiques d'identité gérées par le client](customer-managed-policies.md#customer-managed-policies-identity) 

#### Politiques basées sur les ressources
<a name="resource-based-policies-overview"></a>

Certains services, tels qu'Amazon S3, prennent également en charge les politiques d'autorisation basées sur les ressources. Par exemple, vous pouvez associer une politique basée sur les ressources à un compartiment S3 afin de gérer les autorisations d'accès à ce compartiment. CodeCommit ne prend pas en charge les politiques basées sur les ressources, mais vous pouvez utiliser des balises pour identifier les ressources, que vous pouvez ensuite utiliser dans les politiques IAM. Pour obtenir un exemple d'une stratégie basée sur les balises, consultez [Politiques basées sur une identité (politiques IAM)](#identity-based-policies). 

### Délimitation des ressources dans CodeCommit
<a name="resource-scoping"></a>

Dans CodeCommit, vous pouvez définir les politiques basées sur l'identité et les autorisations d'accès aux ressources, comme décrit dans. [CodeCommit ressources et opérations](#arn-formats) Cependant, vous ne pouvez pas spécifier l'autorisation `ListRepositories` pour une ressource. Au lieu de cela, vous devez la définir pour toutes les ressources (en utilisant le caractère générique `*`). Sinon, l'action échoue. 

Toutes les autres CodeCommit autorisations peuvent être étendues aux ressources.

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

Vous pouvez créer des politiques pour autoriser ou refuser aux utilisateurs l'accès aux ressources, ou autoriser ou refuser aux utilisateurs d'effectuer des actions spécifiques sur ces ressources. CodeCommit définit un ensemble d'opérations d'API publiques qui définissent la manière dont les utilisateurs travaillent avec le service, que ce soit par le biais de la CodeCommit console SDKs, du AWS CLI, ou en les appelant directement APIs. Pour accorder des autorisations pour ces opérations d'API CodeCommit , définissez un ensemble d'actions que vous pouvez spécifier dans une politique. 

Certaines opérations d'API nécessitent des autorisations pour plusieurs actions. Pour plus d'informations sur les ressources et les opérations de l'API, consultez [CodeCommit ressources et opérations](#arn-formats) et [CodeCommit référence aux autorisations](auth-and-access-control-permissions-reference.md).

Voici les éléments de base d'une stratégie :
+ **Ressource** : pour identifier la ressource à laquelle la politique s'applique, vous utilisez un Amazon Resource Name (ARN). Pour de plus amples informations, veuillez consulter [CodeCommit ressources et opérations](#arn-formats).
+ **Action** : pour identifier les opérations sur les ressources que vous souhaitez autoriser ou refuser, vous utilisez des mots clés d'action. Par exemple, en fonction de ce qui est spécifié`Effect`, l'`codecommit:GetBranch`autorisation autorise ou refuse à l'utilisateur d'effectuer l'`GetBranch`opération, qui permet d'obtenir des informations sur une branche d'un CodeCommit référentiel.
+ **Effet** : vous spécifiez l'effet, qu'il s'agisse d'autoriser ou de refuser, qui se produit lorsque l'utilisateur demande l'action spécifique. Si vous n’accordez pas explicitement l’accès pour (autoriser) une ressource, l’accès est implicitement refusé. Vous pouvez aussi explicitement refuser l'accès à une ressource 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), le seul type de politique CodeCommit compatible, l'utilisateur auquel la politique est attachée est le principal implicite. 

Pour en savoir plus sur la syntaxe des politiques IAM, consultez la [référence des politiques IAM](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' CodeCommit API et les ressources auxquelles elles s'appliquent, consultez[CodeCommit référence aux autorisations](auth-and-access-control-permissions-reference.md).

### Spécification de conditions dans une politique
<a name="policy-conditions"></a>

Lorsque vous accordez des autorisations, vous utilisez le langage de politique d'accès d'IAM pour spécifier les conditions dans lesquelles une politique doit prendre effet. Par exemple, il est possible d’appliquer une politique après seulement une date spécifique. Pour plus d'informations sur la spécification de conditions dans un langage de politique, consultez la section [Grammaire des [conditions](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition) et des politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) dans le *guide de l'utilisateur IAM*.

Pour exprimer des conditions, vous utilisez des clés de condition prédéfinies. Il n'existe pas de clés de condition spécifiques à CodeCommit. Cependant, il existe des AWS clés de condition larges que vous pouvez utiliser le cas échéant. Pour obtenir la liste complète des touches AWS-wide, consultez la section [Clés disponibles pour les conditions](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) dans le *guide de l'utilisateur IAM*. 

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

Les exemples suivants de politiques basées sur l'identité montrent comment un administrateur de compte peut associer des politiques d'autorisation aux identités IAM (utilisateurs, groupes et rôles) afin d'accorder des autorisations pour effectuer des opérations sur les ressources. CodeCommit 

**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 CodeCommit ressources. Pour de plus amples informations, veuillez consulter [Vue d'ensemble de la gestion des autorisations d'accès à vos CodeCommit ressources](auth-and-access-control.md#auth-and-access-control-iam-access-control-identity-based).

**Topics**
+ [Autorisations requises pour utiliser la CodeCommit console](#console-permissions)
+ [Affichage des ressources dans la console](#console-resources)
+ [AWS politiques gérées pour CodeCommit](security-iam-awsmanpol.md)
+ [Exemples de politiques gérées par le client](customer-managed-policies.md)

Un exemple de stratégie d'autorisation basée sur l'identité est présenté ci-dessous : 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:BatchGetRepositories"
      ],
      "Resource" : [
        "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo",
        "arn:aws:codecommit:us-east-2:111122223333:MyDemo*"
      ]
    }
  ]
}
```

------

Cette politique comporte une déclaration qui permet à un utilisateur d'obtenir des informations sur le CodeCommit référentiel nommé `MyDestinationRepo` et sur tous les CodeCommit référentiels commençant par ce nom `MyDemo` dans la **us-east-2** région. 

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

Pour connaître les autorisations requises pour chaque opération CodeCommit d'API et pour plus d'informations sur CodeCommit les opérations, consultez[CodeCommit référence aux autorisations](auth-and-access-control-permissions-reference.md).

Pour autoriser les utilisateurs à utiliser la CodeCommit console, l'administrateur doit leur accorder des autorisations pour les CodeCommit actions. Par exemple, vous pouvez associer la politique [AWSCodeCommitPowerUser](security-iam-awsmanpol.md#managed-policies-poweruser)gérée ou son équivalent à un utilisateur ou à un groupe.

Outre les autorisations accordées aux utilisateurs par les politiques basées sur l'identité, CodeCommit nécessite des autorisations pour les actions AWS Key Management Service (AWS KMS). Un utilisateur IAM n'a pas besoin d'`Allow`autorisations explicites pour ces actions, mais aucune politique ne doit lui être attachée définissant les autorisations suivantes sur `Deny` :

```
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
```

Pour plus d'informations sur le chiffrement et CodeCommit, voir[AWS KMS et chiffrement](encryption.md).

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

La CodeCommit console nécessite l'`ListRepositories`autorisation d'afficher une liste de référentiels pour votre compte Amazon Web Services dans le site Région AWS auquel 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 compte Amazon Web Services dans Région AWS lequel 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, des ressources spécifiques ne sont pas renvoyées si une valeur `Deny` explicite est définie pour l'affichage de ces ressources.

# AWS politiques gérées pour CodeCommit
<a name="security-iam-awsmanpol"></a>

Pour ajouter des autorisations aux utilisateurs, aux groupes et aux rôles, il est plus facile d'utiliser des politiques AWS gérées que de les rédiger vous-même. Il faut du temps et de l’expertise pour [créer des politiques gérées par le client IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) qui ne fournissent à votre équipe que les autorisations dont elle a besoin. Pour démarrer rapidement, vous pouvez utiliser nos politiques AWS gérées. Ces politiques couvrent des cas d’utilisation courants et sont disponibles dans votre Compte AWS. Pour plus d'informations sur les politiques AWS gérées, voir les [politiques AWS gérées](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dans le *guide de l'utilisateur IAM*.

AWS les services maintiennent et mettent à jour les politiques AWS gérées. Vous ne pouvez pas modifier les autorisations dans les politiques AWS gérées. Les services ajoutent occasionnellement des autorisations à une politique gérée par AWS pour prendre en charge de nouvelles fonctionnalités. Ce type de mise à jour affecte toutes les identités (utilisateurs, groupes et rôles) auxquelles la politique est attachée. Les services sont très susceptibles de mettre à jour une politique gérée par AWS quand une nouvelle fonctionnalité est lancée ou quand de nouvelles opérations sont disponibles. Les services ne suppriment pas les autorisations d'une politique AWS gérée. Les mises à jour des politiques n'endommageront donc pas vos autorisations existantes.

En outre, AWS prend en charge les politiques gérées pour les fonctions professionnelles qui couvrent plusieurs services. Par exemple, la politique **ReadOnlyAccess** AWS gérée fournit un accès en lecture seule à tous les AWS services et ressources. Lorsqu'un service lance une nouvelle fonctionnalité, il AWS ajoute des autorisations en lecture seule pour les nouvelles opérations et ressources. Pour obtenir la liste des politiques de fonctions professionnelles et leurs descriptions, consultez la page [politiques gérées par AWS pour les fonctions de tâche](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dans le *Guide de l’utilisateur IAM*.

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 requises pour les cas d'utilisation courants. Les politiques gérées fournissent CodeCommit également des autorisations pour effectuer des opérations dans d'autres services, tels que IAM, 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 AWSCode CommitFullAccess 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 référentiels (règles dont le nom est préfixé par) et des rubriques `codecommit` Amazon SNS pour les notifications relatives aux événements liés aux référentiels (sujets dont le nom est préfixé par), ainsi que d'administrer les référentiels dans. `codecommit` CodeCommit 

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

**Topics**
+ [AWS politique gérée : AWSCode CommitFullAccess](#managed-policies-full)
+ [AWS politique gérée : AWSCode CommitPowerUser](#managed-policies-poweruser)
+ [AWS politique gérée : AWSCode CommitReadOnly](#managed-policies-read)
+ [CodeCommit politiques et notifications gérées](#notifications-permissions)
+ [AWS CodeCommit politiques gérées et Amazon CodeGuru Reviewer](#codeguru-permissions)
+ [CodeCommit mises à jour des politiques AWS gérées](#security-iam-awsmanpol-updates)

## AWS politique gérée : AWSCode CommitFullAccess
<a name="managed-policies-full"></a>

Vous pouvez associer la politique `AWSCodeCommitFullAccess` à vos identités IAM. Cette politique accorde un accès complet à CodeCommit. Appliquez cette politique uniquement aux utilisateurs de niveau administratif auxquels vous souhaitez accorder un contrôle total sur les CodeCommit référentiels et les ressources associées de votre compte Amazon Web Services, y compris la possibilité de supprimer des référentiels.

La AWSCode CommitFullAccess politique contient la déclaration de politique suivante :

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

****  

```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "codecommit:*"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CloudWatchEventsCodeCommitRulesAccess",
          "Effect": "Allow",
          "Action": [
            "events:DeleteRule",
            "events:DescribeRule",
            "events:DisableRule",
            "events:EnableRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "events:ListTargetsByRule"
          ],
          "Resource": "arn:aws:events:*:*:rule/codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionAccess",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:DeleteTopic",
            "sns:Subscribe",
            "sns:Unsubscribe",
            "sns:SetTopicAttributes"
          ],
          "Resource": "arn:aws:sns:*:*:codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionReadAccess",
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "LambdaReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "lambda:ListFunctions"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyConsoleAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccessKeys",
            "iam:ListSSHPublicKeys",
            "iam:ListServiceSpecificCredentials"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMUserSSHKeys",
          "Effect": "Allow",
          "Action": [
            "iam:DeleteSSHPublicKey",
            "iam:GetSSHPublicKey",
            "iam:ListSSHPublicKeys",
            "iam:UpdateSSHPublicKey",
            "iam:UploadSSHPublicKey"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMSelfManageServiceSpecificCredentials",
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceSpecificCredential",
            "iam:UpdateServiceSpecificCredential",
            "iam:DeleteServiceSpecificCredential",
            "iam:ResetServiceSpecificCredential"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "CodeStarNotificationsReadWriteAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
          ],
          "Resource": "*",
          "Condition": {
            "ArnLike": {
              "codestar-notifications:NotificationsForResource": "arn:aws:iam::*:role/Service*"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsListAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
          ],
          "Resource": "arn:aws:sns:*:*:codestar-notifications*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerFullAccess",
          "Effect": "Allow",
          "Action": [
            "codeguru-reviewer:AssociateRepository",
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DisassociateRepository",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerSLRCreation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CloudWatchEventsManagedRules",
          "Effect": "Allow",
          "Action": [
            "events:PutRule",
            "events:PutTargets",
            "events:DeleteRule",
            "events:RemoveTargets"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsChatbotAccess",
          "Effect": "Allow",
          "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
          "Resource": "*"
        },
        {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
      ]
    }
```

------

## AWS politique gérée : AWSCode CommitPowerUser
<a name="managed-policies-poweruser"></a>

Vous pouvez associer la politique `AWSCodeCommitPowerUser` à vos identités IAM. Cette politique permet aux utilisateurs d'accéder à toutes les fonctionnalités CodeCommit et aux ressources liées au référentiel, sauf qu'elle ne les autorise pas à supprimer des CodeCommit référentiels ou à créer ou supprimer des ressources liées au référentiel dans d'autres services, tels qu'Amazon Events. AWS CloudWatch Nous vous recommandons d'appliquer cette stratégie à la plupart des utilisateurs.

La AWSCode CommitPowerUser politique contient la déclaration de politique suivante :

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

****  

```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "codecommit:AssociateApprovalRuleTemplateWithRepository",
            "codecommit:BatchAssociateApprovalRuleTemplateWithRepositories",
            "codecommit:BatchDisassociateApprovalRuleTemplateFromRepositories",
            "codecommit:BatchGet*",
            "codecommit:BatchDescribe*",
            "codecommit:Create*",
            "codecommit:DeleteBranch",
            "codecommit:DeleteFile",
            "codecommit:Describe*",
            "codecommit:DisassociateApprovalRuleTemplateFromRepository",
            "codecommit:EvaluatePullRequestApprovalRules",
            "codecommit:Get*",
            "codecommit:List*",
            "codecommit:Merge*",
            "codecommit:OverridePullRequestApprovalRules",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:TagResource",
            "codecommit:Test*",
            "codecommit:UntagResource",
            "codecommit:Update*",
            "codecommit:GitPull",
            "codecommit:GitPush"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CloudWatchEventsCodeCommitRulesAccess",
          "Effect": "Allow",
          "Action": [
            "events:DeleteRule",
            "events:DescribeRule",
            "events:DisableRule",
            "events:EnableRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "events:ListTargetsByRule"
          ],
          "Resource": "arn:aws:events:*:*:rule/codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionAccess",
          "Effect": "Allow",
          "Action": [
            "sns:Subscribe",
            "sns:Unsubscribe"
          ],
          "Resource": "arn:aws:sns:*:*:codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionReadAccess",
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "LambdaReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "lambda:ListFunctions"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyConsoleAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccessKeys",
            "iam:ListSSHPublicKeys",
            "iam:ListServiceSpecificCredentials"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMUserSSHKeys",
          "Effect": "Allow",
          "Action": [
            "iam:DeleteSSHPublicKey",
            "iam:GetSSHPublicKey",
            "iam:ListSSHPublicKeys",
            "iam:UpdateSSHPublicKey",
            "iam:UploadSSHPublicKey"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMSelfManageServiceSpecificCredentials",
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceSpecificCredential",
            "iam:UpdateServiceSpecificCredential",
            "iam:DeleteServiceSpecificCredential",
            "iam:ResetServiceSpecificCredential"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "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:iam::*:role/Service*"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsListAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerFullAccess",
          "Effect": "Allow",
          "Action": [
            "codeguru-reviewer:AssociateRepository",
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DisassociateRepository",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerSLRCreation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CloudWatchEventsManagedRules",
          "Effect": "Allow",
          "Action": [
            "events:PutRule",
            "events:PutTargets",
            "events:DeleteRule",
            "events:RemoveTargets"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsChatbotAccess",
          "Effect": "Allow",
          "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
          "Resource": "*"
        },
        {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
      ]
    }
```

------

## AWS politique gérée : AWSCode CommitReadOnly
<a name="managed-policies-read"></a>

Vous pouvez associer la politique `AWSCodeCommitReadOnly` à vos identités IAM. Cette politique accorde un accès en lecture seule aux CodeCommit ressources associées au référentiel dans d'autres AWS services, ainsi que la possibilité de créer et de gérer leurs propres CodeCommit ressources associées (telles que les informations d'identification Git et les clés SSH que les utilisateurs IAM peuvent utiliser pour accéder aux référentiels). Attribuez cette stratégie aux utilisateurs auxquels vous souhaitez accorder la possibilité de lire le contenu d'un référentiel, mais pas de le modifier.

La AWSCode CommitReadOnly politique contient la déclaration de politique suivante :

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

****  

```
    { 
       "Version":"2012-10-17",		 	 	 
       "Statement":[ 
          { 
             "Effect":"Allow",
             "Action":[ 
                "codecommit:BatchGet*",
                "codecommit:BatchDescribe*",
                "codecommit:Describe*",
                "codecommit:EvaluatePullRequestApprovalRules",
                "codecommit:Get*",
                "codecommit:List*",
                "codecommit:GitPull"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"CloudWatchEventsCodeCommitRulesReadOnlyAccess",
             "Effect":"Allow",
             "Action":[ 
                "events:DescribeRule",
                "events:ListTargetsByRule"
             ],
             "Resource":"arn:aws:events:*:*:rule/codecommit*"
          },
          { 
             "Sid":"SNSSubscriptionAccess",
             "Effect":"Allow",
             "Action":[ 
                "sns:ListTopics",
                "sns:ListSubscriptionsByTopic",
                "sns:GetTopicAttributes"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"LambdaReadOnlyListAccess",
             "Effect":"Allow",
             "Action":[ 
                "lambda:ListFunctions"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"IAMReadOnlyListAccess",
             "Effect":"Allow",
             "Action":[ 
                "iam:ListUsers"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"IAMReadOnlyConsoleAccess",
             "Effect":"Allow",
             "Action":[ 
                "iam:ListAccessKeys",
                "iam:ListSSHPublicKeys",
                "iam:ListServiceSpecificCredentials",
                "iam:GetSSHPublicKey"
             ],
             "Resource":"arn:aws:iam::*:user/${aws:username}"
          },
          { 
             "Sid":"CodeStarNotificationsReadOnlyAccess",
             "Effect":"Allow",
             "Action":[ 
                "codestar-notifications:DescribeNotificationRule"
             ],
             "Resource":"*",
             "Condition":{ 
                "ArnLike":{ 
                   "codestar-notifications:NotificationsForResource":"arn:aws:codecommit:us-east-2:111122223333:*"
                }
             }
          },
          { 
             "Sid":"CodeStarNotificationsListAccess",
             "Effect":"Allow",
             "Action":[ 
                "codestar-notifications:ListNotificationRules",
                "codestar-notifications:ListEventTypes",
                "codestar-notifications:ListTargets"
             ],
             "Resource":"*"
          },
          {
             "Sid": "AmazonCodeGuruReviewerReadOnlyAccess",
             "Effect": "Allow",
             "Action": [
                "codeguru-reviewer:DescribeRepositoryAssociation",
                "codeguru-reviewer:ListRepositoryAssociations",
                "codeguru-reviewer:DescribeCodeReview",
                "codeguru-reviewer:ListCodeReviews"
             ],
             "Resource": "*"
          },
          {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
    ]
}
```

------

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

AWS CodeCommit prend en charge les notifications, qui peuvent informer les utilisateurs des modifications importantes apportées aux référentiels. Les politiques gérées CodeCommit 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 d'accès complet
<a name="notifications-fullaccess"></a>

La stratégie gérée `AWSCodeCommitFullAccess` inclut les déclarations suivantes pour permettre un accès complet aux notifications. Les utilisateurs auxquels cette politique gérée est appliquée peuvent également créer et gérer des sujets Amazon SNS pour les notifications, abonner et désinscrire des utilisateurs à des sujets, répertorier les sujets à choisir comme cibles pour les règles de notification et répertorier Amazon Q Developer dans les applications de chat clientes configurées pour Slack.

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource,"
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
        "Effect": "Allow",
        "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
        ],
        "Resource": "arn:aws:sns:*:*:codestar-notifications*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

### 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 `AWSCodeCommitReadOnlyAccess` 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" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit:*"} 
        }
    },    
    {
        "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 `AWSCodeCommitPowerUser` 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:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit*"} 
        }
    },    
    {
        "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, consultez [Identity and Access Management for AWS CodeStar Notifications](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

## AWS CodeCommit politiques gérées et Amazon CodeGuru Reviewer
<a name="codeguru-permissions"></a>

CodeCommit prend en charge Amazon CodeGuru Reviewer, un service de révision de code automatique qui utilise l'analyse de programmes et l'apprentissage automatique pour détecter les problèmes courants et recommander des correctifs dans votre code Java ou Python. Politiques gérées pour CodeCommit inclure des déclarations de politique pour la fonctionnalité CodeGuru Reviewer. Pour plus d'informations, consultez [What Is Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html).

### Autorisations liées au CodeGuru réviseur dans AWSCode CommitFullAccess
<a name="codeguru-fullaccess"></a>

La politique `AWSCodeCommitFullAccess` gérée inclut les instructions suivantes pour permettre à CodeGuru Reviewer d'être associé et dissocié des CodeCommit référentiels. Les utilisateurs auxquels cette politique gérée est appliquée peuvent également consulter l'état de l'association entre les CodeCommit référentiels et CodeGuru Reviewer et consulter l'état des tâches de révision pour les pull requests.

```
    {
      "Sid": "AmazonCodeGuruReviewerFullAccess",
      "Effect": "Allow",
      "Action": [
        "codeguru-reviewer:AssociateRepository",
        "codeguru-reviewer:DescribeRepositoryAssociation",
        "codeguru-reviewer:ListRepositoryAssociations",
        "codeguru-reviewer:DisassociateRepository",
        "codeguru-reviewer:DescribeCodeReview",
        "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonCodeGuruReviewerSLRCreation",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchEventsManagedRules",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "events:DeleteRule",
        "events:RemoveTargets"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
        }
      }
    }
```

### Autorisations liées au CodeGuru réviseur dans AWSCode CommitPowerUser
<a name="codeguru-poweruser"></a>

La politique `AWSCodeCommitPowerUser` gérée inclut les instructions suivantes pour permettre aux utilisateurs d'associer et de dissocier les référentiels à CodeGuru Reviewer, de consulter le statut de l'association et de consulter le statut des tâches de révision pour les pull requests.

```
    {
      "Sid": "AmazonCodeGuruReviewerFullAccess",
      "Effect": "Allow",
      "Action": [
        "codeguru-reviewer:AssociateRepository",
        "codeguru-reviewer:DescribeRepositoryAssociation",
        "codeguru-reviewer:ListRepositoryAssociations",
        "codeguru-reviewer:DisassociateRepository",
        "codeguru-reviewer:DescribeCodeReview",
        "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonCodeGuruReviewerSLRCreation",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchEventsManagedRules",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "events:DeleteRule",
        "events:RemoveTargets"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
        }
      }
    }
```

### Autorisations liées au CodeGuru réviseur dans AWSCode CommitReadOnly
<a name="codeguru-readonly"></a>

La politique `AWSCodeCommitReadOnlyAccess` gérée inclut les instructions suivantes pour autoriser l'accès en lecture seule au statut d'association des CodeGuru réviseurs et pour afficher le statut des tâches de révision pour les pull requests. Les utilisateurs pour lesquels cette stratégie gérée est appliquée ne peuvent pas associer ou dissocier des référentiels. 

```
     {
      "Sid": "AmazonCodeGuruReviewerReadOnlyAccess",
      "Effect": "Allow",
      "Action": [
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    }
```

### Rôle lié au service Amazon CodeGuru Reviewer
<a name="codeguru-slr"></a>

Lorsque vous associez un dépôt à CodeGuru Reviewer, un rôle lié à un service est créé afin que CodeGuru Reviewer puisse détecter les problèmes et recommander des correctifs pour le code Java ou Python dans les pull requests. Le rôle lié à un service se nomme AWSServiceRoleForAmazonCodeGuruReviewer. Pour plus d'informations, consultez la section [Utilisation des rôles liés à un service pour Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/using-service-linked-roles.html).

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

## CodeCommit 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 CodeCommit 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 CodeCommit Historique du document du guide de l'utilisateur](history.md).




| Modifier | Description | Date | 
| --- | --- | --- | 
|  [AWS politique gérée : AWSCode CommitFullAccess](#managed-policies-full)et [AWS politique gérée : AWSCode CommitPowerUser](#managed-policies-poweruser) — Mise à jour des politiques existantes  |  CodeCommit 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 AWSCode CommitFullAccess politiques AWSCode CommitPowerUser et ont été modifiées pour ajouter une autorisation,`chatbot:ListMicrosoftTeamsChannelConfigurations`.  | 16 mai 2023 | 
|  [AWS politique gérée : AWSCode CommitReadOnly](#managed-policies-read) : mise à jour d’une politique existante  |  CodeCommit a supprimé une autorisation dupliquée de la politique. Le AWSCode CommitReadOnly a été modifié pour supprimer une autorisation dupliquée,`"iam:ListAccessKeys"`.  | 18 août 2021 | 
|  CodeCommit a commencé à suivre les modifications  |  CodeCommit a commencé à suivre les modifications apportées AWS à ses politiques gérées.  | 18 août 2021 | 

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

Vous pouvez créer vos propres politiques IAM personnalisées pour autoriser les CodeCommit actions et les ressources. Vous pouvez attacher ces politiques personnalisées aux utilisateurs ou groupes IAM qui nécessitent ces autorisations. Vous pouvez également créer vos propres politiques IAM personnalisées pour l'intégration entre les services CodeCommit et d'autres AWS services.

**Topics**
+ [Exemples de politiques d'identité gérées par le client](#customer-managed-policies-identity)

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

Les exemples de politiques IAM suivants accordent des autorisations pour diverses CodeCommit actions. Utilisez-les pour limiter CodeCommit l'accès à vos utilisateurs et rôles IAM. Ces politiques contrôlent la capacité à effectuer des actions avec la CodeCommit console AWS SDKs, l'API ou le AWS CLI.



**Note**  
Tous les exemples utilisent la région de l'Ouest des États-Unis (Oregon) (us-west-2) et contiennent un récit fictif. IDs

 **Exemples**
+ [Exemple 1 : Autoriser un utilisateur à effectuer des CodeCommit opérations en une seule fois Région AWS](#identity-based-policies-example-1)
+ [Exemple 2 : autoriser un utilisateur à utiliser Git pour un seul dépôt](#identity-based-policies-example-2)
+ [Exemple 3 : autoriser un utilisateur se connectant à partir d'une plage d'adresses IP spécifiée à accéder à un référentiel](#identity-based-policies-example-3)
+ [Exemple 4 : refuser ou autoriser des actions sur les branches](#identity-based-policies-example-4)
+ [Exemple 5 : refuser ou autoriser des actions sur des référentiels contenant des balises](#identity-based-policies-example-5)

### Exemple 1 : Autoriser un utilisateur à effectuer des CodeCommit opérations en une seule fois Région AWS
<a name="identity-based-policies-example-1"></a>

La politique d'autorisation suivante utilise un caractère générique (`"codecommit:*"`) pour permettre aux utilisateurs d'effectuer toutes les CodeCommit actions dans la région us-east-2 et non depuis une autre région. Régions AWS

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "codecommit:*",
            "Resource": "arn:aws:codecommit:us-east-2:111111111111:*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-east-2"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "codecommit:ListRepositories",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-east-2"
                }
            }
        }
    ]
}
```

------

### Exemple 2 : autoriser un utilisateur à utiliser Git pour un seul dépôt
<a name="identity-based-policies-example-2"></a>

Dans CodeCommit, les autorisations de la politique `GitPull` IAM s'appliquent à toutes les commandes du client Git depuis lesquelles les données sont extraites CodeCommit **git fetch****git clone**, y compris, etc. De même, les autorisations de la politique `GitPush` IAM s'appliquent à toutes les commandes du client Git auxquelles les données sont envoyées CodeCommit. Par exemple, si l'autorisation de politique `GitPush` IAM est définie sur`Allow`, un utilisateur peut demander la suppression d'une branche à l'aide du protocole Git. Ce push n'est pas affecté par les autorisations appliquées à l'`DeleteBranch`opération pour cet utilisateur IAM. L'`DeleteBranch`autorisation s'applique aux actions effectuées avec la console, le AWS CLI SDKs, et l'API, mais pas avec le protocole Git. 

L'exemple suivant permet à l'utilisateur spécifié d'extraire du CodeCommit référentiel nommé et de le transférer vers celui-ci `MyDemoRepo` :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:GitPull",
        "codecommit:GitPush"
      ],
      "Resource" : "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo"
    }
  ]
}
```

------

### Exemple 3 : autoriser un utilisateur se connectant à partir d'une plage d'adresses IP spécifiée à accéder à un référentiel
<a name="identity-based-policies-example-3"></a>

Vous pouvez créer une stratégie qui permet uniquement aux utilisateurs de se connecter à un référentiel CodeCommit si leur adresse IP se trouve dans une plage d'adresses IP spécifique. Il existe deux approches également valables. Vous pouvez créer une `Deny` politique qui interdit les CodeCommit opérations si l'adresse IP de l'utilisateur ne se trouve pas dans un bloc spécifique, ou vous pouvez créer une `Allow` politique qui autorise les CodeCommit opérations si l'adresse IP de l'utilisateur se trouve dans un bloc spécifique.

Vous pouvez créer une stratégie `Deny` qui refuse l'accès à tous les utilisateurs qui ne font pas partie d'une plage d'adresses IP spécifique. Par exemple, vous pouvez attacher la stratégie gérée AWSCodeCommitPowerUser et une stratégie gérée par le client à tous les utilisateurs qui ont besoin d'accéder à votre référentiel. L'exemple de politique suivant refuse toutes les CodeCommit autorisations aux utilisateurs dont les adresses IP ne se trouvent pas dans le bloc d'adresses IP 203.0.113.0/16 spécifié :

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Deny",
         "Action": [
            "codecommit:*"
         ],
         "Resource": "*",
         "Condition": {
            "NotIpAddress": {
               "aws:SourceIp": [
                  "203.0.113.0/16"
               ]
            }
         }
      }
   ]
}
```

------

L'exemple de politique suivant permet à l'utilisateur spécifié d'accéder à un CodeCommit référentiel nommé MyDemoRepo avec les autorisations équivalentes à celles de la politique AWSCode CommitPowerUser gérée uniquement si son adresse IP se trouve dans le bloc d'adresses spécifié 203.0.113.0/16 :

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codecommit:BatchGetRepositories",
            "codecommit:CreateBranch",
            "codecommit:CreateRepository",
            "codecommit:Get*",
            "codecommit:GitPull",
            "codecommit:GitPush",
            "codecommit:List*",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:Merge*",
            "codecommit:TagResource",
            "codecommit:Test*",
            "codecommit:UntagResource",
            "codecommit:Update*"
         ],
         "Resource": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo",
         "Condition": {
            "IpAddress": {
               "aws:SourceIp": [
                  "203.0.113.0/16"
               ]
            }
         }
      }
   ]
}
```

------



### Exemple 4 : refuser ou autoriser des actions sur les branches
<a name="identity-based-policies-example-4"></a>

Vous pouvez créer une stratégie qui refuse aux utilisateurs les autorisations pour les actions que vous spécifiez sur une ou plusieurs branches. Sinon, vous pouvez créer une stratégie qui autorise des actions sur une ou plusieurs branches qui n'auraient pas été possibles dans d'autres branches d'un référentiel. Vous pouvez utiliser ces stratégies avec les stratégies gérées appropriées (prédéfinies). Pour de plus amples informations, veuillez consulter [Limitez les pushs et les fusions vers les succursales de AWS CodeCommit](how-to-conditional-branch.md).

Par exemple, vous pouvez créer une `Deny` politique qui empêche les utilisateurs d'apporter des modifications à une branche nommée main, y compris de supprimer cette branche, dans un référentiel nommé*MyDemoRepo*. Vous pouvez utiliser cette stratégie avec la stratégie gérée **AWSCodeCommitPowerUser**. Les utilisateurs auxquels ces deux politiques sont appliquées pourraient créer et supprimer des branches, créer des pull requests et effectuer toutes les autres actions autorisées **AWSCodeCommitPowerUser**, mais ils ne seraient pas en mesure d'apporter des modifications à la branche nommée *main*, d'ajouter ou de modifier un fichier dans la branche *principale* de la CodeCommit console, ni de fusionner des branches ou une pull request dans la branche *principale*. Comme `Deny` est appliqué à `GitPush`, vous devez inclure une instruction `Null` dans la stratégie, afin d'autoriser l'analyse de validité des appels `GitPush` initiaux lorsque les utilisateurs effectuent des transmissions à partir de leurs référentiels locaux.

**Astuce**  
Si vous souhaitez créer une politique qui s'applique à toutes les branches nommées *main* dans tous les référentiels de votre compte Amazon Web Services`Resource`, spécifiez un astérisque (`*`) au lieu d'un ARN de référentiel.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "codecommit:GitPush",
                "codecommit:DeleteBranch",
                "codecommit:PutFile",
                "codecommit:Merge*"
            ],
            "Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main"   
                    ]
                },
                "Null": {
                    "codecommit:References": "false"
                }
            }
        }
    ]
}
```

------

L'exemple de politique suivant permet à un utilisateur d'apporter des modifications à une branche nommée main dans tous les référentiels d'un compte Amazon Web Services. Il ne permet pas de modifier d'autres branches. Vous pouvez utiliser cette politique avec la politique AWSCode CommitReadOnly gérée pour autoriser les transferts automatisés vers le référentiel de la branche principale. Comme Effect a la valeur `Allow`, cet exemple de stratégie ne fonctionne pas avec les stratégies gérées comme AWSCodeCommitPowerUser.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:GitPush",
                "codecommit:Merge*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main"
                    ]
                }
            }
        }
    ]
}
```

------



### Exemple 5 : refuser ou autoriser des actions sur des référentiels contenant des balises
<a name="identity-based-policies-example-5"></a>

Vous pouvez créer une politique qui autorise ou refuse les actions sur les référentiels en fonction des AWS balises associées à ces référentiels, puis appliquer ces politiques aux groupes IAM que vous configurez pour gérer les utilisateurs IAM. Par exemple, vous pouvez créer une politique qui refuse toute CodeCommit action sur les référentiels dotés de la clé de AWS balise *Status* et de la valeur clé *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 référentiels 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 CodeCommit actions sur les référentiels marqués avec la clé *Status* et la valeur clé *Secret* :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codecommit:Associate*",
        "codecommit:Batch*",
        "codecommit:CancelUploadArchive",
        "codecommit:CreateBranch",
        "codecommit:CreateCommit",
        "codecommit:CreatePullRequest*",
        "codecommit:CreateRepository",
        "codecommit:CreateUnreferencedMergeCommit",
        "codecommit:DeleteBranch",
        "codecommit:DeleteCommentContent",
        "codecommit:DeleteFile",
        "codecommit:DeletePullRequest*",
        "codecommit:DeleteRepository",
        "codecommit:Describe*",
        "codecommit:DisassociateApprovalRuleTemplateFromRepository",
        "codecommit:EvaluatePullRequestApprovalRules",
        "codecommit:GetBlob",
        "codecommit:GetBranch",
        "codecommit:GetComment*",
        "codecommit:GetCommit",
        "codecommit:GetDifferences*",
        "codecommit:GetFile",
        "codecommit:GetFolder",
        "codecommit:GetMerge*",
        "codecommit:GetObjectIdentifier",
        "codecommit:GetPullRequest*",
        "codecommit:GetReferences",
        "codecommit:GetRepository*",
        "codecommit:GetTree",
        "codecommit:GetUploadArchiveStatus",
        "codecommit:Git*",
        "codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
        "codecommit:ListBranches",
        "codecommit:ListPullRequests",
        "codecommit:ListTagsForResource",
        "codecommit:Merge*",
        "codecommit:OverridePullRequestApprovalRules",
        "codecommit:Post*",
        "codecommit:Put*",
        "codecommit:TagResource",
        "codecommit:TestRepositoryTriggers",
        "codecommit:UntagResource",
        "codecommit:UpdateComment",
        "codecommit:UpdateDefaultBranch",
        "codecommit:UpdatePullRequest*",
        "codecommit:UpdateRepository*",
        "codecommit:UploadArchive"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Status": "Secret"
        }
      }
    }
  ]
}
```

------

Vous pouvez affiner davantage cette stratégie en spécifiant des référentiels spécifiques, plutôt que tous les référentiels, en tant que ressources. Vous pouvez également créer des politiques qui autorisent CodeCommit des actions sur tous les référentiels qui ne sont pas marqués par des balises spécifiques. Par exemple, la politique suivante autorise l'équivalent d'**AWSCodeCommitPowerUser**autorisations pour les CodeCommit actions, sauf qu'elle autorise uniquement les CodeCommit actions sur les référentiels non balisés avec les balises spécifiées :

**Note**  
Cet exemple de stratégie inclut uniquement les actions pour CodeCommit. Il n'inclut pas les actions relatives AWS aux autres services inclus dans la politique **AWSCodeCommitPowerUser**gérée. Pour plus d'informations, consultez. [AWS politique gérée : AWSCode CommitPowerUser](security-iam-awsmanpol.md#managed-policies-poweruser).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:Associate*",
        "codecommit:Batch*",
        "codecommit:CancelUploadArchive",
        "codecommit:CreateBranch",
        "codecommit:CreateCommit",
        "codecommit:CreatePullRequest*",
        "codecommit:CreateRepository",
        "codecommit:CreateUnreferencedMergeCommit",
        "codecommit:DeleteBranch",
        "codecommit:DeleteCommentContent",
        "codecommit:DeleteFile",
        "codecommit:DeletePullRequest*",
        "codecommit:Describe*",
        "codecommit:DisassociateApprovalRuleTemplateFromRepository",
        "codecommit:EvaluatePullRequestApprovalRules",
        "codecommit:GetBlob",
        "codecommit:GetBranch",
        "codecommit:GetComment*",
        "codecommit:GetCommit",
        "codecommit:GetDifferences*",
        "codecommit:GetFile",
        "codecommit:GetFolder",
        "codecommit:GetMerge*",
        "codecommit:GetObjectIdentifier",
        "codecommit:GetPullRequest*",
        "codecommit:GetReferences",
        "codecommit:GetRepository*",
        "codecommit:GetTree",
        "codecommit:GetUploadArchiveStatus",
        "codecommit:Git*",
        "codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
        "codecommit:ListBranches",
        "codecommit:ListPullRequests",
        "codecommit:ListTagsForResource",
        "codecommit:Merge*",
        "codecommit:OverridePullRequestApprovalRules",
        "codecommit:Post*",
        "codecommit:Put*",
        "codecommit:TagResource",
        "codecommit:TestRepositoryTriggers",
        "codecommit:UntagResource",
        "codecommit:UpdateComment",
        "codecommit:UpdateDefaultBranch",
        "codecommit:UpdatePullRequest*",
        "codecommit:UpdateRepository*",
        "codecommit:UploadArchive"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/Status": "Secret",
          "aws:ResourceTag/Team": "Saanvi"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:CreateApprovalRuleTemplate",
        "codecommit:GetApprovalRuleTemplate",
        "codecommit:ListApprovalRuleTemplates",
        "codecommit:ListRepositories",
        "codecommit:ListRepositoriesForApprovalRuleTemplate",
        "codecommit:UpdateApprovalRuleTemplateContent",
        "codecommit:UpdateApprovalRuleTemplateDescription",
        "codecommit:UpdateApprovalRuleTemplateName"
      ],
      "Resource": "*"
    }
  ]
}
```

------

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

Les tableaux suivants répertorient chaque opération d' CodeCommit API, les actions correspondantes pour lesquelles vous pouvez accorder des autorisations et le format de l'ARN de la ressource à utiliser pour accorder des autorisations. Ils CodeCommit APIs sont regroupés dans des tableaux en fonction de l'étendue des actions autorisées par cette API. Reportez-vous à ce document lorsque vous configurez [Contrôle d’accès](auth-and-access-control.md#access-control) et rédigez des politiques d'autorisation que vous pouvez associer à une identité IAM (politiques basées sur l'identité). 

Lorsque vous créez une stratégie d'autorisation, vous spécifiez les actions dans le champ `Action` de la stratégie. 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. 

Pour exprimer des conditions dans vos CodeCommit politiques, utilisez des AWS touches de condition larges. Pour obtenir la liste complète des touches AWS-wide, 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*. Pour obtenir des informations complètes sur les actions, les ressources et les clés de condition pour CodeCommit les politiques IAM, consultez la section [Actions, ressources et clés de condition pour AWS CodeCommit](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodecommit.html). 

**Note**  
Pour spécifier une action, utilisez le préfixe `codecommit:` suivi du nom de l'opération d'API (par exemple, `codecommit:GetRepository` ou `codecommit:CreateRepository`). 

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

Pour spécifier plusieurs actions ou ressources, vous pouvez utiliser un caractère générique (\$1) dans votre ARN. Par exemple, `codecommit:*` spécifie toutes les CodeCommit actions et `codecommit:Get*` indique toutes les CodeCommit actions qui commencent par le mot`Get`. L'exemple suivant accorde l'accès à tous les référentiels dont le nom commence par `MyDemo`. 

```
arn:aws:codecommit:us-west-2:111111111111:MyDemo*
```

Vous ne pouvez utiliser des caractères génériques qu'avec les *repository-name* ressources répertoriées dans le tableau suivant. Vous ne pouvez pas utiliser de caractères génériques avec *region* nos *account-id* ressources. Pour plus d'informations sur les caractères génériques, consultez la section [Identifiants IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) dans le guide de l'utilisateur *IAM*. 



**Topics**
+ [Autorisations requises pour les commandes du client Git](#aa-git)
+ [Autorisations pour les actions sur les succursales](#aa-branches)
+ [Autorisations pour les actions relatives aux fusions](#aa-merges)
+ [Autorisations pour les actions sur les pull requests](#aa-pr)
+ [Autorisations pour les actions sur les modèles de règles d'approbation](#aa-art)
+ [Autorisations pour les actions sur des fichiers individuels](#aa-files)
+ [Autorisations pour les actions sur les commentaires](#aa-comments)
+ [Autorisations pour les actions sur le code validé](#aa-code)
+ [Autorisations pour les actions sur les référentiels](#aa-repositories)
+ [Autorisations pour les actions sur les tags](#aa-tags)
+ [Autorisations pour les actions sur les déclencheurs](#aa-triggers)
+ [Autorisations pour les actions relatives à CodePipeline l'intégration](#aa-acp)

## Autorisations requises pour les commandes du client Git
<a name="aa-git"></a>

Dans CodeCommit, les autorisations de la politique `GitPull` IAM s'appliquent à toutes les commandes du client Git depuis lesquelles les données sont extraites CodeCommit **git fetch****git clone**, y compris, etc. De même, les autorisations de la politique `GitPush` IAM s'appliquent à toutes les commandes du client Git auxquelles les données sont envoyées CodeCommit. Par exemple, si l'autorisation de politique `GitPush` IAM est définie sur`Allow`, un utilisateur peut demander la suppression d'une branche à l'aide du protocole Git. Ce push n'est pas affecté par les autorisations appliquées à l'`DeleteBranch`opération pour cet utilisateur IAM. L'`DeleteBranch`autorisation s'applique aux actions effectuées avec la console, le AWS CLI SDKs, et l'API, mais pas avec le protocole Git. 

`GitPull`et `GitPush` sont des autorisations de politique IAM. Ce ne sont pas des actions d'API.

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Autorisations requises pour les actions relatives aux commandes du client Git**  

| CodeCommit Autorisations pour Git | Autorisations nécessaires  | Ressources | 
| --- | --- | --- | 
|  GitPull  |  `codecommit:GitPull` Nécessaire pour extraire des informations d'un CodeCommit référentiel vers un dépôt local. Il s'agit d'une autorisation de stratégie IAM uniquement, pas d'une action d'API.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  GitPush  |  `codecommit:GitPush` Autorisation requise pour transférer des informations d'un référentiel local vers un référentiel CodeCommit. Il s'agit d'une autorisation de stratégie IAM uniquement, pas d'une action d'API.  Si vous créez une stratégie qui inclut une clé de contexte et une instruction `Deny` qui inclut cette autorisation, vous devez également inclure un contexte `Null`. Pour de plus amples informations, veuillez consulter [Limitez les pushs et les fusions vers les succursales de AWS CodeCommit](how-to-conditional-branch.md).   |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions sur les succursales
<a name="aa-branches"></a>

Les autorisations suivantes autorisent ou interdisent les actions sur les branches des CodeCommit référentiels. Ces autorisations concernent uniquement les actions effectuées dans la CodeCommit console et avec l' CodeCommit API, ainsi que les commandes exécutées à l'aide du AWS CLI. Elles ne concernent pas les actions similaires qui peuvent être effectuées à l'aide du protocole Git. Par exemple, la commande **git show-branch -r** affiche une liste des branches distantes pour un référentiel et ses validations à l'aide du protocole Git. Il n'est affecté par aucune autorisation pour l' CodeCommit `ListBranches`opération. 

Pour plus d'informations sur les politiques applicables aux succursales, consultez [Limitez les pushs et les fusions vers les succursales de AWS CodeCommit](how-to-conditional-branch.md) et[Exemples de politiques gérées par le client](customer-managed-policies.md).

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions sur les branches**  

| CodeCommit Opérations d'API pour les succursales | Autorisations requises (Action d’API) | Ressources | 
| --- | --- | --- | 
|  [CreateBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateBranch.html)  |  `codecommit:CreateBranch` Nécessaire pour créer une branche dans un CodeCommit référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [DeleteBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteBranch.html)  |  `codecommit:DeleteBranch` Nécessaire pour supprimer une branche d'un CodeCommit dépôt.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBranch.html)  |  `codecommit:GetBranch` Autorisation requise pour obtenir les détails relatifs à une branche dans un référentiel CodeCommit.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [ListBranches](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListBranches.html) |  `codecommit:ListBranches` Autorisation requise pour obtenir une liste de branches dans un référentiel CodeCommit.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [MergeBranchesByFastForward](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesByFastForward.html) |  `codecommit:MergeBranchesByFastForward` Nécessaire pour fusionner deux branches à l'aide de la stratégie de fusion rapide dans un CodeCommit référentiel.  | arn:aws:codecommit : : region account-id repository-name | 
| [MergeBranchesBySquash](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesBySquash.html) |  `codecommit:MergeBranchesBySquash` Nécessaire pour fusionner deux branches à l'aide de la stratégie de fusion Squash dans un CodeCommit référentiel.  | arn:aws:codecommit : : region account-id repository-name | 
| [MergeBranchesByThreeWay](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesByThreeWay.html) |  `codecommit:MergeBranchesByThreeWay` Nécessaire pour fusionner deux branches à l'aide de la stratégie de fusion à trois voies dans un CodeCommit référentiel.  | arn:aws:codecommit : : region account-id repository-name | 
| [UpdateDefaultBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateDefaultBranch.html) | codecommit:UpdateDefaultBranchNécessaire pour modifier la branche par défaut dans un CodeCommit référentiel. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions relatives aux fusions
<a name="aa-merges"></a>

Les autorisations suivantes autorisent ou interdisent des actions lors de fusions dans des CodeCommit référentiels. Ces autorisations concernent les actions effectuées avec la CodeCommit console et l' CodeCommitAPI, ainsi que les commandes exécutées à l'aide du AWS CLI. Elles ne concernent pas les actions similaires qui peuvent être effectuées à l'aide du protocole Git. Pour plus d’informations sur les autorisations connexes sur les branches, consultez [Autorisations pour les actions sur les succursales](#aa-branches). Pour plus d’informations sur les autorisations connexes sur les demandes d'extraction, consultez [Autorisations pour les actions sur les pull requests](#aa-pr).

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Autorisations requises pour les actions relatives aux commandes de fusion**  

| CodeCommit Autorisations pour les fusions | Autorisations nécessaires  | Ressources | 
| --- | --- | --- | 
|  [BatchDescribeMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchDescribeMergeConflicts.html)  |  `codecommit:BatchDescribeMergeConflicts` Obligatoire pour renvoyer des informations sur les conflits lors d'une fusion entre des validations dans un CodeCommit référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [CreateUnreferencedMergeCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateUnreferencedMergeCommit.html)  |  `codecommit:CreateUnreferencedMergeCommit` Nécessaire pour créer un commit non référencé entre deux branches ou des validations dans un CodeCommit référentiel dans le but de les comparer et d'identifier les conflits potentiels.   |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [DescribeMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DescribeMergeConflicts.html)  |  `codecommit:DescribeMergeConflicts` Obligatoire pour renvoyer des informations sur les conflits de fusion entre les versions de base, source et destination d'un fichier lors d'une fusion potentielle dans un CodeCommit référentiel.   |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetMergeCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeCommit.html)  |  `codecommit:GetMergeCommit` Obligatoire pour renvoyer des informations sur la fusion entre un commit source et un commit de destination dans un CodeCommit référentiel.   |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetMergeOptions](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeOptions.html)  |  `codecommit:GetMergeOptions` Autorisation requise pour renvoyer des informations sur les options de fusion disponibles entre deux branches ou spécificateurs de validation dans un référentiel CodeCommit.   |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions sur les pull requests
<a name="aa-pr"></a>

Les autorisations suivantes autorisent ou refusent des actions au niveau des demandes d'extraction dans les référentiels CodeCommit. Ces autorisations concernent les actions effectuées avec la CodeCommit console et l' CodeCommit API, ainsi que les commandes exécutées à l'aide du AWS CLI. Elles ne concernent pas les actions similaires qui peuvent être effectuées à l'aide du protocole Git. Pour voir les autorisations connexes pour les commentaires, consultez [Autorisations pour les actions sur les commentaires](#aa-comments).

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions sur les pull requests**  

| CodeCommit Opérations d'API | Autorisations requises (Action d’API) | Ressources | 
| --- | --- | --- | 
|  BatchGetPullRequests  |  `codecommit:BatchGetPullRequests` Obligatoire pour renvoyer des informations sur une ou plusieurs pull requests dans un CodeCommit référentiel. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [CreatePullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreatePullRequest.html)  |  `codecommit:CreatePullRequest` Autorisation requise pour créer une demande d'extraction dans un référentiel CodeCommit.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [CreatePullRequestApprovalRule](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreatePullRequestApprovalRule.html) |  `codecommit:CreatePullRequestApprovalRule` Autorisation requise pour créer une règle d'approbation pour une demande d'extraction dans un référentiel CodeCommit .  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [DeletePullRequestApprovalRule](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeletePullRequestApprovalRule.html) |  `codecommit:DeletePullRequestApprovalRule` Autorisation requise pour supprimer une règle d'approbation pour une demande d'extraction dans un référentiel CodeCommit .  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [DescribePullRequestEvents](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DescribePullRequestEvents.html) | Obligatoire pour renvoyer des informations sur un ou plusieurs événements de pull request dans un CodeCommit référentiel. | arn:aws:codecommit : : region account-id repository-name | 
| [EvaluatePullRequestApprovalRules](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_EvaluatePullRequestApprovalRules.html) |  `codecommit:EvaluatePullRequestApprovalRules` Autorisation requise pour évaluer si une demande d'extraction a satisfait toutes les conditions spécifiées dans ses règles d'approbation associées dans un référentiel CodeCommit.   |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetCommentsForPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentsForPullRequest.html)  |  `codecommit:GetCommentsForPullRequest` Autorisation requise pour renvoyer des commentaires effectués sur une demande d'extraction.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| GetCommitsFromMergeBase |  `codecommit:GetCommitsFromMergeBase` Autorisation requise pour renvoyer des informations sur la différence entre les validations dans le contexte d'une fusion potentielle. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [GetMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeConflicts.html) |  `codecommit:GetMergeConflicts` Obligatoire pour renvoyer des informations sur les conflits de fusion entre la branche source et la branche de destination dans une pull request.  | arn:aws:codecommit : : region account-id repository-name | 
|  [GetPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequest.html)  |  `codecommit:GetPullRequest` Autorisation requise pour renvoyer des informations sur une demande d'extraction.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetPullRequestApprovalStates](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequestApprovalStates.html)  |  `codecommit:GetPullRequestApprovalStates` Autorisation requise pour renvoyer des informations sur les états d'approbation d'une demande d'extraction spécifiée.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetPullRequestOverrideState](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequestOverrideState.html)  |  `codecommit:GetPullRequestOverrideState` Obligatoire pour renvoyer des informations indiquant si les règles d'approbation ont été annulées (annulées) pour une pull request, et dans l'affirmative, le nom de ressource Amazon (ARN) de l'utilisateur ou l'identité qui ont préséance sur les règles et leurs exigences pour la pull request.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [ListPullRequests](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListPullRequests.html) |  `codecommit:ListPullRequests` Autorisation requise pour renvoyer des informations sur les demandes d'extraction d'un référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [MergePullRequestByFastForward](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestByFastForward.html) | codecommit:MergePullRequestByFastForwardAutorisation requise pour fermer une demande d'extraction et tenter de fusionner la branche source en tant que branche de destination d'une demande d'extraction à l'aide de la stratégie de fusion rapide. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [MergePullRequestBySquash](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestBySquash.html) | codecommit:MergePullRequestBySquashAutorisation requise pour fermer une demande d'extraction et tenter de fusionner la branche source en tant que branche de destination d'une demande d'extraction à l'aide de la stratégie de fusion par écrasement. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [MergePullRequestByThreeWay](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestByThreeWay.html) | codecommit:MergePullRequestByThreeWayAutorisation requise pour fermer une demande d'extraction et tenter de fusionner la branche source en tant que branche de destination d'une demande d'extraction à l'aide de la stratégie de fusion tripartite. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [OverridePullRequestApprovalRules](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_OverridePullRequestApprovalRules.html) | codecommit:OverridePullRequestApprovalRules Nécessaire pour mettre de côté toutes les exigences relatives aux règles d'approbation pour une pull request dans un CodeCommit référentiel. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [PostCommentForPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentForPullRequest.html) | codecommit:PostCommentForPullRequest Autorisation requise pour publier un commentaire sur une demande d'extraction dans un référentiel CodeCommit. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [UpdatePullRequestApprovalRuleContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestApprovalRuleContent.html) | codecommit:UpdatePullRequestApprovalRuleContent Nécessaire pour modifier la structure d'une règle d'approbation pour une pull request dans un CodeCommit référentiel. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [UpdatePullRequestApprovalState](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestApprovalState.html) | codecommit:UpdatePullRequestApprovalState Nécessaire pour modifier l'état d'une approbation sur une pull request dans un CodeCommit référentiel. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [UpdatePullRequestDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestDescription.html) | codecommit:UpdatePullRequestDescription Autorisation requise pour modifier la description d'une demande d'extraction dans un référentiel CodeCommit . |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [UpdatePullRequestStatus](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestStatus.html) | codecommit:UpdatePullRequestStatus Autorisation requise pour modifier le statut d'une demande d'extraction dans un référentiel CodeCommit. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [UpdatePullRequestTitle](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestTitle.html) | codecommit:UpdatePullRequestTitle Autorisation requise pour modifier le titre d'une demande d'extraction dans un référentiel CodeCommit. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions sur les modèles de règles d'approbation
<a name="aa-art"></a>

Les autorisations suivantes autorisent ou interdisent les actions sur les modèles de règles d'approbation dans les référentiels CodeCommit . Ces autorisations concernent uniquement les actions effectuées dans la CodeCommit console, l' CodeCommit API et les commandes exécutées à l'aide du AWS CLI. Elles ne concernent pas les actions similaires qui peuvent être effectuées à l'aide du protocole Git. Pour plus d’informations sur les autorisations connexes sur les demandes d'extraction, consultez [Autorisations pour les actions sur les pull requests](#aa-pr).

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions sur les modèles de règles d'approbation**  

| CodeCommit Opérations d'API pour les modèles de règles d'approbation | Autorisations nécessaires  | Ressources | 
| --- | --- | --- | 
|  [AssociateApprovalRuleTemplateWithRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_AssociateApprovalRuleTemplateWithRepository.html)  |  `codecommit:AssociateApprovalRuleTemplateWithRepository` Nécessaire pour associer un modèle à un référentiel spécifié dans un compte Amazon Web Services. Une fois le modèle associé, cette opération crée automatiquement des règles d'approbation qui correspondent aux conditions du modèle pour chaque demande d'extraction créée dans le référentiel spécifié.  |  \$1  | 
|  [BatchAssociateApprovalRuleTemplateWithRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchAssociateApprovalRuleTemplateWithRepositories.html)  |  `codecommit:BatchAssociateApprovalRuleTemplateWithRepositories` Nécessaire pour associer un modèle à un ou plusieurs référentiels spécifiés dans un compte Amazon Web Services.  |  \$1  | 
|  [BatchDisassociateApprovalRuleTemplateFromRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchDisassociateApprovalRuleTemplateFromRepositories.html)  |  `codecommit:BatchDisassociateApprovalRuleTemplateFromRepositories` Nécessaire pour dissocier un modèle d'un ou de plusieurs référentiels spécifiés dans un compte Amazon Web Services.  |  \$1  | 
|  [CreateApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateApprovalRuleTemplate.html)  |  `codecommit:CreateApprovalRuleTemplate` Autorisation requise pour créer un modèle de règles d'approbation qui peut ensuite être associé à un ou plusieurs référentiels de votre compte AWS .  |  \$1  | 
|  [DeleteApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteApprovalRuleTemplate.html)  |  `codecommit:DeleteApprovalRuleTemplate` Nécessaire pour supprimer le modèle spécifié dans un compte Amazon Web Services. Cela ne supprime pas les règles d'approbation sur les demandes d'extraction déjà créées avec le modèle.   |  \$1  | 
|  [DisassociateApprovalRuleTemplateFromRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DisassociateApprovalRuleTemplateFromRepository.html)  |  `codecommit:DisassociateApprovalRuleTemplateFromRepository` Nécessaire pour dissocier le modèle spécifié d'un référentiel dans un compte Amazon Web Services. Cela ne supprime pas les règles d'approbation sur les demandes d'extraction déjà créées avec le modèle.   |  \$1  | 
|  [GetApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetApprovalRuleTemplate.html)  |  `codecommit:GetApprovalRuleTemplate` Obligatoire pour renvoyer des informations sur un modèle de règle d'approbation dans un compte Amazon Web Services.   |  \$1  | 
|  [ListApprovalRuleTemplates](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListApprovalRuleTemplates.html)  |  `codecommit:ListApprovalRuleTemplates` Obligatoire pour répertorier les modèles de règles d'approbation dans un compte Amazon Web Services.   |  \$1  | 
|  [ListAssociatedApprovalRuleTemplatesForRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListAssociatedApprovalRuleTemplatesForRepository.html)  |  `codecommit:ListAssociatedApprovalRuleTemplatesForRepository` Obligatoire pour répertorier tous les modèles de règles d'approbation associés à un référentiel spécifié dans un compte Amazon Web Services.   |  \$1  | 
|  [ListRepositoriesForApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListRepositoriesForApprovalRuleTemplate.html)  |  `codecommit:ListRepositoriesForApprovalRuleTemplate` Obligatoire pour répertorier tous les référentiels associés à un modèle de règle d'approbation spécifié dans un compte Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateContent.html)  |  `codecommit:UpdateApprovalRuleTemplateContent` Nécessaire pour mettre à jour le contenu d'un modèle de règle d'approbation dans un compte Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateDescription.html)  |  `codecommit:UpdateApprovalRuleTemplateDescription` Nécessaire pour mettre à jour la description d'un modèle de règle d'approbation dans un compte Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateName](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateName.html)  |  `codecommit:UpdateApprovalRuleTemplateName` Nécessaire pour mettre à jour le nom d'un modèle de règle d'approbation dans un compte Amazon Web Services.   |  \$1  | 

## Autorisations pour les actions sur des fichiers individuels
<a name="aa-files"></a>

Les autorisations suivantes autorisent ou refusent des actions sur des fichiers individuels dans les référentiels CodeCommit. Ces autorisations concernent uniquement les actions effectuées dans la CodeCommit console, l' CodeCommit API et les commandes exécutées à l'aide du AWS CLI. Elles ne concernent pas les actions similaires qui peuvent être effectuées à l'aide du protocole Git. Par exemple, la commande `git push` transmet (push) des fichiers nouveaux et modifiés vers un référentiel CodeCommit à l'aide du protocole Git. Il n'est affecté par aucune autorisation pour l' CodeCommit `PutFile`opération.

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions sur des fichiers individuels**  

| CodeCommit Opérations d'API pour des fichiers individuels | Autorisations nécessaires  | Ressources | 
| --- | --- | --- | 
|  [DeleteFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteFile.html)  |  `codecommit:DeleteFile` Nécessaire pour supprimer un fichier spécifié d'une branche spécifiée d'un CodeCommit référentiel à partir de la CodeCommit console.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetBlob](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBlob.html)  |  `codecommit:GetBlob` Nécessaire pour afficher le contenu codé d'un fichier individuel dans un CodeCommit référentiel à partir de la CodeCommit console.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFile.html)  |  `codecommit:GetFile` Nécessaire pour afficher le contenu encodé d'un fichier individuel et ses métadonnées dans un CodeCommit référentiel depuis la CodeCommit console.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetFolder](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFolder.html)  |  `codecommit:GetFolder` Nécessaire pour afficher le contenu d'un dossier spécifié dans un CodeCommit référentiel à partir de la CodeCommit console.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [PutFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutFile.html)  |  `codecommit:PutFile` Nécessaire pour ajouter un fichier nouveau ou modifié à un CodeCommit référentiel à partir de la CodeCommit console, de l' CodeCommit API ou du AWS CLI.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions sur les commentaires
<a name="aa-comments"></a>

Les autorisations suivantes autorisent ou interdisent les actions sur les commentaires dans les CodeCommit référentiels. Ces autorisations concernent les actions effectuées avec la CodeCommit console et l' CodeCommitAPI, ainsi que les commandes exécutées à l'aide du AWS CLI. Pour voir les autorisations connexes pour les commentaires dans les demandes d'extraction, consultez [Autorisations pour les actions sur les pull requests](#aa-pr).

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les commentaires dans les référentiels**  

| CodeCommit Opérations d'API | Autorisations requises (Action d’API) | Ressources | 
| --- | --- | --- | 
|  [DeleteCommentContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteCommentContent.html)  |  `codecommit:DeleteCommentContent` Autorisation requise pour supprimer le contenu d'un commentaire effectué sur une modification, un fichier ou une validation dans un référentiel. Les commentaires ne peuvent pas être supprimés, mais le contenu d'un commentaire peut être supprimé par l'utilisateur s'il y est autorisé.   |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetComment](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetComment.html)  |  `codecommit:GetComment` Obligatoire pour renvoyer des informations sur un commentaire effectué sur une modification, un fichier ou un commit dans un CodeCommit référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetCommentReactions](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentReactions.html)  |  `codecommit:GetCommentReactions` Obligatoire pour renvoyer des informations sur les réactions des emoji à un commentaire effectué sur une modification, un fichier ou un commit dans un CodeCommit référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetCommentsForComparedCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentsForComparedCommit.html)  |  `codecommit:GetCommentsForComparedCommit` Obligatoire pour renvoyer des informations sur les commentaires faits lors de la comparaison entre deux validations dans un CodeCommit référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [PostCommentForComparedCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentForComparedCommit.html)  |  `codecommit:PostCommentForComparedCommit` Nécessaire pour créer un commentaire sur la comparaison entre deux validations dans un CodeCommit dépôt.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [PostCommentReply](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentReply.html) |  `codecommit:PostCommentReply` Autorisation requise pour créer une réponse à un commentaire sur une comparaison entre les validations ou sur une demande d'extraction.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [PutCommentReaction](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutCommentReaction.html) |  `codecommit:PutCommentReaction` Nécessaire pour créer ou mettre à jour une réaction emoji à un commentaire.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [UpdateComment](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateComment.html) |  `codecommit:UpdateComment` Autorisation requise pour modifier un commentaire sur une comparaison entre des validations ou sur une demande d'extraction. Les commentaires ne peuvent être modifiés que par leur auteur.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions sur le code validé
<a name="aa-code"></a>

Les autorisations suivantes autorisent ou refusent des actions au niveau du code validé dans les référentiels CodeCommit. Ces autorisations concernent les actions effectuées avec la CodeCommit console et l' CodeCommit API, ainsi que les commandes exécutées à l'aide du AWS CLI. Elles ne concernent pas les actions similaires qui peuvent être effectuées à l'aide du protocole Git. Par exemple, la commande **git commit** crée une validation pour une branche dans un référentiel au moyen du protocole Git. Il n'est affecté par aucune autorisation pour l' CodeCommit `CreateCommit`opération. 

Le refus explicite de certaines de ces autorisations peut avoir des conséquences inattendues sur la CodeCommit console. Par exemple, la définition de `GetTree` sur `Deny` empêche les utilisateurs de naviguer dans le contenu d'un référentiel sur la console, mais ne les empêche pas d'afficher le contenu d'un fichier dans le référentiel (par exemple, si un lien vers le fichier leur est envoyé dans un e-mail). La définition de `GetBlob` sur `Deny` empêche les utilisateurs d'afficher le contenu de fichiers, mais ne les empêche pas de naviguer dans la structure d'un référentiel. La définition de `GetCommit` sur `Deny` empêche les utilisateurs d'extraire des détails sur des validations. La définition de `GetObjectIdentifier` sur `Deny` bloque la plupart des fonctionnalités de navigation dans le code. Si vous définissez ces trois actions sur une stratégie, un utilisateur doté de cette politique ne peut pas parcourir le code dans la CodeCommit console. `Deny`

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions sur le code validé**  

| CodeCommit Opérations d'API | Autorisations requises (Action d’API) | Ressources | 
| --- | --- | --- | 
|  BatchGetCommits  |  `codecommit:BatchGetCommits` Autorisation requise pour renvoyer des informations sur une ou plusieurs validations dans un référentiel CodeCommit . Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [CreateCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/CreateCommit.html) |  `codecommit:CreateCommit` Requise pour créer une validation.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/GetCommit.html)  |  `codecommit:GetCommit` Autorisation requise pour renvoyer des informations sur une validation.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  GetCommitHistory  |  `codecommit:GetCommitHistory` Autorisation requise pour renvoyer des informations sur l'historique de validations dans un référentiel. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [GetDifferences](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetDifferences.html) |  `codecommit:GetDifferences` Autorisation requise pour renvoyer des informations sur les différences dans des spécificateurs de validation (par exemple, branche, balise, HEAD, ID de validation ou autre référence complète).  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| GetObjectIdentifier | codecommit:GetObjectIdentifierAutorisation requise pour obtenir des objets BLOB, des arborescences et des validations par rapport à leur identifiant. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| GetReferences | codecommit:GetReferencesAutorisation requise pour renvoyer toutes les références, telles que des branches et des balises. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| GetTree | codecommit:GetTreeNécessaire pour afficher le contenu d'une arborescence spécifiée dans un CodeCommit référentiel à partir de la CodeCommit console. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions sur les référentiels
<a name="aa-repositories"></a>

Les autorisations suivantes autorisent ou interdisent les actions sur les CodeCommit référentiels. Ces autorisations concernent les actions effectuées avec la CodeCommit console et l' CodeCommit API, ainsi que les commandes exécutées à l'aide du AWS CLI. Elles ne concernent pas les actions similaires qui peuvent être effectuées à l'aide du protocole Git. 

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions sur les référentiels**  

| CodeCommit Opérations d'API | Autorisations requises (Action d’API) | Ressources | 
| --- | --- | --- | 
|  [BatchGetRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchGetRepositories.html)  |  `codecommit:BatchGetRepositories` Nécessaire pour obtenir des informations sur plusieurs CodeCommit référentiels dans un compte Amazon Web Services. Dans`Resource`, vous devez spécifier les noms de tous les CodeCommit référentiels pour lesquels des informations sont autorisées (ou refusées) à un utilisateur.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [CreateRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/CreateRepository.html)  |  `codecommit:CreateRepository` Nécessaire pour créer un CodeCommit référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [DeleteRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteRepository.html)  |  `codecommit:DeleteRepository` Nécessaire pour supprimer un CodeCommit dépôt.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [GetRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepository.html) |  `codecommit:GetRepository` Autorisation requise pour obtenir des informations sur un référentiel CodeCommit unique.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [ListRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListRepositories.html) | codecommit:ListRepositoriesNécessaire pour obtenir la liste des noms et IDs du système de plusieurs CodeCommit référentiels pour un compte Amazon Web Services. La seule valeur autorisée pour `Resource` pour cette action est tous les référentiels (`*`). |  \$1  | 
| [UpdateRepositoryDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateRepositoryDescription.html) | codecommit:UpdateRepositoryDescriptionNécessaire pour modifier la description d'un CodeCommit dépôt. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| [UpdateRepositoryName](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateRepositoryName.html) | codecommit:UpdateRepositoryNameNécessaire pour modifier le nom d'un CodeCommit dépôt. Dans`Resource`, vous devez spécifier à la fois les CodeCommit référentiels autorisés à être modifiés et les nouveaux noms de référentiels. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions sur les tags
<a name="aa-tags"></a>

Les autorisations suivantes autorisent ou interdisent les actions sur les AWS balises des CodeCommit ressources. 

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions sur les balises**  

| CodeCommit Opérations d'API | Autorisations requises (Action d’API) | Ressources | 
| --- | --- | --- | 
|  [ListTagsForResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListTagsForResource.html)  |  `codecommit:ListTagsForResource` Obligatoire pour renvoyer des informations sur les AWS balises configurées sur une ressource dans CodeCommit.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [TagResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_TagResource.html)  |  `codecommit:TagResource` Obligatoire pour ajouter ou modifier des AWS balises pour une ressource dans CodeCommit.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [UntagResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UntagResource.html)  |  `codecommit:UntagResource` Nécessaire pour supprimer les AWS balises d'une ressource dans CodeCommit.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions sur les déclencheurs
<a name="aa-triggers"></a>

Les autorisations suivantes autorisent ou refusent des actions au niveau des déclencheurs pour les référentiels CodeCommit. 

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions sur les déclencheurs**  

| CodeCommit Opérations d'API | Autorisations requises (Action d’API) | Ressources | 
| --- | --- | --- | 
|  [GetRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepositoryTriggers.html)  |  `codecommit:GetRepositoryTriggers` Autorisation requise pour renvoyer des informations sur les déclencheurs configurés pour un référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [PutRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutRepositoryTriggers.html)  |  `codecommit:PutRepositoryTriggers` Autorisation requise pour créer, modifier ou supprimer des déclencheurs pour un référentiel.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [TestRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_TestRepositoryTriggers.html)  |  `codecommit:TestRepositoryTriggers` Autorisation requise pour tester les fonctionnalités d'un déclencheur de référentiel en envoyant des données à la rubrique ou la fonction configurée pour le déclencheur.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

## Autorisations pour les actions relatives à CodePipeline l'intégration
<a name="aa-acp"></a>

 CodePipeline Pour utiliser un CodeCommit référentiel dans une action source pour un pipeline, vous devez accorder toutes les autorisations répertoriées dans le tableau suivant au rôle de service pour CodePipeline. Si ces autorisations ne sont pas définies dans le rôle de service ou sont définies sur **Deny**, le pipeline ne s'exécute pas automatiquement lorsqu'une modification est apportée au référentiel et les modifications ne peuvent pas être libérées manuellement. 

Utilisez les barres de défilement pour voir le reste du tableau.


**CodeCommit Opérations d'API et autorisations requises pour les actions d' CodePipeline intégration**  

| CodeCommit Opérations d'API | Autorisations requises (Action d’API) | Ressources | 
| --- | --- | --- | 
|  [GetBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBranch.html)  |  `codecommit:GetBranch` Autorisation requise pour obtenir les détails relatifs à une branche dans un référentiel CodeCommit.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  [GetCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/GetCommit.html)  |  `codecommit:GetCommit` Obligatoire pour renvoyer des informations sur un commit dans le rôle de service pour CodePipeline.   |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  UploadArchive  |  `codecommit:UploadArchive` Nécessaire pour autoriser le rôle de service CodePipeline à télécharger les modifications du référentiel dans un pipeline. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
|  GetUploadArchiveStatus  |  `codecommit:GetUploadArchiveStatus` Autorisation requise pour déterminer l'état du chargement d'une archive afin de déterminer si elle est en cours, terminée ou annulée, ou si une erreur s'est produite. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API que vous pouvez appeler.  |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 
| CancelUploadArchive | codecommit:CancelUploadArchiveAutorisation requise pour annuler le chargement d'une archive vers un pipeline. Il s'agit uniquement d'une autorisation de politique IAM, et non d'une action d'API pouvant être appelée. |  arn:aws:codecommit : : *region* *account-id* *repository-name*  | 

# Comment AWS CodeCommit fonctionne avec IAM
<a name="security_iam_service-with-iam"></a>

Avant d'utiliser IAM pour gérer l'accès à CodeCommit, vous devez comprendre quelles fonctionnalités IAM sont disponibles. CodeCommit Pour obtenir une vue d'ensemble de la façon dont CodeCommit les autres AWS services fonctionnent avec IAM, consultez la section [AWS Services qui fonctionnent avec IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dans le Guide de l'utilisateur d'*IAM*.

**Topics**
+ [Clés de condition](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [Exemples](#security_iam_service-with-iam-id-based-policies-examples)

## Clés de condition
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément `Condition` indique à quel moment les instructions s’exécutent en fonction de critères définis. Vous pouvez créer des expressions conditionnelles qui utilisent des [opérateurs de condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande. Pour voir toutes les clés de condition AWS globales, voir les clés de [contexte de condition AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans le *guide de l'utilisateur IAM*.

CodeCommit définit son propre ensemble de clés de condition et prend également en charge l'utilisation de certaines clés de condition globales. Pour voir toutes les clés de condition AWS globales, consultez la section [Clés contextuelles de condition AWS globale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans le *guide de l'utilisateur IAM*.

 Certaines CodeCommit actions prennent en charge la clé de `codecommit:References` condition. Pour obtenir un exemple de stratégie utilisant cette clé, veuillez consulter [Exemple 4 : refuser ou autoriser des actions sur les branches](customer-managed-policies.md#identity-based-policies-example-4). 

Pour consulter la liste des clés de CodeCommit condition, reportez-vous à la section [Clés de AWS CodeCommit condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodecommit.html#awscodecommit-policy-keys) du *guide de l'utilisateur IAM*. Pour savoir avec quelles actions et ressources vous pouvez utiliser une clé de condition, voir [Actions définies par AWS CodeCommit](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodecommit.html#awscodecommit-actions-as-permissions).

## Exemples
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Pour consulter des exemples de politiques CodeCommit basées sur l'identité, consultez. [AWS CodeCommit exemples de politiques basées sur l'identité](security-iam.md#security_iam_id-based-policy-examples)

## CodeCommit politiques basées sur les ressources
<a name="security_iam_service-with-iam-resource-based-policies"></a>

CodeCommit ne prend pas en charge les politiques basées sur les ressources. 

## Autorisation basée sur les CodeCommit tags
<a name="security_iam_service-with-iam-tags"></a>

Vous pouvez associer des balises aux CodeCommit ressources ou transmettre des balises dans une demande à CodeCommit. Pour contrôler l’accès basé sur des étiquettes, vous devez fournir les informations d’étiquette dans l’[élément de condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) d’une politique utilisant les clés de condition `codecommit:ResourceTag/key-name`, `aws:RequestTag/key-name` ou `aws:TagKeys`. Pour plus d'informations sur le balisage CodeCommit des ressources, consultez[Exemple 5 : refuser ou autoriser des actions sur des référentiels contenant des balises](customer-managed-policies.md#identity-based-policies-example-5). Pour plus d'informations sur les stratégies de balisage, consultez la section Ressources de [balisage. AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)

CodeCommit prend également en charge les politiques basées sur les balises de session. Pour de plus amples informations, veuillez consulter [Balises de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html). 

### Utilisation de balises pour fournir des informations d'identité dans CodeCommit
<a name="security-iam_service-with-iam-tags-identity"></a>

CodeCommit prend en charge l'utilisation de balises de session, qui sont des attributs de paires clé-valeur que vous transmettez lorsque vous assumez un rôle IAM, que vous utilisez des informations d'identification temporaires ou que vous fédérez un utilisateur dans (). AWS Security Token Service AWS STS Vous pouvez également associer des balises à un utilisateur IAM. Vous pouvez utiliser les informations fournies dans ces balises pour identifier plus facilement l'auteur d'un changement ou d'un événement. CodeCommit inclut les valeurs des balises portant les noms de clé suivants dans les CodeCommit événements :


****  

| Nom de la touche | Value | 
| --- | --- | 
| displayName | Nom significatif à afficher et à associer à l'utilisateur (par exemple, Mary Major ou Saanvi Sarkar). | 
| emailAddress | L'adresse e-mail que vous souhaitez afficher et associée à l'utilisateur (par exemple, mary\$1major@example.com ou saanvi\$1sarkar@example.com). | 

Si ces informations sont fournies, CodeCommit incluez-les dans les événements envoyés à Amazon EventBridge et Amazon CloudWatch Events. Pour de plus amples informations, veuillez consulter [Surveillance CodeCommit des événements dans Amazon EventBridge et Amazon CloudWatch Events](monitoring-events.md).

Pour utiliser le balisage de session, les rôles doivent avoir des stratégies qui incluent l'autorisation `sts:TagSession` définie sur `Allow`. Si vous utilisez l'accès fédéré, vous pouvez configurer les informations de nom d'affichage et de balise d'e-mail dans le cadre de votre configuration. Par exemple, si vous utilisez Azure Active Directory, vous pouvez fournir les informations de demande suivantes :


****  

| Nom de la demande | Value | 
| --- | --- | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName | user.displayname | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress | user.mail | 

Vous pouvez utiliser le AWS CLI pour transmettre des balises de session pour `displayName` et `emailAddress` utiliser**AssumeRole**. Par exemple, un utilisateur qui souhaite assumer un rôle nommé et *Developer* qui souhaite associer son nom *Mary Major* peut utiliser la **assume-role** commande similaire à la suivante :

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/Developer \
--role-session-name Mary-Major \
–-tags Key=displayName,Value="Mary Major" Key=emailAddress,Value="mary_major@example.com" \
--external-id Example987
```

Pour de plus amples informations, veuillez consulter [AssumeRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role).

Vous pouvez utiliser l'opération `AssumeRoleWithSAML` pour renvoyer un ensemble d'informations d'identification temporaires qui incluent les balises `displayName` et `emailAddress`. Vous pouvez utiliser ces balises lorsque vous accédez aux référentiels CodeCommit. Cela nécessite que votre entreprise ou votre groupe ait déjà intégré votre solution SAML tierce à AWS. Si c'est le cas, vous pouvez passer des attributs SAML en tant que balises de session. Par exemple, si vous souhaitez transmettre des attributs d'identité pour le nom d'affichage et l'adresse e-mail d'un utilisateur nommé *Saanvi Sarkar* sous forme de balises de session :

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName">
  <AttributeValue>Saanvi Sarkar</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress">
  <AttributeValue>saanvi_sarkar@example.com</AttributeValue>
</Attribute>
```

Pour plus d'informations, consultez la section [Transmission de balises de session à l'aide de AssumeRoleWith SAML.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-saml)

Vous pouvez utiliser l'opération `AssumeRoleWithIdentity` pour renvoyer un ensemble d'informations d'identification temporaires qui incluent les balises `displayName` et `emailAddress`. Vous pouvez utiliser ces balises lorsque vous accédez aux référentiels CodeCommit. Pour transmettre les balises de session depuis OpenID Connect (OIDC), vous devez inclure les balises de session dans le JWT (JSON Web Token). Par exemple, le jeton JWP décodé utilisé pour appeler `AssumeRoleWithWebIdentity` qui inclut les balises de `emailAddress` session `displayName` et pour un utilisateur nommé : *Li Juan*

```
{
    "sub": "lijuan",
    "aud": "ac_oic_client",
    "jti": "ZYUCeREXAMPLE",
    "iss": "https://xyz.com",
    "iat": 1566583294,
    "exp": 1566583354,
    "auth_time": 1566583292,
    "https://aws.amazon.com/tags": {
        "principal_tags": {
            "displayName": ["Li Juan"],
            "emailAddress": ["li_juan@example.com"],
        },
        "transitive_tag_keys": [
            "displayName",
            "emailAddress"
        ]
    }
}
```

Pour plus d'informations, consultez la section [Transmission de balises de session à l'aide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-idp) de AssumeRoleWithWebIdentity.

Vous pouvez utiliser l'opération `GetFederationToken` pour renvoyer un ensemble d'informations d'identification temporaires qui incluent les balises `displayName` et `emailAddress`. Vous pouvez utiliser ces balises lorsque vous accédez aux référentiels CodeCommit. Par exemple, pour utiliser le AWS CLI pour obtenir un jeton de fédération incluant les `emailAddress` balises `displayName` et :

```
aws sts get-federation-token \
--name my-federated-user \
–-tags key=displayName,value="Nikhil Jayashankar" key=emailAddress,value=nikhil_jayashankar@example.com
```

Pour plus d'informations, consultez la section [Transmission de balises de session à l'aide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-getfederationtoken) de GetFederationToken.

## CodeCommit Rôles IAM
<a name="security_iam_service-with-iam-roles"></a>

Un [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) est une entité au sein de votre compte Amazon Web Services qui dispose d'autorisations spécifiques.

### Utilisation d'informations d'identification temporaires avec CodeCommit
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Vous pouvez utiliser des informations d’identification temporaires pour vous connecter à l’aide de la fédération, endosser un rôle IAM ou encore pour endosser un rôle intercompte. Vous obtenez des informations d'identification de sécurité temporaires en appelant des opérations d' AWS STS API telles que [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)ou [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html). 

CodeCommit prend en charge l'utilisation d'informations d'identification temporaires. Pour de plus amples informations, veuillez consulter [Connexion aux AWS CodeCommit référentiels avec des informations d'identification rotatives](temporary-access.md).

### Rôles liés à un service
<a name="security_iam_service-with-iam-roles-service-linked"></a>

Les [rôles liés aux](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) AWS services permettent aux services d'accéder aux ressources d'autres services pour effectuer une action en votre nom. Les rôles liés à un service s’affichent dans votre compte IAM et sont la propriété du service. Un administrateur IAM peut consulter, mais ne peut pas modifier, les autorisations concernant les rôles liés à un service.

CodeCommit n'utilise pas de rôles liés à un service. 

### Rôles du service
<a name="security_iam_service-with-iam-roles-service"></a>

Cette fonction permet à un service d’endosser une [fonction du service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) en votre nom. Ce rôle autorise le service à accéder à des ressources d’autres services pour effectuer une action en votre nom. Les rôles de service s’affichent dans votre compte IAM et sont la propriété du compte. Cela signifie qu’un administrateur IAM peut modifier les autorisations associées à ce rôle. Toutefois, une telle action peut perturber le bon fonctionnement du service.

CodeCommit n'utilise pas de rôles de service. 

## AWS CodeCommit exemples de politiques basées sur l'identité
<a name="security_iam_id-based-policy-examples"></a>

Par défaut, les utilisateurs et les rôles IAM ne sont pas autorisés à créer ou modifier les ressources CodeCommit . Ils ne peuvent pas non plus effectuer de tâches à l'aide de l' AWS API AWS Management Console AWS CLI, ou. Un administrateur IAM doit créer des politiques IAM autorisant les utilisateurs et les rôles à exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. Il doit ensuite attacher ces politiques aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations.

Pour consulter des exemples de stratégies, veuillez consulter les rubriques suivantes :
+  [Exemple 1 : Autoriser un utilisateur à effectuer des CodeCommit opérations en une seule fois Région AWS](customer-managed-policies.md#identity-based-policies-example-1)
+ [Exemple 2 : autoriser un utilisateur à utiliser Git pour un seul dépôt](customer-managed-policies.md#identity-based-policies-example-2)
+ [Exemple 3 : autoriser un utilisateur se connectant à partir d'une plage d'adresses IP spécifiée à accéder à un référentiel](customer-managed-policies.md#identity-based-policies-example-3)
+ [Exemple 4 : refuser ou autoriser des actions sur les branches](customer-managed-policies.md#identity-based-policies-example-4)
+ [Exemple 5 : refuser ou autoriser des actions sur des référentiels contenant des balises](customer-managed-policies.md#identity-based-policies-example-5)
+ [Configuration de l'accès entre comptes à un AWS CodeCommit référentiel à l'aide de rôles](cross-account.md)

Pour savoir comment créer une politique IAM basée sur l’identité à l’aide de ces exemples de documents de politique JSON, consultez [Création de politiques dans l’onglet JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) dans le *Guide de l’utilisateur IAM*.

**Topics**
+ [Bonnes pratiques en matière de politiques](#security_iam_service-with-iam-policy-best-practices)
+ [Utilisation de la CodeCommit console](#security_iam_id-based-policy-examples-console)
+ [Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Affichage CodeCommit *repositories* basé sur les balises](#security_iam_id-based-policy-examples-view-repositories-tags)

### Bonnes pratiques en matière de politiques
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer CodeCommit des ressources dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :
+ **Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations** à vos utilisateurs et à vos charges de travail, utilisez les *politiques AWS gérées* qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. 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) ou [politiques gérées par AWS pour les activités professionnelles](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dans le *Guide de l’utilisateur IAM*.
+ **Accordez les autorisations de moindre privilège** : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées *autorisations de moindre privilège*. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez [politiques et autorisations dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez des conditions dans les politiques IAM pour restreindre davantage l’accès** : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que CloudFormation. Pour plus d’informations, consultez [Conditions pour éléments de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez l’Analyseur d’accès IAM pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles** : l’Analyseur d’accès IAM valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez [Validation de politiques avec IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dans le *Guide de l’utilisateur IAM*.
+ **Exiger l'authentification multifactorielle (MFA**) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger la MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez [Sécurisation de l’accès aux API avec MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dans le *Guide de l’utilisateur IAM*.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*.

### Utilisation de la CodeCommit console
<a name="security_iam_id-based-policy-examples-console"></a>

Pour accéder à la AWS CodeCommit console, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et d'afficher les informations relatives CodeCommit aux ressources de votre compte Amazon Web Services. Si vous créez une politique basée sur l'identité qui est plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas comme prévu pour les entités (utilisateurs et rôles IAM) tributaires de cette politique.

Pour garantir que ces entités peuvent toujours utiliser la CodeCommit console, associez également la politique AWS gérée suivante aux entités. Pour en savoir plus, consultez [Ajouter des autorisations à un utilisateur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dans le *guide de l’utilisateur IAM*.

Pour de plus amples informations, veuillez consulter [Utilisation de politiques basées sur l'identité (politiques IAM) pour CodeCommit](auth-and-access-control-iam-identity-based-access-control.md).

Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui appellent uniquement l'API AWS CLI ou l' AWS API. Autorisez plutôt l’accès à uniquement aux actions qui correspondent à l’opération d’API que vous tentez d’effectuer.

### Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

### Affichage CodeCommit *repositories* basé sur les balises
<a name="security_iam_id-based-policy-examples-view-repositories-tags"></a>

Vous pouvez utiliser des conditions dans votre politique basée sur l’identité pour contrôler l’accès aux ressources CodeCommit en fonction des balises. Pour obtenir un exemple de stratégie illustrant la procédure à suivre, veuillez consulter [Exemple 5 : refuser ou autoriser des actions sur des référentiels contenant des balises](customer-managed-policies.md#identity-based-policies-example-5).

Pour plus d'informations, consultez [Éléments de politique JSON IAM : Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.

## Résolution des problèmes AWS CodeCommit d'identité et d'accès
<a name="security_iam_troubleshoot"></a>

Utilisez les informations suivantes pour vous aider à diagnostiquer et à résoudre les problèmes courants que vous pouvez rencontrer lorsque vous travaillez avec CodeCommit IAM.

**Topics**
+ [Je ne suis pas autorisé à effectuer une action dans CodeCommit](#security_iam_troubleshoot-no-permissions)
+ [Je ne suis pas autorisé à effectuer iam : PassRole](#security_iam_troubleshoot-passrole)
+ [Je veux afficher mes clés d'accès](#security_iam_troubleshoot-access-keys)
+ [Je suis administrateur et je souhaite autoriser d'autres personnes à accéder CodeCommit](#security_iam_troubleshoot-admin-delegate)
+ [Je souhaite autoriser des personnes extérieures à mon compte Amazon Web Services à accéder à mes CodeCommit ressources](#security_iam_troubleshoot-cross-account-access)

### Je ne suis pas autorisé à effectuer une action dans CodeCommit
<a name="security_iam_troubleshoot-no-permissions"></a>

S'il vous AWS Management Console indique que vous n'êtes pas autorisé à effectuer une action, vous devez contacter votre administrateur pour obtenir de l'aide. Votre administrateur est la personne qui vous a fourni vos informations de connexion.

Pour de plus amples informations, consultez [Autorisations requises pour utiliser la CodeCommit console](auth-and-access-control-iam-identity-based-access-control.md#console-permissions).

### Je ne suis pas autorisé à effectuer iam : PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si vous recevez une erreur selon laquelle vous n’êtes pas autorisé à exécuter `iam:PassRole` l’action, vos stratégies doivent être mises à jour afin de vous permettre de transmettre un rôle à CodeCommit.

Certains vous Services AWS permettent de transmettre un rôle existant à ce service au lieu de créer un nouveau rôle de service ou un rôle lié à un service. Pour ce faire, vous devez disposer des autorisations nécessaires pour transmettre le rôle au service.

L’exemple d’erreur suivant se produit lorsqu’un utilisateur IAM nommé `marymajor` essaie d’utiliser la console pour exécuter une action dans CodeCommit. Toutefois, l'action nécessite que le service ait des autorisations accordées par une fonction de service. Mary n'est pas autorisée à transmettre le rôle au service.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dans ce cas, les politiques de Mary doivent être mises à jour pour lui permettre d’exécuter l’action `iam:PassRole`.

Si vous avez besoin d'aide, contactez votre AWS administrateur. Votre administrateur vous a fourni vos informations de connexion.

### Je veux afficher mes clés d'accès
<a name="security_iam_troubleshoot-access-keys"></a>

Une fois les clés d'accès utilisateur IAM créées, vous pouvez afficher votre ID de clé d'accès à tout moment. Toutefois, vous ne pouvez pas revoir votre clé d’accès secrète. Si vous perdez votre clé d'accès secrète, vous devez créer une nouvelle paire de clés. 

Les clés d'accès se composent de deux parties : un ID de clé d'accès (par exemple, `AKIAIOSFODNN7EXAMPLE`) et une clé d'accès secrète (par exemple, `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`). À l'instar d'un nom d'utilisateur et un mot de passe, vous devez utiliser à la fois l'ID de clé d'accès et la clé d'accès secrète pour authentifier vos demandes. Gérez vos clés d'accès de manière aussi sécurisée que votre nom d'utilisateur et votre mot de passe.

**Important**  
Ne communiquez pas vos clés d'accès à un tiers, même pour qu'il vous aide à [trouver votre ID utilisateur canonique](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId). Ce faisant, vous pourriez donner à quelqu'un un accès permanent à votre Compte AWS.

Lorsque vous créez une paire de clé d'accès, enregistrez l'ID de clé d'accès et la clé d'accès secrète dans un emplacement sécurisé. La clé d'accès secrète est accessible uniquement au moment de sa création. Si vous perdez votre clé d'accès secrète, vous devez ajouter de nouvelles clés d'accès pour votre utilisateur IAM. Vous pouvez avoir un maximum de deux clés d'accès. Si vous en avez déjà deux, vous devez supprimer une paire de clés avant d'en créer une nouvelle. Pour afficher les instructions, consultez [Gestion des clés d'accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey) dans le *Guide de l'utilisateur IAM*.

### Je suis administrateur et je souhaite autoriser d'autres personnes à accéder CodeCommit
<a name="security_iam_troubleshoot-admin-delegate"></a>

Pour autoriser d'autres personnes à y accéder CodeCommit, vous devez accorder l'autorisation aux personnes ou aux applications qui ont besoin d'y accéder. Si vous utilisez AWS IAM Identity Center pour gérer des personnes et des applications, vous attribuez des ensembles d'autorisations aux utilisateurs ou aux groupes afin de définir leur niveau d'accès. Les ensembles d'autorisations créent et attribuent automatiquement des politiques IAM aux rôles IAM associés à la personne ou à l'application. Pour plus d'informations, consultez la section [Ensembles d'autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) dans le *guide de AWS IAM Identity Center l'utilisateur*.

Si vous n'utilisez pas IAM Identity Center, vous devez créer des entités IAM (utilisateurs ou rôles) pour les personnes ou les applications qui ont besoin d'un accès. Vous devez ensuite associer une politique à l'entité qui leur accorde les autorisations appropriées dans CodeCommit. Une fois les autorisations accordées, fournissez les informations d'identification à l'utilisateur ou au développeur de l'application. Ils utiliseront ces informations d'identification pour y accéder AWS. Pour en savoir plus sur la création d'utilisateurs, de groupes, de politiques et d'autorisations [IAM, consultez la section Identités](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html), [politiques et autorisations IAM dans le guide de l'utilisateur *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).

### Je souhaite autoriser des personnes extérieures à mon compte Amazon Web Services à accéder à mes CodeCommit ressources
<a name="security_iam_troubleshoot-cross-account-access"></a>

Pour de plus amples informations, veuillez consulter [Configuration de l'accès entre comptes à un AWS CodeCommit référentiel à l'aide de rôles](cross-account.md).

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

L'infrastructure AWS mondiale est construite autour Régions AWS de zones de disponibilité. Régions AWS 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 à l’autre sans interruption. Les zones de disponibilité sont davantage disponibles, tolérantes aux pannes et ont une plus grande capacité de mise à l’échelle que les infrastructures traditionnelles à un ou plusieurs centres de données. 

Un CodeCommit référentiel ou un modèle de règle CodeCommit d'approbation existe dans l' Région AWS endroit où il a été créé. Pour de plus amples informations, veuillez consulter [Régions et points de terminaison de connexion Git pour AWS CodeCommit](regions.md). Pour améliorer la résilience des référentiels, vous pouvez configurer votre client Git pour qu'il envoie des données vers deux référentiels à la fois. Pour de plus amples informations, veuillez consulter [Envoyer les validations vers un dépôt Git supplémentaire](how-to-mirror-repo-pushes.md).

Pour plus d'informations sur les zones de disponibilité Régions AWS 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 CodeCommit
<a name="infrastructure-security"></a>

En tant que service géré, AWS CodeCommit il est protégé par les procédures de sécurité du réseau AWS mondial décrites dans le livre blanc [Amazon Web Services : présentation des processus de sécurité](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

Vous utilisez des appels d'API AWS publiés pour accéder CodeCommit via le réseau. Les clients doivent supporter le protocole TLS (Sécurité de la couche transport) 1.0 ou une version ultérieure. Nous recommandons TLS 1.2 ou version ultérieure. Les clients doivent aussi prendre en charge les suites de chiffrement PFS (Perfect Forward Secrecy) comme Ephemeral Diffie-Hellman (DHE) ou Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La plupart des systèmes modernes tels que Java 7 et les versions ultérieures prennent en charge ces modes.

Les demandes doivent être signées à l'aide d'un identifiant de clé d'accès et d'une clé d'accès secrète associée à un mandataire IAM. Vous pouvez également utiliser [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) pour générer des informations d'identification de sécurité temporaires et signer les demandes.

Vous pouvez appeler ces opérations d'API depuis n'importe quel emplacement réseau, mais CodeCommit les restrictions basées sur l'adresse IP source sont prises en charge. Vous pouvez également utiliser des CodeCommit politiques pour contrôler l'accès depuis des points de terminaison Amazon Virtual Private Cloud (Amazon VPC) spécifiques ou spécifiques. VPCs En fait, cela isole l'accès réseau à une CodeCommit ressource donnée uniquement du VPC spécifique du réseau. AWS 

Pour plus d’informations, consultez les ressources suivantes :
+ [Exemple 1 : Autoriser un utilisateur à effectuer des CodeCommit opérations en une seule fois Région AWS](customer-managed-policies.md#identity-based-policies-example-1)
+ [Exemple 3 : autoriser un utilisateur se connectant à partir d'une plage d'adresses IP spécifiée à accéder à un référentiel](customer-managed-policies.md#identity-based-policies-example-3)
+ [Utilisation AWS CodeCommit avec les points de terminaison VPC de l'interface](codecommit-and-interface-VPC.md)