これは何?
IAMロールに対してスイッチロールする際にIMAユーザーのタグの有無で切り替え許可を与えられるかを検証したため、その結果をまとめたものです。
対応方法
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<AWSアカウントID>:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/CodeApproval": "true"
}
}
}
]
}
※aws:PrincipalTagの部分に対し、1にて設定したタグを設定する
3. 実際にスイッチロールを行い、結果を確認する
指定したタグが付与されている場合(成功)
→「現在アクティブです」の部分に対象のIAMロール名が表示されていればOK
指定したタグが付与されていない場合(失敗)
→「Invalid information in one or more fields」というエラーメッセージが表示される
最後に
IAMユーザーに対しタグを設定することで、特定のIAMロールに対してのスイッチロールの許可を与えるかどうかを制御できることが確認できました。
使用例として、IAMロールで許可する類のリソース(CodeCommitの承認ルールとか)を制御する際に、タグを使うことで柔軟に設定できるので、有効活用してもらえると幸いです。