AWS CodeCommitの設定

AWS CodeCommit を使いはじめる方法。ポリシーの設定があるので、最初ちょっとめんどくさい感じがする。

Policy の設定

細かく設定せず、とりあえずどのレポジトリにも push 出来るようにする。 AWSCodeCommitFullAccess のポリシーを、IAMユーザかグループに付与する。

CodeCommit 用の SSH 公開鍵を設定するために、 IAMUserSSHKeys のポリシーを、アップロード操作をするIAMユーザかグループに割り当てる。自分でアップロードさせたかったら本人に、という感じ。

アクセス可能なレポジトリを制限

下記は、hello_world というレポジトリに、読み取り許可だけ与える場合の設定。デプロイするサーバ側にキーを置いて、git pull だけしたい場合などを想定。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:BatchGetRepositories",
                "codecommit:Get*",
                "codecommit:GitPull",
                "codecommit:List*"
            ],
            "Resource": "arn:aws:codecommit:us-east-1:1234567890:hello_world"
        }
    ]
}

SSH公開鍵の設定

git に ssh でアクセスするための、ssh公開鍵を設定する。 []IAMの画面](https://console.aws.amazon.com/iam/home)を開き、左ペインのユーザ → 公開鍵を設定するユーザを選択 → 認証情報内の AWS CodeCommit の SSH キー というところから、公開鍵を設定する。

設定すると、SSH キー ID というのが発行されるので、この文字列を覚えておく。 APKAEIBAERJR2EXAMPLE みたいな文字列。

~/.ssh/config の設定

先ほどの SSH キー ID を User にして、下記のように設定する。似てるが AWS の AccessKeyId とは別物なので注意。

Host git-codecommit.*.amazonaws.com
  User APKAEIBAERJR2EXAMPLE

SSHの接続確認

ssh してみて、successfully 的なメッセージが出たら成功。あとは普通にレポジトリを作成して自由に push 等出来る。

% ssh git-codecommit.us-east-1.amazonaws.com

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.
Connection to git-codecommit.us-east-1.amazonaws.com closed.

Contents