この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
はじめに
AWSが提供するコードリポジトリサービスのCodeCommitを利用するための、アクセス方法までをメモ。
つくったはいいけど、どうやって接続したらいいの?と毎回ググる自分のために。
ちなみに最近ググったのは下記ブログを書いた際
CloudFormationでCodeCommit 作成時にリポジトリを反映する構築ハンズオン
CodeCommitのアクセス方法3種類の違い(ざっくり)
アクセス方法 | 説明 |
---|---|
HTTPS | IAM ユーザで設定するHTTPS Git認証情報を利用 |
SSH | IAM ユーザに公開鍵を登録して利用 |
HTTPS(GRC) | IAM ユーザ の権限(アクセスキー/シークレットアクセスキー)で利用。※ GRC は git-remote-codecommit の略語。 |
ハンズオン
前提条件
CodeCommitリポジトリ名 | AWS Region |
---|---|
【MY-REPOSITORY】 | ap-northeast-1 |
※リポジトリ名は利用者によって都度変更ください
1.HTTPS
1.1.IAMユーザの認証情報からAWS CodeCommit の HTTPS Git 認証情報
でID・Password発行
・マネジメントコンソールから、IAM
→左ペイン:ユーザー
→タブ:認証情報
→AWS CodeCommit の HTTPS Git 認証情報
→認証情報を生成
押下してID・Passwordを発行する
1.2.ターミナル画面でリポジトリをCloneする
% git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/【MY-REPOSITORY】
Cloning into '【MY-REPOSITORY】'...
The config profile (CodeCommitProfile) could not be found
Username for 'https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/【MY-REPOSITORY】': #1.1で取得した【ユーザー名】
Password for 'https://【ユーザー名】@git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/【MY-REPOSITORY】': #1.1で取得した【パスワード】
remote: Counting objects: 6, done.
Unpacking objects: 100% (6/6), 1.36 KiB | 154.00 KiB/s, done.
※上記設定時 clone をした際に 403
エラーが自分の環境では確認出来ました。
認証情報ヘルパーと への HTTPS 接続のトラブルシューティングAWS CodeCommitの手順に従い問題を解決しました。
2.SSH
2.1.自身のPCでパブリックキーとプライベートキーをセットアップする
プライベートキーファイル | パブリックキーファイル |
---|---|
codecommit_rsa | codecommit_rsa.pub |
※設定時にパスワードの設定が求められます(2.5でリポジトリを取得する際に必要となります)
※任意で名前を変えられます
% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user-name/.ssh/id_rsa): 【codecommit_rsa】
Enter passphrase (empty for no passphrase): 【パスワード入力】
Enter same passphrase again: 【同:パスワード入力】
Your identification has been saved in /home/user-name/.ssh/【codecommit_rsa】.
Your public key has been saved in /home/user-name/.ssh/【codecommit_rsa.pub】.
The key fingerprint is:
45:63:d5:99:0e:99:73:50:5e:d4:b3:2d:86:4a:2c:14 user-name@client-name
The key's randomart image is:
+--[ RSA 2048]----+
| E.+.o*.++|
| .o .=.=o.|
| . .. *. +|
| ..o . +..|
| So . . . |
| . |
| |
| |
| |
+-----------------+
2.2.コマンドを実行して、パブリックキーファイルの値を表示する
% cat ~/.ssh/codecommit_rsa.pub
上記コマンドを実行して、下記のような乱数を取得する(AWSユーザガイドより抜粋)
2.3. IAMユーザの認証情報からAWS CodeCommit の SSH キー
でパブリックキーファイルの値を登録
マネジメントコンソールから、IAM
→左ペイン:ユーザー
→タブ:認証情報
→AWS CodeCommit の SSH キー
→SSHパブリックキーのアップロード
を押下して、2.2で取得した値を登録(コピペして貼り付ける)する
下記画像のようにSSH KEY ID 情報が登録される
2.4. .ssh/config
ファイルを編集して、2.3で表示されたSSH キー ID
を登録する
自身のターミナル画面で% vi .ssh/config
を押下して、configファイルに設定を登録する
Host git-codecommit.*.amazonaws.com
User 【SSHキーID】
IdentityFile ~/.ssh/codecommit_rsa
上記設定後 :x
で vi
を保存して閉じる。
ターミナルで下記コマンドを実行して、設定ファイルへのアクセス権限を変更する
% chmod 600 config
2.5.ターミナル画面でリポジトリをCloneする
2.1.で自身で設定したパスワードを入力を求められる部部があります
% git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/【MY-REPOSITORY】
Cloning into '【MY-REPOSITORY】'...
Enter passphrase for key '/Users/inamurateppei/.ssh/codecommit':【パスワード入力】
remote: Counting objects: 6, done.
Receiving objects: 100% (6/6), 1.38 KiB | 471.00 KiB/s, done.
3.HTTPS(GRC)
3.1.git-remote-codecommit
をインストールする
マネジメントコンソールから、Codecommit
→左ペイン:リポジトリ
→任意:設定したいリポジトリ選択
→上部ボタン:URLのクローン
→接続のステップ
を押下→タブ:HTTPS(GRC)
を選択
pip install git-remote-codecommit
コマンドを実行してgit-remote-codecommit をインストールする
3.2.AWSプロファイルの設定
AWS CLIのインストールする
参照:AWS CLI の最新バージョンをインストールまたは更新します。
3.2.1..aws/config
の設定
% vi .aws/config
[profile myaccount]
region = ap-northeast-1
output = json
上記設定後、:x
で保存して閉じる
3.2.2..aws/credentials
の設定
[myaccount]
aws_access_key_id = 【自身に払い出されているアクセスキー】
aws_secret_access_key = 【自身に払い出されているシークレットアクセスキー】
3.3.ターミナル画面でリポジトリをCloneする
git clone codecommit::ap-northeast-1://myaccount@【MY-REPOSITORY】
コマンドの【】前にある部分(myaccount)部分が、3.2.で設定した自身のAWSプロファイル情報にあたります
% git clone codecommit::ap-northeast-1://myaccount@【MY-REPOSITORY】
Cloning into '【MY-REPOSITORY】'...
remote: Counting objects: 6, done.
Unpacking objects: 100% (6/6), 1.36 KiB | 199.00 KiB/s, done.
さいごに
毎回SSH接続していましたが、改めて3種類全てを実施してみると、アクセスキー/シークレットキーが払い出されている環境であれば、HTTPS(GRC)
が一番簡単ですね。
このメモを覗き見しながら、それぞれ条件が異なる案件であってもCodeCommitを利用する際の設定はチョットワカル感だしていけるかと思います。
参考URL
参考:AWS CodeCommit の使い方
参考:git-remote-codecommit(GRC)を使ってCodeCommitのリポジトリに接続してみる