web-dev-qa-db-fra.com

l'exécution de git clone contre AWS CodeCommits m'obtient une erreur 403

Mon ordinateur portable local est un Mac.

  1. La clé ssh est configurée correctement. C'est le contenu de ~/.ssh/config

    Host barthea Hostname git-codecommit.us-east-1.amazonaws.com User AVVVVVVVVVVVVVVVVVQ IdentityFile ~/.ssh/aws-aws.pem

Courir ssh barthea me fait

`You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us-east-1.amazonaws.com closed by remote Host.

`2. J'ai créé un utilisateur IAM bruce666 avec mot de passe et clés d'accès, j'ai intégré cet utilisateur au groupe" team ". J'ai ensuite créé une stratégie qui inclut" AWSCodeCommitPowerUsers "et j'ai affecté cette stratégie à" team ". Et finalement assigné bruce666 à "team". À ce stade, bruce666 peut accéder à n'importe quel référentiel dans CodeCommit via la console de gestion.

  1. J'ai exécuté aws config --profile bruce666 , introduit son accès et sa clé secrète, sa région et spécifié le format sur json. À ce stade, j'ai pu créer le référentiel rekha dans CodeCommmit en exécutant aws codecommit get-repository --repository-name rekha --profile bruce666

  2. Je peux créer quelques fichiers fictifs, exécuter git init , git add. , git commit -m "1" , git add Origin https: // git -gitcode.amzonaws.com/repos/v1/rekha, git Push -u Origin master Et cette opération sera couronnée de succès.

  3. Cependant, lorsque j'exécute git clone ssh: //git-gitcode.amazonaws.com/repos/v1/rekha , j'obtiens "fatal: incapable de access ' https://git-codecommit.us-east-1.amazonaws.com/v1/repos/barthia/ ': L'URL demandée a renvoyé l'erreur: 403 "Qu'est-ce qui donne?

25
Vietnhi Phuvan

Sur MAC, si les astuces mentionnées ci-dessus ne fonctionnent pas, procédez comme suit:

  1. Accès au trousseau ouvert
  2. Recherchez CodeCommit. Vous devriez trouver ceci:

enter image description here

  1. Sélectionnez 'git-codecommit ....' et appuyez sur supprimer
  2. Confirmez la suppression.

Maintenant réessayez. Ça devrait marcher. Vous devrez peut-être recommencer la prochaine fois également lorsque vous rencontrerez l'erreur 403.

L'une des raisons possibles de ce problème est le mot de passe du trousseau différent du mot de passe de connexion sur votre MAC.

43
user846316

Je fais également face à la même erreur 403 lors de l'utilisation de la commande git Push dans Windows. J'ai effectué tous les paramètres mentionnés dans les documents AWS, mais je n'ai pas résolu mon problème. Après avoir examiné les informations d'identification git définies via les informations d'identification Windows, comme indiqué à l'écran. J'ai trouvé à la place des informations d'identification https git, il a défini la clé d'accès/clé secrète (je ne sais pas comment).

enter image description here

Cliquez sur le lien de modification, mettez à jour les informations d'identification avec les informations d'identification git appropriées générées pour l'utilisateur AWS, tout a bien fonctionné.

15
irfanmcsd

Ce texte utile se trouve dans la documentation AWS pour codecommit et l'intégration Windows

Si votre installation de Git pour Windows comprenait l'utilitaire Git Credential Manager, vous verrez 403 erreurs ou invites pour fournir des informations d'identification dans l'utilitaire Credential Manager après les premières tentatives de connexion. Le moyen le plus fiable pour résoudre ce problème consiste à désinstaller puis à réinstaller Git pour Windows sans l'option pour l'utilitaire Git Credential Manager, car il n'est pas compatible avec AWS CodeCommit.

Si vous souhaitez conserver l'utilitaire Git Credential Manager, vous devez effectuer des étapes de configuration supplémentaires pour utiliser également AWS CodeCommit, notamment en modifiant manuellement le fichier .gitconfig pour spécifier l'utilisation de l'assistant d'informations d'identification pour AWS CodeCommit lors de la connexion à AWS CodeCommit.

Supprimez toutes les informations d'identification stockées de l'utilitaire Credential Manager (vous pouvez trouver cet utilitaire dans le Panneau de configuration).

Une fois que vous avez supprimé toutes les informations d'identification stockées, ajoutez ce qui suit à votre fichier .gitconfig, enregistrez-le, puis réessayez de vous connecter à partir d'une nouvelle fenêtre d'invite de commandes:

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

De plus, vous devrez peut-être reconfigurer vos paramètres de configuration git en spécifiant --system au lieu de --global ou --local avant que toutes les connexions fonctionnent comme prévu.

Cette dernière partie s'appliquait à ma situation, bien que lorsque j'ai exécuté git config --system, il ne fonctionnait pas comme prévu mais a ajouté aws configure avant la commande aws codecommit.

J'ai donc dû l'exécuter dans git pour trouver l'emplacement du fichier de configuration pour le système.

git config --list --show-Origin

