説明
iam:PassRoleは、IAMロールをAWSサービスに渡すための権限です。対象を限定しないと、サービスの操作権限とロールの信頼ポリシーが許す範囲で、意図したよりも強い権限のロールを使える場合があります。
想定される影響
強い権限のロールをサービスに関連付けると、ワークロードが想定以上の権限で動作するおそれがあります。
対処方法
Resourceを必要なIAMロールのARNに限定してください。必要に応じてiam:PassedToService条件で渡す先のサービスも制限し、各ロールの権限と信頼ポリシーを確認してください。
例
以下は、すべてのリソースの代わりに特定のIAMロールを指定する例です。アカウントIDとロール名は、実際に承認された対象に置き換えてください。
変更前
hcl
resource "aws_iam_role_policy" "example" {
name = "test_policy"
role = aws_iam_role.test_role.id
policy = <<-EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"iam:passrole"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
EOF
}
変更後
hcl
resource "aws_iam_role_policy" "example" {
name = "test_policy"
role = aws_iam_role.test_role.id
policy = <<-EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"iam:passrole"
],
"Effect": "Allow",
"Resource": "arn:aws:iam::123456789012:role/ExampleWorkloadRole"
}
]
}
EOF
}