ITと筋トレの二刀流

未だゼロ刀流

CodeCommit 〜クライアント側設定編〜

f:id:tatsuyashi:20180724005641p:plain:w300

前回の記事では、AWS CodeCommitのサーバー側の設定を行いました。

CodeCommit 〜サーバー側設定編〜 - Tatsuyashi's Blog

今回はクライアント側の設定と実際にコミット、プッシュまで行ってみたいと思います。

が!

実はサーバー側の設定、まだ残っていました(笑)

ということで今回はまず残っているサーバー側の設定から行っていきます。

IAMユーザの作成

AWSといえば、IAMによるユーザ・権限の管理ですね!
例に漏れず、CodeCommitも権限が必要です。
専用のユーザを作ってみたいと思います。

まずIAMコンソールを開き、左のサイドバーから「ユーザー」→「ユーザーを追加」とクリックしていきます。

f:id:tatsuyashi:20180724010626p:plain


ユーザ情報を入力していきます。サンプルのユーザーなので名前は適当です。

f:id:tatsuyashi:20180724011014p:plain


アクセス許可の設定は「既存のポリシーを直接アタッチ」から「AWSCodeCommitFullAccess」をアタッチします。

f:id:tatsuyashi:20180724011500p:plain


ユーザーの追加が完了すると、アクセスキーID・シークレットアクセスキーが表示されるので、コピーしておきます。

f:id:tatsuyashi:20180724011834p:plain

これで、CodeCommitの権限を持ったユーザが作成できました。

HTTPS接続

HTTPSで接続する手順に入ります。

Git認証情報の生成

IAMコンソールを開き、左のサイドバーから「ユーザー」→対象ユーザをクリックし、「認証情報」タブを開きます。

f:id:tatsuyashi:20180725010720p:plain


AWS CodeCommit の HTTPS Git 認証情報」の「生成」ボタンをクリックします。

f:id:tatsuyashi:20180725010938p:plain


認証情報が生成されるので、証明書をダウンロードしてユーザに配布します。
パスワードを確認できる唯一の機会ですので忘れずダウンロードやメモをしましょう。

クライアントからの接続

※管理者ではなく、開発者自身がコンソールにログインして操作します。

CodeCommitコンソールを開き、対象のリポジトリを選択し、「クローンURL」から「HTTPS」を選択します。

f:id:tatsuyashi:20180725012704p:plain


クリップボードにURLがコピーされるので、早速接続してみたいと思います。

クローン

①クローンします。

git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test

②認証が求められるので、先ほど生成したユーザ名とパスワードを入力します。

Cloning into 'test'...
remote: Counting objects: 3, done.
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.

クローンが成功します。

コミット&プッシュ

とりあえず何かしらソースに変更を加えて・・・

①ステージ

git add README.md

②コミット

git commit -m "test commit"

コミットが成功します。

③プッシュ

git push origin master

プッシュが成功します。

クローンしてからの流れは通常のGitの操作と同じですね。

確認

プッシュされた内容を確認します。

CodeCommitコンソールから対象のリポジトリを開きます。

f:id:tatsuyashi:20180725014713p:plain

変更が反映されていますね!

HTTPSでの接続はこれで終わりです。

SSH接続

次にSSHで接続する手順に入ります。

SSH鍵ペアの生成

※開発者作業

まずはSSHの公開鍵と秘密鍵を生成します。

GitBashなどのBashエミュレータを開き、

ssh-keygen

鍵名はcodecommit_rsaにしておきます。

Enter file in which to save the key (/c/Users/xxxxx/.ssh/id_rsa):  /c/Users/xxxxx/.ssh/codecommit_rsa

以上で、codecommit_rsaとcodecommit_rsa.pubが作成されます。

SSH公開鍵のアップロード

IAMコンソールを開き、左のサイドバーから「ユーザー」→対象ユーザをクリックし、「認証情報」タブを開きます。
SSH 公開鍵のアップロード」をクリックします。

f:id:tatsuyashi:20180726001410p:plain


公開鍵の入力欄が表示されるので、codecommit_rsa.pubの内容を貼り付けます。

f:id:tatsuyashi:20180726001822p:plain


公開鍵がアップロードできたら、SSHキーIDをコピーしておきます。

f:id:tatsuyashi:20180726002535p:plain

SSH秘密鍵の設定

./.ssh/configを以下のように編集します。ファイルがなければ作成します。

Host git-codecommit.*.amazonaws.com
  User APKAEIBAERJR2EXAMPLE
  IdentityFile ~/.ssh/codecommit_rsa

UserにはコピーしておいたSSHキーIDを設定します。


SSHの接続テストをします。

ssh git-codecommit.us-east-2.amazonaws.com

実行するとAWS CodeCommitサーバーのフィンガープリントが表示されます。
接続続行の確認には「yes」、その後パスフレーズの入力を求められるので入力します。

You have successfully authenticated〜〜〜

と表示されれば接続テストOKです。

クライアントからの接続

CodeCommitコンソールを開き、対象のリポジトリを選択し、「クローンURL」から「SSH」を選択します。

f:id:tatsuyashi:20180726004427p:plain

クリップボードにURLがコピーされるので、接続してみたいと思います。

クローン

①クローンします。

git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test

サーバーのフィンガープリントが表示されます。
接続続行の確認には「yes」、その後パスフレーズの入力を求められるので入力します。

Unpacking objects: 100% (3/3), done.
Checking connectivity... done.

クローンが成功します。

コミット&プッシュ

ソースに変更を加えて・・・

①ステージ

git add README.md

②コミット

git commit -m "ssh test commit"

コミットが成功します。

③プッシュ

git push origin master

パスフレーズを聞かれるので、入力するとプッシュが完了します。

確認

プッシュされた内容を確認します。

CodeCommitコンソールから対象のリポジトリを開きます。

f:id:tatsuyashi:20180726005302p:plain

変更が反映されていますね!

SSHでの接続はこれで終わりです。

まとめ

今回はCodeCommitに実際に接続してソースの編集、コミット、プッシュまで行いました。
HTTPSSSH両方試しましたが、手間がかからなくてなおかつ公式ドキュメントで推奨されているHTTPSを使用していこうと思います。