説明
グループを通じて広い iam:PutRolePolicy を許可すると、メンバーがロールのインラインポリシーを追加・更新できます。変更したロールを引き受けるか、そのロールを使うワークロードを制御できれば、拡大した権限を利用できるおそれがあります。
ロールポリシーの変更だけでは信頼ポリシーは変わらず、ロールを引き受ける権限も付与されません。対象ロールの境界、組織ポリシー、明示的な拒否も引き続き適用されます。
想定される影響
- ロールを使うサービスに、不要なリソースへのアクセス権限が追加される可能性があります。
- 未承認のロールポリシー変更が、複数のワークロードの実行権限に影響するおそれがあります。
対処方法
一般のグループに不要な iam:PutRolePolicy を削除してください。必要な変更は承認済みの管理ロールで行い、Resource を対象ロール ARN に限定してください。ロールを使う経路とポリシー内容を確認し、正常な作業が成功し、未承認の変更が阻止されることを試験してください。
例
同じグループとインラインポリシーで、ロールポリシーの変更権限を減らす比較です。
変更前
hcl
resource "aws_iam_group" "example" {
name = "cosmic"
}
resource "aws_iam_group_policy" "example" {
name = "test_inline_policy"
group = aws_iam_group.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"iam:PutRolePolicy",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
メンバーに、ロール全体のインラインポリシーを追加・更新する権限を付与します。
変更後
hcl
resource "aws_iam_group" "example" {
name = "cosmic"
}
resource "aws_iam_group_policy" "example" {
name = "test_inline_policy"
group = aws_iam_group.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
この許可文を EC2 の参照操作に限定します。他のポリシーにあるロール変更権限と、参照操作の必要性も確認してください。