Dépannage de l'assistant d'informations d'identification et des connexions HTTPS versAWS CodeCommit - AWS CodeCommit

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.

Dépannage de l'assistant d'informations d'identification et des connexions HTTPS versAWS CodeCommit

Les informations suivantes vous aident à résoudre les problèmes courants que vous êtes susceptible de rencontrer lors de l'utilisation de l'assistant d'informations d'identification fourni avec leAWS CLIet HTTPS pour se connecter aux référentiels CodeCommit.

Note

Bien que l'assistant d'informations d'identification soit une méthode prise en charge pour se connecter à CodeCommit à l'aide d'un accès fédéré, d'un fournisseur d'identité ou d'informations d'identification temporaires, la méthode recommandée consiste à installer et à utiliser legit-remote-codecommitutilitaire. Pour plus d'informations, consultez Étapes de configuration pour les connexions HTTPS àAWS CodeCommitavecgit-remote-codecommit.

Le message d'erreur s'affiche lors de l'exécution dugit configcommande pour configurer l'assistant d'informations d'identification

Problème : Lorsque vous essayez d'exécuter la commande git config pour configurer l'assistant d'informations d'identification pour communiquer avec un référentiel CodeCommit, vous voyez une erreur indiquant qu'il y a trop peu d'arguments ou une invite d'utilisation suggérant des commandes et une syntaxe Git config.

Correctifs possibles : La raison la plus courante de cette erreur est que soit des guillemets simples sont utilisés pour la commande sur un système d'exploitation Windows, soit des guillemets doubles pour la commande dans un système d'exploitation Linux, macOS ou Unix. La syntaxe correcte est la suivante :

  • Windows: git config --global credential.helper "!aws codecommit credential-helper $@"

  • Linux, macOS ou Unix :git config --global credential.helper '!aws codecommit credential-helper $@'

Erreur « Commande introuvable » renvoyée dans Windows lors de l'utilisation de l'assistant d'informations d'identification

Problème : Après avoir mis à jour leAWSLes connexions de l'assistant d'informations d'identification à des référentiels CodeCommit échouent avec les référentielsaws codecommit credential-helper $@ get: aws: command not found.

Cause: La raison la plus courante de cette erreur est que votreAWSLa version de l'interface de ligne de commande a été mise à jour vers une version qui utilise Python 3. C'est un problème connu avec le package MSI. Pour vérifier si votre version est concernée, ouvrez une ligne de commande et exécutez la commande suivante : aws --version

Si la version de Python de sortie commence par 3, votre version est concernée. Par Exemple:

aws-cli/1.16.62 Python/3.6.2 Darwin/16.7.0 botocore/1.12.52

