web-dev-qa-db-ja.com

AWS CodeCommitsに対してgit cloneを実行すると、403エラーが発生します

私のローカルラップトップはMacです。

  1. Sshキーが正しく構成されている。これは〜/ .ssh/configの内容です

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

Ssh bartheaを実行すると

`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.パスワードとアクセスキーを備えたIAMユーザーbruce666を作成し、このユーザーを「チーム」グループの一部にしました。次に、「AWSCodeCommitPowerUsers」を含むポリシーを作成し、このポリシーを「チーム」に割り当てました。そして、最後にbruce666を「チーム」に割り当てました。この時点で、bruce666は管理コンソールを通じてCodeCommitの任意のリポジトリにアクセスできます。

  1. 私はaws config --profile bruce666を実行し、彼のアクセスと秘密鍵、彼の地域をフィードし、jsonでフォーマットを指定しました。この時点で、aws codecommit get-repository --repository-name rekha --profile bruce666を実行することで、CodeCommmitでrekhaリポジトリを作成できました

  2. いくつかのダミーファイルを作成し、git initgit add。git commit -m "1"git add Origin https:// git -gitcode.amzonaws.com/repos/v1/rekhagit Push -u Origin masterAndその操作は成功します。

  3. ただし、git clone ssh://git-gitcode.amazonaws.com/repos/v1/rekhaを実行すると、「致命的:できませんアクセス ' https://git-codecommit.us-east-1.amazonaws.com/v1/repos/barthia/ ':リクエストされたURLがエラーを返しました:403 "

25
Vietnhi Phuvan

MACで、上記のトリックが機能しない場合は、以下を実行します。

  1. キーチェーンアクセスを開く
  2. CodeCommitを検索します。あなたはこれを見つける必要があります:

enter image description here

  1. 「git-codecommit ....」を選択し、Deleteキーを押します
  2. 削除を確認します。

もう一度やり直してください。うまくいくはずです。エラー403が発生した場合は、次回も同じようにする必要があります。

この問題の考えられる理由の1つは、MACのログインパスワードとは異なるキーチェーンパスワードです。

43
user846316

Windowsでgit Pushコマンドを使用しているときにも、同じ403エラーが発生します。 AWSドキュメントに記載されているすべての設定を行いましたが、問題は解決しませんでした。画面に示すように、Windows資格情報を介して設定されたgit資格情報を確認した後。私はgit httpsクレデンシャルの代わりに、アクセスキー/シークレットキーを設定しました(方法がわかりません)。

enter image description here

編集リンクをクリックして、AWSユーザー用に生成された適切なgit認証情報で認証情報を更新します。すべてが正常に機能しました。

15
irfanmcsd

この役立つテキストは、コードコミットとWindows統合に関するAWSドキュメントにあります

Git for WindowsのインストールにGit Credential Managerユーティリティが含まれている場合、最初の数回の接続試行後に、403エラーが表示されるか、資格情報をCredential Managerユーティリティに提供するように求められます。この問題を解決する最も信頼できる方法は、AWS CodeCommitと互換性がないため、Git Credential ManagerユーティリティのオプションなしでGit for Windowsをアンインストールしてから再インストールすることです。

Git Credential Managerユーティリティを保持する場合は、AWS CodeCommitに接続するときにAWS CodeCommitの認証情報ヘルパーの使用を指定するために.gitconfigファイルを手動で変更するなど、AWS CodeCommitを使用する追加の設定手順を実行する必要があります。

保存されている資格情報を資格情報マネージャーユーティリティから削除します(このユーティリティはコントロールパネルにあります)。

保存されている資格情報を削除したら、.gitconfigファイルに以下を追加して保存し、新しいコマンドプロンプトウィンドウから接続を再試行します。

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

さらに、すべての接続が期待どおりに機能する前に、-globalまたは--localの代わりに--systemを指定してgit構成設定を再構成する必要がある場合があります。

この最後の部分は私の状況に当てはまりましたが、git config --systemを実行すると期待どおりに機能しませんでしたが、aws codecommitコマンドの前にaws configureが追加されました。

したがって、システムの構成ファイルの場所を見つけるために、これをgitで実行する必要がありました。

git config --list --show-Origin

次に、AWSの推奨セクションをc:/users/username/.gitconfigファイルとc:/ ProgramData/Git/configファイルの両方に追加しました。

その後、git Pushが機能し始めました-私の応答の前に偽のエラーが表示されますが

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

私にとってエラーが発生する根本的な原因は、OSXで使用しているgitのバージョンに関係なく、GITが常にファイルからosxkeychainを使用するためのcredential.helper構成を取得していたことです。

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

これを取り除くことは私にとって問題を解決し、何も壊していません。

3
Juha Kervinen

OSXでの私のケース。

最初のステップ:

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

ただし、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

最初の行は以前は存在しませんでしたが、gitはosxkeychainを優先して使用していました。したがって、私は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

そのため、別の資格情報が保存された場合にフォールバックするためにURLが指定されました。

更新https://docs.aws.Amazon.com/codecommit/latest/userguide/troubleshooting-ch.html

なんらかの理由で、UseHttpPath = trueが追加されない場合があります。そのため、[クレデンシャル]の下に追加することができます(推奨)

2
ericson.cepeda

解決しました。

403エラーメッセージは、特にGitエラーメッセージです。 AWSで指定された2つのヘルパーコマンドを追加しました。

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

これで問題が解決しました。

ローカルディレクトリの。git/configファイル(作成したCodecommitリポジトリを複製する前は、次のようになっているはずです):

[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

。git/configファイルで指定されているように、sshではなくhttpsを使用してクローンを作成しています。ツールチェーンの問題に遭遇しなかったので、OSXに付属のデフォルトバージョンのgitを使用していないはずです。

2
Vietnhi Phuvan

致命的: ' https://git-codecommit.yourregion.amazonaws.com/v1/yourrepositoryname/ 'にアクセスできません:要求されたURLがエラーを返しました:403

以下の地域が原因で発生します

  1. ユーザーにcodecommitfullaccessポリシーがアタッチされていることを確認してください。
  2. ローカルaws cli構成のデフォルトのリージョンと、リポジトリが作成されたリージョンが同じであることを確認してください。次のようにaws cliコマンドでデフォルトのリージョンをリセットしない場合

aws設定

  1. リポジトリがそこにあるかどうかを確認してください。
1
Tanaji Sutar

次のソリューションは、Windows 10でGit Bashを使用する少数の開発者に役立ちました。

[リポジトリに接続]タブでオペレーティングシステムとしてWindowsを選択した場合、コマンドは次のような形式になります。

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

ただし、Git Bashを使用する場合は、代わりに[Linux、MacOS、またはUnix]オプションを選択してください。 1行目の二重引用符ではなく、単一引用符に注意してください。

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

幸運を祈ります。

参照: https://forums.aws.Amazon.com/thread.jspa?threadID=198356 投稿者:mwhardesty

0
Debashish

以下のコマンドを実行した後、この問題を解決するには、IAMユーザーに下記のポリシーを追加する必要がありました。 refrence

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

ポリシー:

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