Comment puis-je effectuer des opérations Git sur un référentiel AWS CodeCommit avec un rôle d'instance sur des instances Amazon EC2 pour Amazon Linux 2 ?

Date de la dernière mise à jour : 20/10/2020

Je veux effectuer des opérations Git sur un référentiel AWS CodeCommit avec un rôle d'instance sur les instances Amazon Elastic Compute Cloud (Amazon EC2) pour Amazon Linux 2.

Brève description

Vous pouvez utiliser l'aide d'informations d'identification de l'interface de ligne de commande AWS (AWS CLI) pour effectuer des opérations Git sur un référentiel CodeCommit à l'aide d'un rôle AWS Identity and Access Management (IAM) sur votre instance EC2.

Remarque : l'utilisation d'une aide d'informations d'identification est la seule méthode de connexion pour les référentiels CodeCommit qui ne nécessite pas d'utilisateur IAM.

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution des commandes AWS CLI, assurez-vous d'utiliser la version la plus récente d'AWS CLI.

1.    Créez un rôle IAM pour votre instance EC2, puis attachez l'exemple de stratégie IAM suivant au rôle. Remplacez arn:aws:codecommit:us-east-1:111111111111:testrepo par l'ARN de votre dépôt CodeCommit.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
       
            "codecommit:GitPull",
                "codecommit:GitPush"
            ],
            "Resource": "arn:aws:codecommit:us-east-1:111111111111:testrepo"
 
          }
    ]
}

Remarque : la stratégie de l'étape 1 permet au rôle IAM d'effectuer des actions Git pull et push sur le référentiel CodeCommit. Pour plus d'exemples sur l'utilisation de stratégies IAM pour CodeCommit, voir Utilisation de stratégies basées sur l'identité (stratégies IAM) pour CodeCommit.

2.    Attachez le rôle IAM que vous avez créé à l'étape 1 à une instance EC2.

3.    Installez Git sur votre instance EC2.

Remarque : pour plus d'informations, consultez Téléchargements sur le site Web de Git.

4.    Pour configurer l'assistant d'identification sur l'instance EC2, exécutez les commandes suivantes :

$ git config --global credential.helper '!aws codecommit credential-helper $@'
$ git config --global credential.UseHttpPath true

Remarque : les commandes de l'étape 4 spécifient l'utilisation de l'aide d'informations d'identification Git avec le profil d'identification AWS. Le profil d'identification permet à Git d'utiliser HTTPS et une version signée cryptographiquement de votre rôle d'instance EC2 chaque fois que Git doit s'authentifier auprès d'AWS pour interagir avec les référentiels CodeCommit.

5.    Pour configurer explicitement votre nom et votre adresse e-mail, exécutez la commande suivante :

$ git config --global user.email "testuser@example.com"
$ git config --global user.name "testuser"

Remarque : votre nom et votre adresse e-mail sont configurés automatiquement en fonction de votre nom d'utilisateur et de votre nom d'hôte.

6.    Pour cloner le référentiel vers l'instance EC2, exécutez la commande suivante :

$ git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/testrepo