View a markdown version of this page

示例 3:除非存在特定标签,否则拒绝流访问 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

示例 3:除非存在特定标签,否则拒绝流访问

使用 aws:TagKeys 条件键,除非请求中包含所需的标签键,否则您可以拒绝为流添加标签。

使用 Amazon CLI

  1. 将客户管理型策略添加到具有 DynamoDB 访问权限的角色中,如以下示例所示。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:TagResource" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "Null": { "aws:TagKeys": "false" }, "ForAllValues:StringNotEquals": { "aws:TagKeys": "CostCenter" } } } ] }
  2. 代入该角色,并尝试使用不是 CostCenter 的标签键为流添加标签。

    aws dynamodb tag-resource \ --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/myMusicTable/stream/2024-01-01T00:00:00.000 \ --tags Key=Department,Value=Engineering

带和不带 Streams ABAC 时的行为

不带 Streams ABAC

如果您未为您的 Amazon Web Services 账户启用 Streams ABAC,则 DynamoDB 不会在请求中将标签键发送到 IAM。Null 条件可确保在请求中没有标签键时,条件的计算结果为 false。由于拒绝策略不匹配,因此 tag-resource 命令成功完成。

带 Streams ABAC

如果为您的 Amazon Web Services 账户启用了 Streams ABAC,则标签键 Department 将根据拒绝策略中存在的基于条件的标签键 CostCenter 进行评估。由于 StringNotEquals 运算符的原因,标签键 Department 与拒绝策略中存在的标签键不匹配。因此,TagResource 操作失败并返回 AccessDeniedException。