IAMグループに過剰なlambda:UpdateFunctionCode権限がある

Lambdaのコード変更権限を承認された関数に限定してください。

説明

lambda:UpdateFunctionCodeでは、Lambda関数のコードを変更できます。グループのメンバーが変更したコードが実行されると、関数の実行ロールの権限で動作します。

想定される影響

実行ロールに許可されたデータアクセスが悪用されたり、関数の正常な動作が改変されたりするおそれがあります。

対処方法

不要なコード変更権限を削除し、必要なデプロイ権限は承認された関数に限定してください。実行ロールの権限も最小限にし、コード変更をレビューしてください。

例

以下は、Lambdaのコード変更権限を削除し、同じグループにEC2の情報取得権限だけを残す例です。すでにデプロイされたコードを元に戻す変更ではありません。

変更前

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 = [
          "lambda:UpdateFunctionCode",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}

変更後

hcl
resource "aws_iam_group" "example" {
  name = "cosmic"
}

resource "aws_iam_group_policy" "example" {
  name = "inline_policy_run_instances"
  group = aws_iam_group.example.name

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = [
          "ec2:Describe*",
        ]
        Effect   = "Allow"
        Resource = "*"
      },
    ]
  })
}

参考資料