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 3 years have passed since last update.

AWS Tools for PowerShellで不要なMFAデバイス登録したプロフィールでのロール切替えが失敗する

Posted at

概要

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コード入力し間違えたかなとか認証用プロファイルおかしいだろうかとか無駄な調査をすることになる。

参照

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?