

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 设置跨账户访问
<a name="using-ddb-connector-xaccount"></a>

要为 Amazon EMR Serverless 设置跨账户访问权限，请完成以下步骤。在示例中，`AccountA` 是您创建 Amazon EMR Serverless 应用程序的账户，`AccountB` 是您的 Amazon DynamoDB 所在的账户。

1. 在 `AccountB` 中创建 DynamoDB 表。有关更多信息，请参阅[步骤 1：创建表](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html)。

1. 在 `AccountB` 中创建一个可访问 DynamoDB 表的 `Cross-Account-Role-B` IAM 角色。

   1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

   1. 选择**角色**，然后创建一个名为 `Cross-Account-Role-B` 的新角色。有关如何创建 IAM 角色的更多信息，请参阅*用户指南*中的[创建 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)。

   1. 创建一个 IAM 策略，授予访问跨账户 DynamoDB 表的权限。然后将 IAM policy 附加到 `Cross-Account-Role-B`。

      以下是授予对 DynamoDB 表 `CrossAccountTable` 的访问权限的策略。

   1. 编辑 `Cross-Account-Role-B` 角色的信任关系。

      要为角色配置信任关系，请在 IAM 控制台中为在*步骤 2:* 中创建的角色选择**信任关系**选项卡 Cross-Account-Role-B。

      选择**编辑信任关系**，然后添加以下策略文档。本文档允许 `AccountA` 中的 `Job-Execution-Role-A` 代入此 `Cross-Account-Role-B` 角色。

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "sts:AssumeRole"
            ],
            "Resource": "arn:aws:iam::123456789012:role/Job-Execution-Role-A",
            "Sid": "AllowSTSAssumerole"
          }
        ]
      }
      ```

------

   1. 授予 `AccountA` 中的 `Job-Execution-Role-A` 代入 `Cross-Account-Role-B` 的 `- STS Assume role` 权限。

      在的 IAM 控制台中 AWS 账户 `AccountA`，选择`Job-Execution-Role-A`。添加以下 `Job-Execution-Role-A` 策略语句以便对 `Cross-Account-Role-B` 角色执行 `AssumeRole` 操作。

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "sts:AssumeRole"
            ],
            "Resource": [
              "arn:aws:iam::123456789012:role/Cross-Account-Role-B"
            ],
            "Sid": "AllowSTSAssumerole"
          }
        ]
      }
      ```

------

   1. 在核心站点分类中将 `dynamodb.customAWSCredentialsProvider` 属性的值设置为 `com.amazonaws.emr.AssumeRoleAWSCredentialsProvider`。使用 `Cross-Account-Role-B` 的 ARN 值设置环境变量 `ASSUME_ROLE_CREDENTIALS_ROLE_ARN`。

1. 使用 `Job-Execution-Role-A` 运行 Spark 或 Hive 作业。