AWS CodeCommitリポジトリにSSH接続するための前準備
Code兄弟。
ちょっとずつ試してみたいと思います。
まずはバージョン管理サービスの CodeCommit から。
AWS CodeCommitに対する認証とアクセスコントロール
AWS CodeCommitはバージョン管理サービスです。
GitHubやBitbucketと同様に、リポジトリへのアクセスに認証情報が必要です。
CodeCommitでは、認証と権限にIAMユーザーを利用できます。
もちろん、SSH接続にも対応しています。 CodeCommitでは、IAMユーザーに対して、SSH公開鍵を紐づけることができます。
SSHキーの作成
まずはSSHキーを作成します。
ssh-keygen
コマンドを使用してSSHキーを作成します。
$ cd ~/.ssh/ $ ssh-keygen -t rsa -b 4096 -f codecommit Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in codecommit. Your public key has been saved in codecommit.pub. The key fingerprint is: SHA256:******************************************* user-name@client-name The key's randomart image is: +---[RSA 4096]----+ | E.+.o*.++| | .o .=.=o.| | . .. *. +| | ..o . +..| | So . . . | | . | | | | | | | +----[SHA256]-----+
ファイルが2つ作成されます。
- 秘密鍵: codecommit
- 公開鍵: codecommit.pub
IAMユーザーの作成
IAMユーザーを作成し、先程作成した公開鍵のSSHキーを紐付けします。
サービス [セキュリティ、 アイデンティティ、 コンプライアンス] - [IAM] を選択します。 ナビゲーションペインの[ユーザー]を選択して[ユーザーを追加]ボタンをクリックします。
ユーザーを追加
ユーザー名とパスワードを入力して、[次のステップ: アクセス権限]ボタンをクリックします。
[既存のポリシーを直接アタッチ]ボタンを選択して、ポリシーのフィルタにAWSCodeCommit
を入力して絞り込みます。
- AWSCodeCommitFullAcces
- 管理者用
- AWSCodeCommitPowerUser
- 一般ユーザー用(リポジトリの削除不可)
- AWSCodeCommitReadOnly
- 参照ユーザー用
ユーザーに適切なポリシーを選択します。
ここではAWSCodeCommitFullAccess
ポリシーを選択します。
[次のステップ: 確認]ボタンをクリックします。
確認画面で[ユーザーの作成]ボタンをクリックして、ユーザーを作成します。
SSHキーの紐付け
作成した[ユーザー名]リンクをクリックします。
[認証情報]タブを選択して、[SSH 公開キーのアップロード]ボタンをクリックします。
先程作成したSSHキーの公開鍵(*.pub)の中身をコピーして貼り付けます。
[SSH 公開キーのアップロード]ボタンをクリックします。
SSHキーID
が表示されるので、これをコピーしておきます。
SSH設定ファイルに追記
.ssh/configファイルに下記を追加します。configファイルがない場合は新規作成してください。
# CodeCommit Host git-codecommit.*.amazonaws.com USER APKA**************** IdentityFile ~/.ssh/codecommit
- Host: AWS CodeCommitのGit接続エンドポイント(*で全リージョン対応)
- USER: コピーしたSSHキーID
- IdentityFile: 作成したSSHキーの秘密鍵
最後に、設定ファイルのアクセス権を変更します。
$ chmod 600 config
これで準備が整いました。
SSH接続確認
設定が正しいか、SSHコマンドで確認します。
$ ssh git-codecommit.us-east-2.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-2.amazonaws.com closed by remote host. Connection to git-codecommit.us-east-2.amazonaws.com closed.
You have successfully authenticated over SSH
と表示されればOKです。