目的
自動化を進めます。
ここではCodeCommitからgit で持って来る際、sshの秘密鍵を用いています。
どんな場所でも検証を続けたいため、このようにしましたが、
秘密鍵をスクリプト中に記載する事になるため、可能であればIPアドレスベースでのアクセスコントールがしたい。
が、まだできていないです
( conditionみたいな所に記述するんでしょうか http://docs.aws.amazon.com/codecommit/latest/userguide/access-permissions.html )
初期セットアップに必要な権限は readonlyですので( git pushは作業用PCから行うので )、
readonly用のアカウントを作成して使いましょう。
ssh鍵を設定する
ssh鍵設定例
# ssh用のディレクトリがなければ作る
[[ ! -d /root/.ssh ]] && mkdir /root/.ssh && chmod 700 /root/.ssh
# 秘密鍵を設定
# ## 事前にssh鍵を作成しておいて、CodeCommit側に登録しておく必要がある ##
if [[ ! -f /root/.ssh/codecommit_readonly.pem ]] ; then
/bin/cat <<-'EOL' > /root/.ssh/codecommit_readonly.pem
-----BEGIN RSA PRIVATE KEY-----
( 中略 )
-----END RSA PRIVATE KEY-----
EOL
chmod 600 /root/.ssh/codecommit_readonly.pem
fi
# /root/.ssh/config に git-codecommit用の設定が無かったら追加する
if grep git-codecommit /root/.ssh/config ;then
:
else
/bin/cat <<-'EOL' >> /root/.ssh/config
# AWS CodeCommit
# IAM codecommit user
Host git-codecommit.*.amazonaws.com
User APK*************
IdentityFile ~/.ssh/codecommit_readonly.pem
EOL
chmod 600 /root/.ssh/config
# CodeCommitのfingerprintを書き込んでおきます
/bin/cat <<-'EOL' > /root/.ssh/known_hosts
|1|e8DGH1l0mJwyha9fnGNfk9C1GCc=|UsjXS4kK7hIW+dWsQMDYFS/zBPA= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdut7aOM5Zh16OJ+GOP75O7x5oyHKAiA1ieuySetj/hAq4VrAuZV5R2TypZJcKBaripOtTc/Sr0FOU4YvxUla40PPH8N1lbDp6Pnc4BexKsrt2kz++TqIKx5FHmUQV3mit16kxRwHey3dv030+qXBDo3WPQjm2+JLoq0XcadpnCAMCd3ChaBnDRM+51GZbuEFilpZsxUchUzl0gseC+shYOBd7TqxTlIhj/56d/YF1kq7RMZYrwBnyYdVhpLeUJCeYjyx/O6FPSezNTLiinz5jjioWZATgn+G8feL/hIsk8g+7JoIcb2muUlymdxs+8l2lS+8MXqT0q9ohT+Knhb2j
|1|jfikaPCaQW7Q20IzNkX7jYIVHPc=|jtJtabQNm/0k7QAVueh/BPYTj+c= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdut7aOM5Zh16OJ+GOP75O7x5oyHKAiA1ieuySetj/hAq4VrAuZV5R2TypZJcKBaripOtTc/Sr0FOU4YvxUla40PPH8N1lbDp6Pnc4BexKsrt2kz++TqIKx5FHmUQV3mit16kxRwHey3dv030+qXBDo3WPQjm2+JLoq0XcadpnCAMCd3ChaBnDRM+51GZbuEFilpZsxUchUzl0gseC+shYOBd7TqxTlIhj/56d/YF1kq7RMZYrwBnyYdVhpLeUJCeYjyx/O6FPSezNTLiinz5jjioWZATgn+G8feL/hIsk8g+7JoIcb2muUlymdxs+8l2lS+8MXqT0q9ohT+Knhb2j
EOL
fi