設定跨帳戶存取權 - Amazon EMR

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

設定跨帳戶存取權

若要設定 EMR Serverless 的跨帳戶存取,請完成下列步驟。在此範例中, AccountA 是您建立 Amazon EMR Serverless 應用程式的帳戶,而 AccountB是 Amazon DynamoDB 所在的帳戶。

  1. 在 中建立 DynamoDB 資料表AccountB。如需詳細資訊,請參閱步驟 1:建立資料表

  2. Cross-Account-Role-B 中建立可存取 DynamoDB 資料表的 AccountB IAM 角色。

    1. 登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/iam/ 的 IAM 主控台。

    2. 選擇角色,然後建立名為 的新角色Cross-Account-Role-B。如需如何建立 IAM 角色的詳細資訊,請參閱《 使用者指南》中的建立 IAM 角色

    3. 建立 IAM 政策,授予存取跨帳戶 DynamoDB 資料表的許可。然後,將 IAM 政策附接至 Cross-Account-Role-B

      以下是授予 DynamoDB 資料表 存取權的政策CrossAccountTable

    4. 編輯 Cross-Account-Role-B 角色的信任關係。

      若要設定角色的信任關係,請在 IAM 主控台中為您在步驟 2:Cross-Account-Role-B 中建立的角色選擇信任關係索引標籤。

      選取編輯信任關係,然後新增下列政策文件。本文件允許 Job-Execution-Role-A中的 AccountA擔任此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" } ] }
    5. 授予 Job-Execution-Role-A AccountA 以擔任 的- STS Assume role許可Cross-Account-Role-B

      在 的 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" } ] }
    6. dynamodb.customAWSCredentialsProvider 屬性的值設定為核心網站分類com.amazonaws.emr.AssumeRoleAWSCredentialsProvider中的 。設定 ARN 值ASSUME_ROLE_CREDENTIALS_ROLE_ARN為 的環境變數Cross-Account-Role-B

  3. 使用 執行 Spark 或 Hive 任務Job-Execution-Role-A