【AWS】MFA(多要素)認証を突破してCodeCommitからgit cloneする
投稿日:
環境
- MacBook Pro (Sonoma14.5 M1チップ)
- aws-cli/2.15.14
- aws-mfa 0.0.12
手順
AWSへのアクセスにMFAが必須である環境においてCodeCommitよりリポジトリをcloneする手順です。
調べても「CodeCommitでMFA不要にする手順」ばかり出てきて手間取ったので、メモを残します。
AWS CLIのインストール
もしAWS CLIが未インストールである場合は以下ページ参考にインストールします。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
aws-mfaのインストール
コマンドラインでAWS操作する際にMFA認証を楽にするツールがあります。
https://github.com/broamski/aws-mfa
こちらをpipでインストールします。
$ pip install aws-mfa
AWS認証情報の確認
AWSのマネジメントコンソールにログイン後、ヘッダー右端にあるアカウント名をクリックすると「セキュリテイ認証情報」というメニューが表示されるので選択します。
そこでアカウントの詳細が表示されるので「ユーザーのARN」を控えておきます。
また、もし自分のAWS アクセスキーを発行していない場合はここで発行します。
少し下へスクロールすると「アクセスキーを作成」というボタンがあるのでそこからアクセスキーが発行できます。
AWS CLI向けアクセスキー設定
AWS CLIにprofileを指定してアクセスキーを紐づけます。
『hoge』というプロファイル名で登録したい場合
『hoge』だけではなく『hoge-long-term』というプロファイルも登録します。
まず『hoge-long-term』の登録をします。
$ aws configure --profile hoge-long-term
AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXX (発行したアクセスキー)
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXX (発行したアクセスキーに紐づくシークレット)
Default region name [None]: ap-northeast-1 (利用するリージョン 任意)
Default output format [None]: json (利用するフォーマット 任意)
次に『hoge』の登録をします。
$ aws configure --profile hoge
AWS Access Key ID [None]: (空のまま)
AWS Secret Access Key [None]: (空のまま)
Default region name [None]: ap-northeast-1 (利用するリージョン 任意)
Default output format [None]: json (利用するフォーマット 任意)
MFA認証登録
以下のコマンドでMFA認証を通します。
コマンド実行後にMFA code(数字6桁)を聞かれるので入力します。
$ aws-mfa --profile 『作成したプロファイル』 --device 『事前に確認したユーザーのARN』
# 例:aws-mfa --profile hoge --device arn:aws:iam::000000000000:mfa/hoge-taro
これでしばらくMFA認証をしなくてもコマンドを打てるようになりました。
有効期限は~/.aws/credentials
を見ると確認できます。
git clone実行
以下のようにprofileを指定して実行することでcloneができます。
$ git clone codecommit::『リージョン』://『作成したプロファイル』@『cloneしたいリポジトリ』
# 例:git clone codecommit::ap-northeast-1://hoge@my-application-repository