本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 DynamoDB 資料表與索引中使用 ABAC
以下步驟示範如何使用 ABAC 設定權限。在此範例中,您將新增標籤至 DynamoDB 資料表,並建立包含標籤式條件的 IAM 角色。接著,您將透過比對標籤條件,測試 DynamoDB 資料表上可用的權限。
步驟 1:將標籤新增至 DynamoDB 資料表
您可以使用 AWS 管理主控台、 AWS API、 AWS Command Line Interface (AWS CLI)、 AWS SDK 或 將標籤新增至新的或現有的 DynamoDB 資料表 AWS CloudFormation。例如,下列 tag-resource CLI 指令會將標籤新增至名為 MusicTable 的資料表。
aws dynamodb tag-resource —resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/MusicTable —tags Key=environment,Value=staging
步驟 2:建立包含標籤式條件的 IAM 角色與政策
使用 aws:ResourceTag/tag-key 條件金鑰建立 IAM 政策,以比較政策中指定的標籤鍵值對與附加至資料表的鍵值對。下列範例政策允許使用者在資料表中放入或更新項目,前提是該資料表包含下列標籤鍵值對:"environment": "staging"。若資料表未具指定的標籤鍵值對,系統將拒絕執行這些操作。
步驟 3:測試允許的權限
-
將 IAM 政策附加至 AWS 帳戶中的測試使用者或角色。確認您使用的 IAM 主體未經由其他政策擁有對 DynamoDB 資料表的存取權限。
-
確認您的 DynamoDB 資料表包含值為
"staging"的"environment"標籤鍵。 -
在已標記的資料表上執行
dynamodb:PutItem和dynamodb:UpdateItem動作。若"environment": "staging"標籤鍵值對存在,這些動作應可成功執行。若在不含
"environment": "staging"標籤鍵值對的資料表上執行這些動作,請求將失敗並返回AccessDeniedException。
您也可以檢閱下一節中說明的其他範例使用案例,以實作 ABAC 並進行更多測試。