Help us understand the problem. What is going on with this article?

AWS CodeCommitで急に403が返ってくるようになった時の対処方法

More than 3 years have passed since last update.

最近触れる機会があり、ややハマりしたので対処方法のまとめです。

現象

OSXでAWS CodeCommitを使っていると、今までリポジトリへアクセスできていたのに、急に403が返ってきてアクセスできなくなることがあります。

具体的にはこんな感じのエラーです。さっきまでpullできてたのになんで?

$ git pull origin master
fatal: unable to access 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/awesome-app/': The requested URL returned error: 403

原因

端的に言うと、キーチェーンアクセスに保存したcredentialがすぐに有効期限切れになってしまうことが原因でした。

OSXにプリインストールされているGitは、credentialを保存するのにKeychain Accessを使います。ですが、セキュリティ上の理由からCodeCommitへアクセスするためのcredentialはテンポラリなものであるため、リポジトリに初回アクセスした際に保存されたcredentialは約15分後には使えなくなります。

ではどうするか?

方法は3つあります。

1. keychain をデフォルトで利用しない gitを別途インストールする

brewなどを使えば簡単ですね。gitが2つになっちゃうことを許容できれば一番手軽な回避方法だと思います。

2. Keychain Accessの設定を変更して、CodeCommitを利用する際にはcredentialを使わないようにする。

まず、Keychainを開いてcodecommitなどで検索します。

キーチェーンアクセス.png

次に、該当項目を右クリックなどで情報を表示しアクセス制御タブを選択します。
で、git-credentila-osxkeychainをボタンで削除して変更内容を保存します。(このときユーザのパスワードが必要です)

スクリーンショット 2015-12-17 20.08.05.png

そして、リポジトリに戻って、git pull origin masterなどリポジトリへアクセスしてみると以下の様なダイアログがポップアップします。
スクリーンショット 2015-12-17 20.14.15.png

そこで拒否を押せば、無事アクセスすることが可能です。

だけど、アクセスするたびに拒否するとかまじめんどくさい。。。

3. sshを使ってアクセスする。

httpsではなくsshを使ってリポジトリにアクセスすることもできます。ただ、IAM Roleや公開鍵などやっぱりそれなりに設定が必要です。

詳しくは以下を参照してください。
http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-ssh-unixes.html

まとめ

一番手っ取り早いのは、新しくgitを入れることだと思います。

正直な話、AWS CodeCommitはがっつり利用するにはまだまだ機能が足りてい無いと感じています。
ですが、その分今後に期待できると考えることもできます。

GithubやBitbucket等のgitリポジトリのホスティングとしては後発ですが、それらと機能の差がなくなりAWSとの連携に強みをもたせれば利用機会が増える可能性はありそうですね。

[参考]
http://docs.aws.amazon.com/codecommit/latest/userguide/troubleshooting.html#troubleshooting-macoshttps

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away