本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
DynamoDB 中使用資源型政策的跨帳戶存取權
您可以使用資源型政策,提供位於不同 AWS 帳戶中可用資源的跨帳戶存取權。如果您具有 AWS 區域 與資源相同的分析器,則資源型政策允許的所有跨帳戶存取將透過 IAM Access Analyzer 外部存取調查結果進行報告。IAM Access Analyzer 會比對 IAM 政策文法和最佳實務來執行政策檢查,以驗證您的政策。這些檢查會產生問題清單並提供可行的建議,協助您撰寫具有功能性且符合安全最佳實務的政策。您可以在 DynamoDB 主控台
如需使用 IAM 存取分析器驗證政策的詳細資訊,請參閱 IAM 使用者指南中的 IAM 存取分析器政策驗證。若要檢視 IAM Access Analyzer 傳回的警告、錯誤和建議清單,請參閱 IAM Access Analyzer 政策檢查參考。
若要授予帳戶 A 的使用者 A GetItem 權限,以便存取帳戶 B 的資料表 B,請依下列步驟操作:
-
將資源型政策附加至資料表 B,以授予使用者 A 執行
GetItem操作的權限。 -
將身分型政策附加至使用者 A,以授予其對資料表 B 執行
GetItem操作的權限。
您可以使用 DynamoDB 主控台
DynamoDB 資料平面與控制平面 API 中的資料表名稱參數可接受完整的 Amazon Resource Name (ARN),以支援跨帳戶作業。若僅提供資料表名稱參數 (未包含完整 ARN),API 作業將在請求者所屬帳戶的資料表上執行。如需使用跨帳戶存取的政策範例,請參閱 跨帳戶存取權資源型政策。
即使其他帳戶的主體讀取或寫入擁有者帳戶中的 DynamoDB 資料表,費用仍由資源擁有者帳戶承擔。若資料表採用預先佈建的輸送量,則來自擁有者與其他帳戶請求者的所有請求總和,將決定請求是否遭到限流 (若停用自動調整),或進行擴增/縮減 (若啟用自動調整)。
所有請求將記錄於擁有者與請求者帳戶的 CloudTrail 日誌中,使雙方均可追蹤資料的存取來源。
與跨帳戶 AWS Lambda 函數共用存取權
帳戶 A 中的 Lambda 函數
-
前往 IAM 主控台
建立 IAM 角色,該角色將用作帳戶 A 中 Lambda 函數的 AWS Lambda 執行角色。新增 AWSLambdaDynamoDBExecutionRole具有所需 DynamoDB Streams 和 Lambda 調用許可的受管 IAM 政策。此政策也會授予您可能在帳戶 A 中存取的所有潛在 DynamoDB Streams 資源的存取權。 -
在 Lambda 主控台
中,建立 AWS Lambda 函數來處理 DynamoDB 串流中的記錄,並在設定執行角色期間,選擇您在上一個步驟中建立的角色。 -
將 Lambda 函數執行角色提供給帳戶 B 的 DynamoDB Streams 擁有者,以設定跨帳戶讀取存取的資源型政策。
-
完成 Lambda 函數的設定。
帳戶 B 中的 DynamoDB 串流
-
從將叫用 Lambda 函數的帳戶 A 取得跨帳戶 Lambda 執行角色。
-
在帳戶 B 的 Amazon DynamoDB 主控台上,選擇 Lambda 跨帳戶觸發條件的資料表。在匯出和串流索引標籤下,找到您的 DynamoDB 串流 ARN。確保 DynamoDB 串流狀態為開啟,並記下完整的串流 ARN,因為您需要它才能執行資源政策。
-
在許可索引標籤下,按一下建立串流政策按鈕以啟動視覺化政策編輯器。如果已存在,請按一下新增陳述式按鈕或編輯政策。
-
建立政策,指定帳戶 A 中的 Lambda 執行角色做為委託人,並授予必要的 DynamoDB Stream 動作。請務必包含動作
dynamodb:DescribeStream、dynamodb:GetRecords、dynamodb:GetShardIterator和dynamodb:ListShards。如需 DynamoDB Streams 資源政策範例的詳細資訊,請參閱 DynamoDB 資源型政策範例。
注意
控制平面 API 的跨帳戶存取權每秒交易數 (TPS) 上限為 500 個請求。