本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 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-key、 aws:RequestTag/tag-key和 aws:TagKeys。如需每個條件金鑰的描述,請參閱 使用 DynamoDB 實作 ABAC 的條件鍵。下列行為專屬於 DynamoDB Streams:
-
條件索引鍵適用於在串流上操作的 DynamoDB Streams APIs,包括 TagResource、
UntagResource和讀取 APIs,例如GetRecords。 -
當您的帳戶未啟用 DynamoDB Streams ABAC 時,會評估
aws:ResourceTag條件,就好像沒有標籤連接到串流資源一樣。
搭配 DynamoDB Streams 使用 ABAC 的考量事項
當您搭配 DynamoDB Streams 使用 ABAC 時,適用下列考量:
-
DynamoDB Streams 的 ABAC 與 DynamoDB 資料表的 ABAC 不同。為資料表啟用 ABAC 不會自動為帳戶中的串流啟用它。您必須獨立啟用每個 。
-
您可以在刪除其父資料表之後,使用串流 ARN 上的 CLI 或 SDK
tag-resource、untag-resource和list-tags-of-resource命令來標記或取消標記串流。刪除資料表之前,串流會繼續存在 24 小時。刪除資料表後,無法透過主控台或 CloudFormation 使用此功能。 -
如果您使用 CloudFormation 來管理 DynamoDB 資源,請確定您的服務角色具有
dynamodb:TagResourcedynamodb:UntagResource和串流資源的dynamodb:ListTagsOfResource許可。