

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

# DynamoDB 中使用資源型政策的跨帳戶存取權
<a name="rbac-cross-account-access"></a>

您可以使用資源型政策，提供位於不同 AWS 帳戶中可用資源的跨帳戶存取權。如果您具有 AWS 區域 與資源相同的分析器，則資源型政策允許的所有跨帳戶存取將透過 IAM Access Analyzer 外部存取調查結果進行報告。IAM Access Analyzer 會比對 IAM [政策文法](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html)和[最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)來執行政策檢查，以驗證您的政策。這些檢查會產生問題清單並提供可行的建議，協助您撰寫具有功能性且符合安全最佳實務的政策。您可以在 [DynamoDB 主控台](https://console.aws.amazon.com/dynamodb/)的**權限**分頁中，檢視 IAM 存取分析器的有效調查結果。

如需使用 IAM 存取分析器驗證政策的詳細資訊，請參閱 *IAM 使用者指南*中的 [IAM 存取分析器政策驗證](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。若要檢視 IAM Access Analyzer 傳回的警告、錯誤和建議清單，請參閱 [IAM Access Analyzer 政策檢查參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html)。

若要授予帳戶 A 的使用者 A [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html) 權限，以便存取帳戶 B 的資料表 B，請依下列步驟操作：

1. 將資源型政策附加至資料表 B，以授予使用者 A 執行 `GetItem` 操作的權限。

1. 將身分型政策附加至使用者 A，以授予其對資料表 B 執行 `GetItem` 操作的權限。

您可以使用 [DynamoDB 主控台](https://console.aws.amazon.com/dynamodb/)中的**預覽外部存取**選項，預覽新政策對資源公有及跨帳戶存取權的影響。在儲存政策之前，您可以檢查它是否引入新的 IAM Access Analyzer 問題清單，或是解決現有的問題清單。如果您沒有看到作用中的分析器，請選擇 **Go to Access Analyzer** (移至 Access Analyzer)，以在 IAM Access Analyzer 中[建立帳戶分析器](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling)。如需詳細資訊，請參閱[預覽存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html)。

DynamoDB 資料平面與控制平面 API 中的資料表名稱參數可接受完整的 Amazon Resource Name (ARN)，以支援跨帳戶作業。若僅提供資料表名稱參數 (未包含完整 ARN)，API 作業將在請求者所屬帳戶的資料表上執行。如需使用跨帳戶存取的政策範例，請參閱 [跨帳戶存取權資源型政策](rbac-examples.md#rbac-examples-cross-account)。

即使其他帳戶的主體讀取或寫入擁有者帳戶中的 DynamoDB 資料表，費用仍由資源擁有者帳戶承擔。若資料表採用預先佈建的輸送量，則來自擁有者與其他帳戶請求者的所有請求總和，將決定請求是否遭到限流 (若停用自動調整)，或進行擴增/縮減 (若啟用自動調整)。

所有請求將記錄於擁有者與請求者帳戶的 CloudTrail 日誌中，使雙方均可追蹤資料的存取來源。

## 與跨帳戶 AWS Lambda 函數共用存取權
<a name="rbac-analyze-cross-account-lambda-access"></a>

**帳戶 A 中的 Lambda 函數**

1. 前往 [IAM 主控台](https://console.aws.amazon.com/iam/)建立 IAM 角色，該角色將用作帳戶 A 中 Lambda 函數的 AWS Lambda [執行角色](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)。新增`AWSLambdaDynamoDBExecutionRole`具有所需 DynamoDB Streams 和 Lambda 調用許可的受管 IAM 政策。此政策也會授予您可能在帳戶 A 中存取的所有潛在 DynamoDB Streams 資源的存取權。

1. 在 [ Lambda 主控台](https://console.aws.amazon.com/lambda/)中，建立 AWS Lambda 函數來處理 DynamoDB 串流中的記錄，並在設定執行角色期間，選擇您在上一個步驟中建立的角色。

1. 將 Lambda 函數執行角色提供給帳戶 B 的 DynamoDB Streams 擁有者，以設定跨帳戶讀取存取的資源型政策。

1. 完成 Lambda 函數的設定。

**帳戶 B 中的 DynamoDB 串流**

1. 從將叫用 Lambda 函數的帳戶 A 取得跨帳戶 Lambda 執行角色。

1. 在帳戶 B 的 Amazon DynamoDB 主控台上，選擇 Lambda 跨帳戶觸發條件的資料表。在**匯出和串流**索引標籤下，找到您的 DynamoDB 串流 ARN。確保 DynamoDB 串流狀態為開啟，並記下完整的串流 ARN，因為您需要它才能執行資源政策。

1. 在**許可**索引標籤下，按一下**建立串流政策**按鈕以啟動視覺化政策編輯器。如果已存在，請按一下**新增陳述**式按鈕或編輯政策。

1. 建立政策，指定帳戶 A 中的 Lambda 執行角色做為委託人，並授予必要的 DynamoDB Stream 動作。請務必包含動作 `dynamodb:DescribeStream`、`dynamodb:GetRecords`、 `dynamodb:GetShardIterator`和 `dynamodb:ListShards`。如需 DynamoDB Streams 資源政策範例的詳細資訊，請參閱 [ DynamoDB 資源型政策範例](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html)。

**注意**  
[控制平面 API](HowItWorks.API.md#HowItWorks.API.ControlPlane) 的跨帳戶存取權每秒交易數 (TPS) 上限為 500 個請求。