説明
広範なiam:CreateAccessKey権限があると、他のIAMユーザーの新しいアクセスキーを作成し、APIアクセスに使える場合があります。対象ユーザーがより強い権限を持つ場合、権限昇格につながるおそれがあります。
想定される影響
- 対象ユーザーのデータやサービスにアクセスできる長期キーが発行されるおそれがあります。
- 不要なキーが残ると、元の権限を変更した後もアクセス経路が維持される場合があります。
対処方法
不要なiam:CreateAccessKey権限を削除し、必要なキー管理は承認された対象ユーザーに限定してください。可能なら一時認証情報を使い、キー作成イベントと既存の長期キーを確認してください。
例
変更後のインラインポリシーは、同じユーザーにEC2の情報取得権限だけを付与します。他のポリシーのキー作成権限も確認し、発行済みのキーは別途無効化または削除してください。
変更前
hcl
resource "aws_iam_user" "example" {
name = "cosmic"
}
resource "aws_iam_user_policy" "example" {
name = "test_inline_policy"
user = aws_iam_user.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"iam:CreateAccessKey",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
変更後
hcl
resource "aws_iam_user" "example" {
name = "cosmic"
}
resource "aws_iam_user_policy" "example" {
name = "inline_policy_read_only"
user = aws_iam_user.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
]
Effect = "Allow"
Resource = "*"
},
]
})
}