

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.

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

