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

如何通过CLI为DynamoDB启用服务器端加密?命令执行异常求助

解决DynamoDB通过CLI启用服务器端加密的问题

看起来你在创建表时使用--sse-specification参数遇到了生效问题,大概率是参数格式不正确或者忽略了关键配置项。下面分两种场景给你详细的解决方案:

一、创建新表时启用服务器端加密

正确的CLI命令需要将--sse-specification参数设置为符合要求的JSON结构,以下是完整的示例(包含你提供的Music表结构):

aws dynamodb create-table \
  --table-name Music \
  --attribute-definitions \
    AttributeName=Artist,AttributeType=S \
    AttributeName=SongTitle,AttributeType=S \
  --key-schema \
    AttributeName=Artist,KeyType=HASH \
    AttributeName=SongTitle,KeyType=RANGE \
  --provisioned-throughput \
    ReadCapacityUnits=5,WriteCapacityUnits=5 \
  --sse-specification '{"SSEEnabled": true, "SSEType": "KMS"}'

参数说明:

  • SSEEnabled: 必须设为true才能开启加密
  • SSEType: 可选值为KMS(默认)或AWS_MANAGED(注:AWS_MANAGED是DynamoDB专属的默认密钥,无需额外KMS配置)
  • 如果你想使用自定义KMS密钥,可以添加KMSMasterKeyId字段,比如:
    {"SSEEnabled": true, "SSEType": "KMS", "KMSMasterKeyId": "arn:aws:kms:us-east-1:123456789012:key/your-key-id"}
    

二、为已有的生产表启用加密

如果你的生产表已经存在,不需要重建,直接用update-table命令修改加密配置即可:

aws dynamodb update-table \
  --table-name Music \
  --sse-specification '{"SSEEnabled": true, "SSEType": "KMS"}'

注意:对现有表启用加密后,新写入的数据会立即加密,DynamoDB会在后台自动加密已有数据,这个过程无需停机或暂停服务,也不会影响表的可用性。

三、排查参数不生效的常见原因

  • CLI版本过旧:旧版本的AWS CLI可能不支持--sse-specification参数,执行aws --version检查,建议升级到最新版本:
    pip install awscli --upgrade
    
  • JSON格式错误:确保--sse-specification后的JSON字符串没有语法错误,比如引号、逗号是否正确,在Linux/macOS下用单引号包裹JSON,Windows下用双引号并转义内部的双引号。
  • 权限不足:执行命令的IAM用户/角色需要拥有dynamodb:CreateTable或dynamodb:UpdateTable权限,以及对应的KMS权限(如果使用自定义KMS密钥)。

四、验证加密是否生效

执行以下命令查看表的加密配置:

aws dynamodb describe-table --table-name Music --query "Table.SSESpecification"

如果返回结果中SSEEnabled为true,则说明加密已成功启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:15:29