説明
glue:UpdateDevEndpointでは、開発エンドポイントの公開キーやライブラリなどを変更できます。ユーザーが接続可能なエンドポイントを制御できると、関連付けられたロールの権限で処理を実行できる場合があります。
想定される影響
- エンドポイントのロールがより強い権限を持つ場合、ユーザーのアクセス範囲が広がるおそれがあります。
- 正常な開発環境が、悪意のあるコードの実行経路に変わるおそれがあります。
対処方法
不要なglue:UpdateDevEndpoint権限を削除してください。必要な管理権限は承認された開発エンドポイントに限定し、エンドポイントのロールにも必要な権限だけを付与して、変更履歴を確認してください。
例
以下は、同じユーザーのインラインポリシーを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 = [
"glue:UpdateDevEndpoint",
]
Effect = "Allow"
Resource = "*"
},
]
})
}
変更後
hcl
resource "aws_iam_user" "example" {
name = "cosmic"
}
resource "aws_iam_user_policy" "example" {
name = "inline_policy_run_instances"
user = aws_iam_user.example.name
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
]
Effect = "Allow"
Resource = "*"
},
]
})
}