LoginSignup
51
33

More than 5 years have passed since last update.

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

Posted at

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

現象

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

51
33
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
33