You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CMK加密的DynamoDB表,IAM权限需包含CMK访问权限吗?

关于DynamoDB使用CMK加密时的IAM权限要求

是的,你需要为IAM角色/策略添加对该客户管理密钥(CMK)的访问权限。

当你使用CMK加密DynamoDB表时,DynamoDB会在后台调用AWS KMS服务完成数据的加密和解密操作。因此,执行DynamoDB读写操作(如dynamodb:GetItem、dynamodb:PutItem)的IAM身份,必须同时具备两类权限:

  • 对应的DynamoDB操作权限(比如dynamodb:GetItem)
  • KMS层面的权限,允许使用该CMK进行加密解密,具体所需权限包括:
    • kms:Decrypt:读取数据时解密存储内容
    • kms:Encrypt:写入数据时加密新内容
    • kms:GenerateDataKey:DynamoDB生成数据密钥加密表数据时需要此权限

如果缺少KMS相关权限,即便拥有完整的DynamoDB操作权限,执行读写操作时也会触发AccessDeniedException权限拒绝错误。

举个IAM策略示例,假设你的CMK ARN为arn:aws:kms:us-east-1:123456789012:key/abc123,DynamoDB表ARN为arn:aws:dynamodb:us-east-1:123456789012:table/MyEncryptedTable,策略需包含:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/MyEncryptedTable"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/abc123"
        }
    ]
}

注意:若使用AWS管理的KMS密钥而非客户管理CMK,则无需额外添加KMS权限,AWS会自动处理权限逻辑;但客户管理密钥必须显式授予上述KMS权限。

内容的提问来源于stack exchange,提问作者Bin Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:13:18