View a markdown version of this page

搭配 DynamoDB Streams 使用屬性型存取控制 - Amazon DynamoDB

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

搭配 DynamoDB Streams 使用屬性型存取控制

DynamoDB Streams 支援屬性型存取控制 (ABAC),與中所述的相同授權策略對 DynamoDB 使用資源型政策。使用 DynamoDB Streams ABAC,您可以將標籤連接至串流,並在 IAM 政策中使用標籤型條件來控制對它們的存取。

串流資源不會繼承其父資料表的標籤,而且您可以獨立管理串流上的標籤。您可以為每個 DynamoDB 串流新增最多 50 個標籤。串流上所有標籤支援的大小上限為 10 KB。如需標記 DynamoDB 資源和標記限制的詳細資訊,請參閱 將標籤新增至 DynamoDB 中的資源DynamoDB 中的標記限制

您可以使用 aws:ResourceTag 條件金鑰,根據連接至該串流的標籤來允許或拒絕對串流的存取。例如,下列政策允許對包含值environment為 之標籤索引鍵的任何串流執行 GetRecords動作production

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetRecords" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "production" } } } ] }

使用 DynamoDB Streams 實作 ABAC 的條件索引鍵

DynamoDB Streams ABAC 使用與 DynamoDB 資料表相同的條件索引鍵:aws:ResourceTag/tag-keyaws:RequestTag/tag-keyaws:TagKeys。如需每個條件金鑰的描述,請參閱 使用 DynamoDB 實作 ABAC 的條件鍵。下列行為專屬於 DynamoDB Streams:

  • 條件索引鍵適用於在串流上操作的 DynamoDB Streams APIs,包括 TagResourceUntagResource和讀取 APIs,例如 GetRecords

  • 當您的帳戶未啟用 DynamoDB Streams ABAC 時,會評估aws:ResourceTag條件,就好像沒有標籤連接到串流資源一樣。

搭配 DynamoDB Streams 使用 ABAC 的考量事項

當您搭配 DynamoDB Streams 使用 ABAC 時,適用下列考量:

  • DynamoDB Streams 的 ABAC 與 DynamoDB 資料表的 ABAC 不同。為資料表啟用 ABAC 不會自動為帳戶中的串流啟用它。您必須獨立啟用每個 。

  • 您可以在刪除其父資料表之後,使用串流 ARN 上的 CLI 或 SDK tag-resourceuntag-resourcelist-tags-of-resource命令來標記或取消標記串流。刪除資料表之前,串流會繼續存在 24 小時。刪除資料表後,無法透過主控台或 CloudFormation 使用此功能。

  • 如果您使用 CloudFormation 來管理 DynamoDB 資源,請確定您的服務角色具有 dynamodb:TagResourcedynamodb:UntagResource和串流資源的dynamodb:ListTagsOfResource許可。