

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.

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