俺のアウトプット

調べたこと、試したことを書きます

AWS CodeCommitリポジトリにSSH接続するための前準備

Code兄弟。
ちょっとずつ試してみたいと思います。
まずはバージョン管理サービスの CodeCommit から。

f:id:kitsugi:20180905055514p:plain

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] を選択します。 ナビゲーションペインの[ユーザー]を選択して[ユーザーを追加]ボタンをクリックします。

ユーザーを追加

ユーザー名とパスワードを入力して、[次のステップ: アクセス権限]ボタンをクリックします。

f:id:kitsugi:20180906062125p:plain

[既存のポリシーを直接アタッチ]ボタンを選択して、ポリシーのフィルタにAWSCodeCommitを入力して絞り込みます。

  • AWSCodeCommitFullAcces
    • 管理者用
  • AWSCodeCommitPowerUser
    • 一般ユーザー用(リポジトリの削除不可)
  • AWSCodeCommitReadOnly
    • 参照ユーザー用

ユーザーに適切なポリシーを選択します。
ここではAWSCodeCommitFullAccessポリシーを選択します。

[次のステップ: 確認]ボタンをクリックします。

f:id:kitsugi:20180906062651p:plain

確認画面で[ユーザーの作成]ボタンをクリックして、ユーザーを作成します。

SSHキーの紐付け

作成した[ユーザー名]リンクをクリックします。

f:id:kitsugi:20180906062141p:plain

[認証情報]タブを選択して、[SSH 公開キーのアップロード]ボタンをクリックします。

f:id:kitsugi:20180906063940p:plain

先程作成したSSHキーの公開鍵(*.pub)の中身をコピーして貼り付けます。

f:id:kitsugi:20180906070034p:plain

[SSH 公開キーのアップロード]ボタンをクリックします。

SSHキーIDが表示されるので、これをコピーしておきます。

f:id:kitsugi:20180906070531p:plain

SSH設定ファイルに追記

.ssh/configファイルに下記を追加します。configファイルがない場合は新規作成してください。

# CodeCommit
Host git-codecommit.*.amazonaws.com
  USER APKA****************
  IdentityFile ~/.ssh/codecommit 

最後に、設定ファイルのアクセス権を変更します。

$ 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です。

参考