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.