説明
グループを通じて広い iam:SetDefaultPolicyVersion を許可すると、メンバーがカスタマー管理ポリシーの既存バージョンをデフォルトに設定できます。自身に適用されるポリシーに、より多くの権限を許可する旧バージョンが残っていれば、有効化してアクセスを拡大できるおそれがあります。
この操作は新しいポリシー内容を作らず、既存バージョンを選択します。影響はその内容と適用先によって異なり、他の適用可能な制限や明示的な拒否も引き続き適用されます。
想定される影響
- 以前削除した権限が、ポリシーを共有する複数の主体に再び適用される可能性があります。
- 旧バージョンへの切り替えで、承認済みの権限縮小が取り消されるおそれがあります。
対処方法
一般グループに不要な iam:SetDefaultPolicyVersion を削除し、Resource を承認済みのカスタマー管理ポリシー ARN に限定してください。有効化するバージョンの内容と適用先を確認してください。新しいバージョンをデフォルトにできる iam:CreatePolicyVersion も制限し、承認された変更が機能し、未承認の変更が阻止されることを試験してください。
例
同じグループのインラインポリシーで、管理ポリシーのデフォルトバージョンを変更する権限を付与する比較です。インラインポリシー自体のバージョンを変更する例ではありません。
変更前
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:SetDefaultPolicyVersion",
]
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 の参照操作だけを残します。他のポリシーのバージョン管理権限と、必要な参照範囲も確認してください。