View a markdown version of this page

範例 3:除非有特定標籤,否則拒絕串流存取 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例 3:除非有特定標籤,否則拒絕串流存取

使用 aws:TagKeys條件金鑰,您可以拒絕標記串流,除非請求中包含必要的標籤金鑰。

使用 AWS 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

如果您的 未啟用 Streams ABAC AWS 帳戶,DynamoDB 不會將請求中的標籤索引鍵傳送至 IAM。如果請求中沒有標籤索引鍵, Null條件會確保條件評估為 false。由於拒絕政策不相符,tag-resource命令會成功完成。

使用 Streams ABAC

如果您的 已啟用 Streams ABAC AWS 帳戶,Department則會根據拒絕政策中CostCenter存在的條件型標籤金鑰來評估標籤金鑰。由於StringNotEquals運算子,標籤索引鍵Department不符合拒絕政策中存在的標籤索引鍵。因此, TagResource動作會失敗並傳回 AccessDeniedException。