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

如何编写IAM策略允许仅更新DynamoDB深层嵌套属性?

实现DynamoDB深层嵌套属性的细粒度更新权限

可以通过IAM策略结合DynamoDB的条件表达式,实现仅允许用户更新指定深层嵌套属性的需求。

具体实现方案

编写IAM策略时,通过Condition元素限定用户只能操作目标嵌套属性路径,示例策略如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "dynamodb:UpdateItem",
      "Resource": "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/YOUR_TABLE_NAME",
      "Condition": {
        "ForAllValues:StringEquals": {
          "dynamodb:UpdatedKeys": [
            "Parent_Prop_1.child_prop_1.sub_child_prop_1"
          ]
        }
      }
    }
  ]
}

关键说明

  • dynamodb:UpdatedKeys:这个条件键会检查用户在UpdateItem操作中实际修改的属性路径列表,确保所有被修改的属性都严格匹配指定的嵌套路径。
  • 路径写法:DynamoDB中嵌套属性的路径直接用点(.)分隔层级,和你示例中的Parent_Prop_1.child_prop_1.sub_child_prop_1格式一致。
  • 权限限制:用户只能对该嵌套属性执行更新操作,尝试修改其他属性(比如Parent_Prop_2下的子属性、Id等)都会被策略拒绝。

验证逻辑

当用户发起UpdateItem请求时,必须只针对Parent_Prop_1.child_prop_1.sub_child_prop_1进行修改,例如使用如下UpdateExpression:

SET Parent_Prop_1.child_prop_1.sub_child_prop_1 = :newValue

如果请求中包含其他属性的修改,IAM策略会直接拦截该请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:46:08