- Terraformを実行して IAM user
a-user
と IAM Rolemfa-role
を作成します。a-user
はmfa-role
にAssumeRoleできます。mfa-role
は 同一アカウントからの AssumeRoleを許可しますが利用には mfaが必須です。mfa-role
は S3 へのフルアクセスを持っています。 ~/.aws/credentials
を作成します。~/.aws/credentials
の a-user プロファイルは IAM Usera-user
の aws access/secretkey の入力に使います。~/.aws/config
を作成します。~/.aws/config
で、 mfa-role プロファイルは、a-user
からmfa-role
にAssumeRoleし利用すること。mfa-role
が求めるmfaにmfa_serial
で指定した に IAM Usera-user
の仮想MFAデバイスのarnを使うことを宣言します。mfa_serial
によって、aws cli はmfaが必要な時に自動的にプロンプトを行います。
準備ができました。aws cli で mfa-role
プロファイルとして s3一覧取得を実行しましょう。
コマンドを実行すると、.aws/config
で指定した IAM User の MFAデバイスのパスコード入力が求められます。TOTP を入力すると、IAM Role mfa-role
に付与されたポリシーに従って S3 バケットのリストを列挙します。
S3 アクセス権限は IAM User a-user
にはなかったので、mfa-role
に AssumeRole され、また MFA が必須になっていることがわかります。