Correctifs possibles : Pour contourner ce problème, vous pouvez procéder de l'une des manières suivantes :

  • Installez et configurez l'AWS CLI sur Windows avec Python et pip au lieu du MSI. Pour plus d'informations, consultez la page Installation de Python, pip, et de l'AWS CLI sous Windows.

  • Modifiez manuellement votre fichier .gitconfig pour changer la section [credential] afin qu'elle pointe explicitement vers aws.cmd sur votre ordinateur local. Par Exemple:

    [credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true
  • Exécutez la commande git config pour mettre à jour votre fichier .gitconfig afin de référencer explicitement aws.cmd, et mettez à jour manuellement votre variable d'environnement PATH pour inclure le chemin vers la commande, si nécessaire. Par Exemple:

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

Invitation à entrer un nom d'utilisateur lors de la connexion à un référentiel CodeCommit.

Problème : Lorsque vous essayez d'utiliser l'assistant d'informations d'identification pour communiquer avec un référentiel CodeCommit, un message s'affiche pour vous demander votre nom d'utilisateur.

Correctifs possibles : Configurer votreAWSou assurez-vous que le profil que vous utilisez est celui que vous avez configuré pour travailler avec CodeCommit. Pour plus d'informations sur la configuration, consultez Étapes de configuration pour les connexions HTTPS àAWS CodeCommitréférentiels sous Linux, macOS ou Unix avec leAWS CLIassistant d'identification ou Étapes de configuration pour les connexions HTTPS àAWS CodeCommitréférentiels sous Windows avecAWS CLIassistant d'identification. Pour plus d'informations sur IAM, les clés d'accès et les clés secrètes, consultez la sectionGestion des clés d'accès pour les utilisateurs IAMetComment puis-je obtenir des informations d'identification ?

Git pour macOS : J'ai configuré l'assistant d'informations d'identification avec succès, mais l'accès à mon référentiel m'est maintenant refusé (403)

Problème : Sur macOS, l'assistant d'informations d'identification ne semble pas accéder ou utiliser vos informations d'identification comme prévu. Cela peut être provoqué par deux problèmes différents :

  • LeAWS CLIest configuré pour unRégion AWSdifférent de celui où le référentiel existe.

  • L'utilitaire Keychain Access a enregistré des informations d'identification qui ont expiré depuis.

Correctifs possibles : Pour vérifier si leAWS CLIest configuré pour la région correcte, exécutez leaws configureet passez en revue les informations affichées. Si le référentiel CodeCommit se trouve dans unRégion AWSdifférent de celui présenté pour leAWS CLI, vous devez exécuter leaws configureet modifiez les valeurs en valeurs appropriées pour cette région. Pour plus d'informations, consultez Étape 1 : Configuration initiale pourCodeCommit.

La version par défaut de Git publiée sur OS X et macOS utilise l'utilitaire Keychain Access pour enregistrer les informations d'identification générées. Pour des raisons de sécurité, le mot de passe généré pour accéder à votre référentiel CodeCommit est temporaire. Les informations d'identification stockées dans le trousseau (keychain) cessent donc de fonctionner après environ 15 minutes. Si vous accédez uniquement à Git avec CodeCommit, essayez les actions suivantes :

  1. Dans le terminal, exécutez la commande git config pour trouver le fichier de configuration Git (gitconfig) dans lequel l'utilitaire Keychain Access est défini. En fonction de votre système local et de vos préférences, vous pouvez avoir plusieurs fichiers gitconfig.

    git config -l --show-origin | grep credential

    Dans la sortie de cette commande,recherche des résultats similaires à :

    file:/path/to/gitconfig credential.helper=osxkeychain

    Le fichier indiqué au début de cette ligne est le fichier de configuration Git que vous devez modifier.

  2. Pour modifier le fichier de configuration Git, utilisez un éditeur de texte brut ou exécutez la commande suivante :

    nano /usr/local/git/etc/gitconfig
  3. Modifiez la configuration à l'aide de l'une des stratégies suivantes :

    • Commentez ou supprimez la section d'informations d'identification qui contienthelper = osxkeychain. Par Exemple:

      # helper = osxkeychain
    • Mettez à jour leaws credential helperetosxkeychainsections d'aide aux informations d'identification pour avoir du contexte. Par exemple, si :osxkeychainest utilisé pour s'authentifier auprès de GitHub :

      [credential "https://git-codecommit.us-east-1.amazonaws\.com"] helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true [credential "https://github.com"] helper = osxkeychain

      Dans cette configuration, Git utilisera leosxkeychainassistant lorsque l'hôte distant correspond »https://github.com« et l'assistant d'informations d'identification lorsque l'hôte distant correspond »https://git-codecommit\.us-east-1\.amazonaws.com«.

    • Incluez un assistant de chaîne vide avant l'assistant d'informations d'identification. Par Exemple:

      [credential] helper = helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true

    Sinon, si vous souhaitez continuer à utiliser l'utilitaire Keychain Access pour mettre en cache les informations d'identification pour d'autres référentiels Git, modifiez l'en-tête au lieu de mettre la ligne en commentaire. Par exemple, pour autoriser les informations d'identification mises en cache pour GitHub, vous pouvez modifier l'en-tête comme suit :

    [credential "https://github.com"] helper = osxkeychain

Si vous accédez à d'autres référentiels avec Git, vous pouvez configurer l'utilitaire Keychain Access pour qu'il ne fournisse pas des informations d'identification pour vos référentiels CodeCommit. Pour configurer l'utilitaire Keychain Access :

  1. Ouvrez l'utilitaire Keychain Access. (Vous pouvez utiliser l'outil de recherche pour le localiser).

  2. Rechercher pourgit-codecommit.us-east-2.amazonaws.comet remplacezus-east-2avec leRégion AWSoù le référentiel existe. Mettre la ligne en surbrillance, ouvrez le menu contextuel (clic droit) et choisissez Get Info.

  3. Choisissez l'onglet Access Control.

  4. Dans Confirm before allowing access, choisissez git-credential-osxkeychain, puis sélectionnez le signe moins pour le supprimer de la liste.

    Note

    Après avoir supprimé git-credential-osxkeychain de la liste, vous voyez une boîte de dialogue contextuelle chaque fois que vous exécuterez une commande Git. Choisissez Deny pour continuer. Si vous trouvez les fenêtres contextuelles trop perturbatrices, voici quelques solutions alternatives :

Pour que Git n'utilise plus complètement l'utilitaire Keychain Access, vous pouvez le configurer de façon à ce qu'il arrête d'utiliser « osxkeychain » comme assistant d'informations d'identification. Par exemple, si vous ouvrez un terminal et exécutez la commande git config --system credential.helper, et qu'elle renvoie osxkeychain, cela indique que Git est défini pour utiliser l'utilitaire Keychain Access. Pour modifier cela, exécutez la commande suivante :

git config --system --unset credential.helper

Sachez qu'en exécutant cette commande avec la commande--systemL'option modifie le comportement Git à l'échelle du système pour tous les utilisateurs, et cela peut avoir des conséquences inattendues pour d'autres utilisateurs ou pour d'autres référentiels si vous utilisez d'autres services de référentiel en plus de CodeCommit. Notez également que cette approche peut exiger l'utilisation de sudo et que votre compte ne disposera pas nécessairement des autorisations système suffisantes pour appliquer cette modification. Vérifiez que la commande a été appliquée correctement en exécutant à nouveau la commande git config --system credential.helper. Pour plus d'informations, consultez Personnalisation Git - Configuration Git et cet article sur le débordement de pile.

