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

AWS DynamoDB CloudFormation模板验证失败:已加密却提示未加密

排查DynamoDB加密合规检查失败问题

问题场景

用AWS CDK创建了UserActivityXXXX表,指定AWS_MANAGED加密方式,生成的CloudFormation模板里已经设置SSESpecification.SSEEnabled=true,但合规检查工具仍提示表未加密,要求添加SSEEnabled=true属性。

可能的解决方向

1. 显式补充SSEType字段

部分合规检查工具的规则要求必须同时声明SSEEnabled和SSEType,哪怕AWS_MANAGED加密默认使用KMS托管密钥。你可以尝试:

修改CloudFormation模板

在SSESpecification下添加SSEType: KMS:

UserActivityTableXXXX:
    Type: AWS::DynamoDB::Table
    Properties:
      KeySchema:
        - AttributeName: userid
          KeyType: HASH
      AttributeDefinitions:
        - AttributeName: userid
          AttributeType: S
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 5
      SSESpecification:
        SSEEnabled: true
        SSEType: KMS

或修改CDK代码(推荐,保持代码源一致性)

显式指定加密相关配置,让CDK生成包含SSEType的模板:

const userActivityTable = new dynamodb.Table(this, "UserActivityTable", {
    encryption: dynamodb.TableEncryption.AWS_MANAGED,
    // 显式指定使用AWS托管KMS密钥,默认值就是undefined,加上后CDK会生成完整SSE配置
    encryptionKey: undefined,
    partitionKey: {name: "userid", type: dynamodb.AttributeType.STRING}
})

2. 检查CDK版本

旧版本AWS CDK可能在生成DynamoDB加密配置时,不会自动输出SSEType字段,导致合规工具识别失败。建议升级CDK到最新稳定版:

npm install -g aws-cdk

重新部署或生成模板后再进行合规验证。

3. 排查合规工具的规则或版本

如果使用第三方合规工具(如Checkov、Terrascan),可能是工具规则过旧或存在误判:

  • 升级工具到最新版本,重新扫描
  • 查看工具的dynamodb-encryption-check规则定义,确认是否要求SSEType必须存在

验证方法

修改后重新生成CloudFormation模板,再次执行合规验证,确认是否通过。如果还是失败,可以手动在AWS控制台查看该表的加密配置(控制台中表的"加密"标签页会显示"由AWS KMS托管密钥加密"),以此排除工具误判的可能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:40:32