18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

複数のAWSアカウントを利用する場合のCodeCommit SSHパスの設定方法

Posted at

はじめに

業務で複数のAWSアカウントを扱っており、ソース管理のリポジトリ「CodeCommit」も複数アカウントにまたがったものを並行して使用しています。
そういった場合に「git clone」する際のSSHパス設定をどのように扱えば良いかを整理しました。

どういった方法があるのか

複数CodeCommitの管理方法を調べてみると、以下のような記事を発見しました。

「複数AWSアカウントのCodeCommitからgit cloneする際のssh設定についての覚書」
https://qiita.com/SpeakEasy/items/e92a494a3f6a5f81a74c

簡単に説明すると、SSHコンフィグに任意のホスト名を定義して、そのホスト名で「git clone」するという方法です。「aws1」「aws2」というホスト名をつけた例が記載されています。

git cloneする度にHost部分を書き換えるのがちょっと面倒なので、他にもっと良い方法がないか知りたいところ。

たしかにホストの書き換えを毎回するのは面倒ですね。。。

他の方法がないかGitコマンドのリファレンスを見ていたところ、SSHユーザ指定で「git clone」する方法を見つけましたので、その方法を説明します。

手順

CodeCommitのSSH接続手順

こちらはAWS公式ドキュメントに記載がありますので、詳細は省略します。

複数のAWSアカウントのCodeCommitを扱う場合は、公式の手順に従うと「~/.ssh/config」 の記載が以下のようになります。

~/.ssh/config
# AWSアカウント1
Host git-codecommit.*.amazonaws.com
User A0000000000000000001 #SSHキーID
IdentityFile ~/.ssh/id_rsa

# AWSアカウント2
Host git-codecommit.*.amazonaws.com
User A0000000000000000002 #SSHキーID
IdentityFile ~/.ssh/id_rsa

Git Clone時のSSHパス設定

ホスト名の前に「SSHキーID@」を付けることによって、SSH接続ユーザを指定して「git clone」を行うことが出来ます。

# AWSアカウント1からgit cloneする場合
git clone ssh://A0000000000000000001@git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test_repo

# AWSアカウント2からgit cloneする場合
git clone ssh://A0000000000000000002@git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test_repo

この方法で、それぞれのAWSアカウントのCodecommitにアクセスすることが可能になります。

おわりに

前述のSSHコンフィグに任意のホスト名を指定し接続時のURLを変更して「git clone」する方法と比べると、SSHコンフィグの内容はシンプルにデフォルトのままとなります。

ただし、「git clone」時のSSHパスを変更しないといけないのは変わりないので、好みの方法を使用すれば良いと思います。

また、SourceTreeを使用する場合も、URL/パスにユーザ名付きのSSHパスを設定することで複数のAWSアカウントのCodecommitを使用することが可能です。

18
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?