AWS CLIでroleを切り替える

AWS CLIでroleを切り替える

AWS CLIを利用して、いざAWS内に入ろうとすると下記のエラーが表示されることがあります

The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.


You must specify a region. You can also configure your region by running "aws configure".

このようなエラーが表示された場合は、AWS CLIの設定をまだ完全には終えていない状態です。

  • アカウントの紐付け
  • 利用するリージョン
  • roleの切り替え

などが残っています。

そこで、ここでは設定を完了していきたいと思います

目次

本番・開発環境のロールに切り替える

まずはアカウント情報を紐付けます

aws configure

すると順番に入力を求められるので、それぞれ入力します。

AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE  // アクセスキー
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ap-northeast-1
Default output format [None]: json

アクセスキーとシークレットキーの入力

AWS Access Key ID [None]: 自分のアクセスキーを入力

アクセスキーの確認方法ですが、自分のアカウントでセキュリティ認証情報を開きます

するとCLIに利用するアクセスキーIDが表示されます

シークレットアクセスキーに関しては、アクセスキーの生成時にcsvでダウンロードしています

ファイル名は「ユーザー名_accessKeys.csv」となります。

アクセスキーとシークレットアクセスキーはセットですから、シークレットアクセスキーを忘れた場合は、アクセスキーを再度作り直すと良いでしょう

リージョンの入力

Default region name [None]: ap-northeast-1 // 自分が利用するリージョンを記入

どのリージョンの利用したいのか記述します

出力設定

Default output format [None]: json

json形式にします

さらに設定する

vim ~/.aws/config

上記のコマンドを実行すると、先ほど設定したリージョンなどが表示されます。

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

こちらのconfigファイルを更新していきます

source_profile

IAMユーザー認証情報を含む別の名前付きプロファイルです。今回はスイッチロール元のプロファイルであるdefaultを利用します。

[profile test]
region = ap-northeast-1
source_profile = default

MFAに対応する

MFAを設定している場合、mfa_serialを記述する必要があります

[profile test]
region = ap-northeast-1
mfa_serial = arn:aws:iam::xxxxxxxxxxxx:mfa/hoge
source_profile = default

mfa_serialの値を確認するためにセキュリティ認証情報を開きます

画面を開くと多要素認証(MFA)の項目があるので、そこまでスクロールします。

MFAデバイスの割り当てとして、arn:aws:iam::~~が表示されているので、この値をコピーします。

[profile test]
region = ap-northeast-1
mfa_serial = arn:aws:iam::xxxxxxxxxxxx:mfa/アカウント名 // ここに貼り付け
source_profile = default

role_arnの記述

スイッチロールするためにrole_arnを記述します

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


[profile test]
mfa_serial = arn:aws:iam::xxxxxxxxxxxx:mfa/アカウント名
role_arn = arn:aws:iam::アカウントID:role/ロール名
source_profile = default

role_arnの値は、スイッチロール先のIAMロールの画面から取得します。

クラスメソッド

実際にコマンドを実施してみる

aws s3 ls --profile test
Enter MFA code for arn:aws:iam:: // MFAの番号を入力する
// 日付+S3の名前の一覧が表示される

あなたが参照したいS3が出て来れば問題ないです

これで実行できない場合は、IP制限をされているはずなので、VPNを接続して許可されたIPアドレスで実行してください。

–profileを省略する

毎回--profileを入力するのは手間ですよね

そこで、mac内の環境変数に登録しておきます。

export AWS_DEFAULT_PROFILE=test // プロフィール名

これでデフォルトに利用するprofileを登録しました

それでは確認しましょう

aws s3 ls  
// 日付+S3の名前の一覧が表示される

profileオプションを入れた状態と同じように、一覧表示されたら成功です

参考文献

ぎゅう
WEBエンジニア
渋谷でWEBエンジニアとして働く。
LaravelとVue.jsをよく取り扱い、誰でも仕様が伝わるコードを書くことを得意とする。
先輩だろうがプルリクにコメントをして、リファクタしまくる仕様伝わるコード書くマン
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる