Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

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 1 year has passed since last update.

MFAを有効化したAWSのIAMユーザーで、スイッチロール先のCodeCommitにGRCを用いてCloneする

Last updated at Posted at 2023-09-09

JumpアカウントにIAMユーザーでログインして、スイッチロール先のCodeCommitにアクセスする方法です。
JumpアカウントのIAMユーザーにはMFAを有効化しています。
このような状況だとGRC(git-remote-codecommit)を用いると簡単にCodeCommitからcloneできます。

前提

  1. Gitはインストール済み
  2. Pythonはインストール済み
  3. AWS CLIはインストール済み
  4. MFAを有効化したIAMユーザーとスイッチロール先のIAMロールは作成済み
  5. CodeCommitリポジトリは作成済み(ここでは「sample」リポジトリにしています)

GRCのインストール

pipを利用してGRCをインストールします。

pip install git-remote-codecommit

詳細は以下のURLを参照してください。
https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-git-remote-codecommit.html

AWS CLIのプロファイル設定

プロファイル(configファイルとcredentialsファイル)を直接修正します。

config
[default]
region = ap-northeast-1
output = json

[profile codecommit-profile]
role_arn = arn:aws:iam::YYYYYYYYYYYY:role/codecommit-role
source_profile = default
mfa_serial = arn:aws:iam::XXXXXXXXXXXX:mfa/ninja-yuki
  • role_arnは、スイッチロール先のIAMロールのARNです。
  • mfa_serialは、マネジメントコンソールでIAMユーザーの「セキュリティ認証情報」から確認できます。
credentials
[default]
aws_access_key_id = AAAAAAAAAAAAAAAAAAAA
aws_secret_access_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
  • aws_access_key_idとaws_secret_access_keyは、自身の値に変更してください。

プロファイルの場所は以下のURLを参考にしてみてください。
https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html

GRCコマンドの確認

マネジメントコンソールでCodeCommitを開き、「URLのクローン」から「HTTPSのクローン(GRC)」をクリックします。
image.png

すると、「codecommit::ap-northeast-1://sample」が表示されます。
スイッチロールをしなければあとは「git clone codecommit::ap-northeast-1://sample」で、cloneできます。

GRCでcloneの実行

スイッチロールを伴う場合、profileを指定する必要があります。

git clone codecommit::ap-northeast-1://codecommit-profile@sample

VSCodeのGUIでGitの操作をする

VSCodeのターミナルでgitコマンドを実行すると、MFAが求められます。
ターミナルでMFAを通すと、VSCodeのGUIを利用できます。
GUIで操作したら長時間固まって動かないことがあります。
そんなときはターミナル「git fetch」などを実行して、再認証すると動きます。
ただ、VSCodeを一度終了しないといけないです。

もしかしたら他にいい方法があるかもしれません。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?