てっくらのーと
てっくらのーとは、触れた技術のメモと日常の記録が少し合わさった個人のサイトです。
てっくらのーとは、触れた技術のメモと日常の記録が少し合わさった個人のサイトです。
git-remote-codecommit を使用してみた
CodeCommit のリポジトリに接続をする際、接続するIAMユーザに対しSSHパブリックキーかHTTPSの認証情報を設定してその情報を介して接続していました。先日リリースされた git-remote-codecommit
という機能を用いることで、IAMユーザのクレデンシャル(アクセスキー情報)のみでリポジトリへの接続が可能になったようですので使用したメモを残します。
環境
$ pip --version
pip 19.3.1 from /usr/lib/python3.8/site-packages/pip (python 3.8)
$ git --version
git version 2.25.1
インストール
pip
でインストールします。
$ pip install git-remote-codecommit
Collecting git-remote-codecommit
Downloading https://files.pythonhosted.org/packages/bb/f7/1180a1f2319a9120c94f33bba61e1738db8dea31b622f8aaf382f219aaeb/git-remote-codecommit-1.13.tar.gz
:
Successfully installed botocore-1.15.16 docutils-0.15.2 git-remote-codecommit-1.13 jmespath-0.9.5 python-dateutil-2.8.1
準備
- CodeCommit 接続用IAMユーザの作成
- (接続用IAMユーザに対し)CodeCommit リポジトリにアクセスできる権限付与
必要最小限となる権限については詳細には調査していませんが、リポジトリへのpush等を考慮すると AWSCodeCommitPowerUser
が適任と思います。
(参考)AWS Managed (Predefined) Policies for CodeCommit
- aws クレデンシャルファイルの作成
.aws/credential
と .aws/config
を作成します。CodeCommit 接続用IAMユーザが既に存在し、クレデンシャルファイルも存在している場合はスキップして問題ないです。
使用法
git clone
は以下のようなコマンドイメージとなります。
$ git clone codecommit://(your-repo)
aws クレデンシャルファイルでは複数のプロファイルを作成することが出来、別のプロファイルで作業を行う場合はリポジトリの前に @
を付けて表します。
$ git clone codecommit://(other-profile-name)@(your-repo)
リージョンを指定することも出来ます。
もちろんですが us-east-1
にリポジトリが無い場合はエラーとなります。CodeCommit リージョンとawsクレデンシャルのリージョン情報が一致している場合はあまり使用しないイメージでよいのかな。
$ git clone codecommit::us-east-1://(your-repo)
$ git clone codecommit::us-east-1://yourrepo
Cloning into 'yourrepo'...
fatal: repository 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/yourrepo/' not found
参考
© てっくらのーと/mkr-note 2024