J'ai ensuite ajouté la section suggérée d'AWS à mes fichiers c: /users/username/.gitconfig et mes fichiers c:/ProgramData/Git/config.

Après que git Push a commencé à fonctionner, même si j'obtiens l'erreur bidon devant ma réponse de

"git: 'credential-aws' is not a git command. See 'git --help'."
6
joezen777

Pour moi, la cause principale de l'erreur était que, quelle que soit la version de git que j'utilisais sur OSX, GIT récupérait toujours la configuration credential.helper de l'utilisation d'osxkeychain dans le fichier:

/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig

Se débarrasser de cela a résolu le problème pour moi et n'a rien cassé.

3
Juha Kervinen

Mon cas sous OSX.

Le premier pas:

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

Cependant, la vérification de git config --list --show-Origin

file:/usr/local/etc/gitconfig   credential.https://git-codecommit.eu-west-1.amazonaws.com.helper=!aws codecommit credential-helper $@
file:/usr/local/etc/gitconfig   credential.helper=osxkeychain
file:/Users/mine/.gitconfig  user.name=my-user
file:/Users/mine/.gitconfig  [email protected]
file:/Users/mine/.gitconfig  filter.lfs.clean=git-lfs clean -- %f
file:/Users/mine/.gitconfig  filter.lfs.smudge=git-lfs smudge -- %f
file:/Users/mine/.gitconfig  filter.lfs.process=git-lfs filter-process
file:/Users/mine/.gitconfig  filter.lfs.required=true
file:/Users/mine/.gitconfig  credential.helper=!aws codecommit credential-helper $@
file:/Users/mine/.gitconfig  credential.usehttppath=true

La première ligne n'était pas présente auparavant, et git utilisait osxkeychain avec priorité. Par conséquent, je devais faire git config --system ...

cat /usr/local/etc/gitconfig                                             
[credential "https://git-codecommit.eu-west-1.amazonaws.com"]
    helper = !aws codecommit credential-helper $@
    UseHttpPath = true
[credential]
    helper = osxkeychain

L'URL a donc été spécifiée afin de se replier au cas où d'autres informations d'identification seraient stockées.

Mise à jour https://docs.aws.Amazon.com/codecommit/latest/userguide/troubleshooting-ch.html

Pour une raison quelconque, UseHttpPath = true ne semble pas être ajouté parfois. Il peut donc (devrait) être ajouté sous [informations d'identification]

2
ericson.cepeda

Je l'ai résolu.

Le message d'erreur 403 est un message d'erreur spécifiquement Git. J'ai ajouté les deux commandes d'assistance spécifiées par AWS:

git config --global credential.helper '!aws --profile bruce666 codecommit credential-helper $@'
git config --global credentials.helper UseHttpPath=true

et cela a réglé le problème.

Le fichier . Git/config dans votre répertoire local (avant de cloner le référentiel Codecommit que vous venez de créer devrait ressembler à ceci:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = false
[credential]
    helper = !aws --profile bruce666 codecommit credential-helper $@
    UseHttpPath = true
[remote "Origin"]
    url = https://git-codecommit.us-east-1.amazonaws.com/v1/repos/barthea
    fetch = +refs/heads/*:refs/remotes/Origin/*
[branch "master"]
    remote = Origin
    merge = refs/heads/master

Comme spécifié dans le fichier . Git/config, vous clonez en utilisant https et non ssh. Je ne dois pas avoir utilisé la version par défaut de git fournie avec OSX car je n'ai rencontré aucun problème de chaîne d'outils.

2
Vietnhi Phuvan

fatal: impossible d'accéder à ' https://git-codecommit.yourregion.amazonaws.com/v1/yourrepositoryname/ ': l'URL demandée a renvoyé l'erreur: 403

Cela se produit en raison des régions ci-dessous

  1. Assurez-vous que votre utilisateur est associé à la politique codecommitfullaccess.
  2. assurez-vous que votre région par défaut dans la configuration locale aws cli et la région dans laquelle le référentiel créé est le même. Sinon, réinitialisez la région par défaut dans la commande aws cli comme ci-dessous

aws configure

  1. assurez-vous que le référentiel y est présent.
1
Tanaji Sutar

La solution suivante a fonctionné pour une poignée de développeurs qui utilisent Git Bash sur Windows 10.

Si vous sélectionnez Windows comme système d'exploitation sur l'onglet " Connectez-vous à votre référentiel ", les commandes sont formatées comme suit:

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

Cependant, si vous utilisez Git Bash, sélectionnez plutôt l'option "Linux, MacOS ou Unix". Notez le guillemet simple au lieu du guillemet double sur la première ligne.

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

Bonne chance.

Référé: https://forums.aws.Amazon.com/thread.jspa?threadID=198356 Publié par: mwhardesty

0
Debashish

Après avoir exécuté les commandes ci-dessous, j'ai dû ajouter la stratégie mentionnée ci-dessous à mon utilisateur IAM pour résoudre ce problème. réfraction

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

Politique:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:*"
            ],
            "Resource": "*"
        }
    ]
}
0
Vishwanath gowda k