Git pour Windows : J'ai installé Git pour Windows, mais l'accès à mon référentiel m'est refusé (403)

Problème : Sous Windows, l'assistant d'informations d'identification ne semble pas accéder ou utiliser vos informations d'identification comme prévu. Cela peut être provoqué par différents problèmes :

  • LeAWS CLIest configuré pour unRégion AWSdifférent de celui où le référentiel existe.

  • Par défaut, Git pour Windows installe un utilitaire Gestionnaire d'informations d'identification Git qui n'est pas compatible avec les connexions CodeCommit qui utilisent leAWSassistance des informations d'identification. Lorsqu'il est installé, il entraîne l'échec des connexions au référentiel, même si l'assistant d'informations d'identification a été installé avec leAWS CLIet configuré pour les connexions à CodeCommit.

  • Certaines versions de Git pour Windows peuvent ne pas être entièrement conformes avec les spécifications RFC 2617 et RFC 4559, ce qui peut potentiellement entraîner des problèmes liés aux informations d'identification Git et à l'assistant d'informations d'identification inclus avec l'AWS CLI. Pour plus d'informations, consultez Version 2.11.0(3) does not ask for username/password.

Correctifs possibles :

  • Si vous tentez d'utiliser l'assistant d'informations d'identification inclus avec l'AWS CLI, vous pouvez vous connecter avec les informations d'identification Git sur HTTPS plutôt que de passer par l'assistant d'informations d'identification. Les informations d'identification Git configurées pour votre utilisateur IAM sont compatibles avec le Gestionnaire d'informations d'identification Git pour Windows, contrairement à l'assistant d'informations d'identification pour Windows pour Windows, contrairement à l'assistant pourAWS CodeCommit. Pour plus d'informations, consultez Pour les utilisateurs HTTPS utilisant les informations d'identification Git.

    Si vous souhaitez utiliser l'assistant d'informations d'identification, pour savoir si leAWS CLIest configuré pour le bonRégion AWS, exécutez leaws configureet passez en revue les informations affichées. Si le référentiel CodeCommit se trouve dans unRégion AWSdifférent de celui présenté pour leAWS CLI, vous devez exécuter leaws configureet modifiez les valeurs en valeurs appropriées pour cette région. Pour plus d'informations, consultez Étape 1 : Configuration initiale pourCodeCommit.

  • Si possible, désinstallez, puis réinstallez Git pour Windows. Lorsque vous installez Git pour Windows, désactivez la case à cocher pour l'option correspondant à l'installation de l'utilitaire Gestionnaire des informations d'identification Git. Ce gestionnaire d'informations d'identification n'est pas compatible avec l'assistant d'informations d'identification pour AWS CodeCommit. Si vous avez installé le Gestionnaire des informations d'identification Git ou un autre utilitaire de gestion des informations d'identification et que vous ne souhaitez pas le désinstaller, vous pouvez modifier votre.gitconfiget ajoutez la gestion des informations d'identification pour CodeCommit :

    1. OuvrirPanneau de configuration :, choisissezCredential manageret supprimez les informations d'identification stockées pour CodeCommit.

    2. Ouvrez votre fichier .gitconfig dans un éditeur de texte brut, tel que le Bloc-Notes.

      Note

      Si vous travaillez avec plusieurs profils Git, il se peut que vous ayez à la fois des fichiers .gitconfig locaux et globaux. Veillez à modifier le fichier approprié.

    3. Ajoutez la section suivante à votre fichier .gitconfig :

      [credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
    4. Enregistrez le fichier et ouvrez une nouvelle session de ligne de commande avant d'essayer de vous connecter à nouveau.

    Vous pouvez également utiliser cette approche si vous souhaitez utiliser l'assistant d'informations d'identification pourAWS CodeCommitLorsque vous vous connectez à des référentiels CodeCommit et un autre système de gestion des informations d'identification lors de la connexion à d'autres référentiels hébergées, tels que les référentiels GitHub.

    Pour réinitialiser l'assistant d'informations d'identification utilisé par défaut, vous pouvez utiliser l'option --system au lieu de --global ou --local lorsque vous exécutez la commande git config.

  • Si vous utilisez les informations d'identification Git sur un ordinateur Windows, vous pouvez essayer de contourner les problèmes de non-conformité avec les spécifications RFC en incluant le nom d'utilisateur de vos informations d'identification Git dans la chaîne de connexion. Par exemple, pour contourner le problème et cloner un référentiel nomméMyDemoRepodans la région USA Est (Ohio) :

    git clone https://Your-Git-Credential-Username@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
    Note

    Cette approche ne fonctionne pas si le nom d'utilisateur de vos informations d'identification Git contient un caractère @. Vous devez utiliser le codage d'URL (également appelé échappement d'URL ou encodage de pourcentage).