概要
AWS Tools for PowerShellでロール切替え用のプロフィールを作る際、MFA不要のロールに対してはMFAデバイスを登録してはいけない。不要に登録すると、このプロファイルでの操作が Error calling AssumeRole for role (ロールのarn)
で失敗する。
詳細
AWS Tools for PowerShellでロール切替えをしたいときは、ロール切替え用のプロファイルを作成するのが便利。作成するプロファイルが MyRole
で使用する認証情報のプロファイルが MyCredProfile
だとして、こんな感じ。 ^
はコマンドが複数行にわたるときのWindows PowerShell環境でのシンボルなので、Linux環境では \
に置き換えてください。
PS> Set-AWSCredential -StoreAs MyRoleProfile -SourceProfile MyCredProfile ^
-RoleArn arn:aws:iam::123456789012:role/MyRole
登録したプロファイルが使用されるように Set-AWSCredential
で指定しておく。
PS> Set-AWSCredential -ProfileName MyRoleProfile
ここでもし使用するロールがMFA(多要素認証)必須の場合、次のようにしてMFAデバイスも登録しておく。
PS> Set-AWSCredential -StoreAs MyRoleProfile -SourceProfile MyCredProfile ^
-RoleArn arn:aws:iam::123456789012:role/MyRole
-MfaSerial arn:aws:iam::123456789012:mfa/MyName
こうすると、コマンドレット実行時に適宜MFAコードを問合わせてくれる。
PS> Get-IAMUserList
Enter MFA code:*******
さて、もしここでロール arn:aws:iam::123456789012:role/MyRole
がMFAを要求しないロールの場合どうなるか?もちろん、MFAコードを聞かれないとか、聞かれても無視されて、操作は成功すると思ってた。でも実際には、エラーになる。
PS> Get-IAMUserList
Enter MFA code:*******
Get-IAMUserList: Error calling AssumeRole for role arn:aws:iam::123456789012:role/MyRole
結論としてAWS Tools for PowerShellでロール切替え用のプロフィールを作る際、MFA不要のロールに対してはMFAデバイスを登録してはいけない。不要に登録すると、このプロファイルでの操作が Error calling AssumeRole for role (ロールのarn)
で失敗する。このエラー内容でこれがいけないのだとは気づきにくいと思うのだけど、気づけないとMFAコード入力し間違えたかなとか認証用プロファイルおかしいだろうかとか無駄な調査をすることになる。