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

如何手动生成Amazon DynamoDB Encryption Client签名与描述字段?

手动生成DDB签名字段以修复格式错误条目

由于目标数据库采用版本化条目机制,我们无需修改错误旧条目,只需新增一条格式正确的条目即可替代。以下是手动生成amzn-ddb-map-sig和amzn-ddb-map-desc字段的步骤:

1. 生成amzn-ddb-map-desc字段

该字段是条目结构的JSON描述,必须与应用中合法条目的结构完全匹配,包括字段名、类型和顺序。常见的DDB字段类型有S(字符串)、N(数字)、B(二进制)等。

示例(假设条目包含id、corrected_data、version三个字段):

{"fields": [{"name": "id", "type": "S"}, {"name": "corrected_data", "type": "S"}, {"name": "version", "type": "N"}]}

2. 生成amzn-ddb-map-sig字段

该签名是基于amzn-ddb-map-desc的哈希值,通常采用HMAC-SHA256算法(具体取决于应用的签名逻辑),生成步骤如下:

  • 对amzn-ddb-map-desc的JSON字符串进行无空格压缩(移除所有空格、换行符)
  • 使用应用对应的签名密钥,对压缩后的字符串执行HMAC-SHA256哈希,再转为Base64编码

示例CLI命令(用OpenSSL生成)

# 定义压缩后的描述字符串
COMPRESSED_DESC='{"fields":[{"name":"id","type":"S"},{"name":"corrected_data","type":"S"},{"name":"version","type":"N"}]}'
# 替换为实际的应用签名密钥
SIGNING_KEY="your-app-signing-key"

# 生成签名
echo -n "$COMPRESSED_DESC" | openssl dgst -sha256 -hmac "$SIGNING_KEY" -binary | base64

注意事项

  • 务必保证amzn-ddb-map-desc与应用中正常条目的描述完全一致,任何字段顺序、类型的偏差都会导致签名验证失败
  • 新增条目时设置比错误条目更高的版本号,确保应用优先加载新条目
  • 新增完成后,可通过DDB CLI的aws dynamodb get-item命令验证条目是否能被正常识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:00:03