クロスアカウントアクセスのセットアップ - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クロスアカウントアクセスのセットアップ

EMR Serverless のクロスアカウントアクセスを設定するには、次の手順を実行します。この例では、AccountA は Amazon EMR Serverless アプリケーションを作成したアカウントであり、AccountB は Amazon DynamoDB があるアカウントです。

  1. AccountB で DynamoDB テーブルを作成します。詳細については、ステップ 1: テーブルを作成するを参照してください。

  2. AccountB に、DynamoDB テーブルにアクセスできる Cross-Account-Role-B IAM ロールを作成します。

    1. にサインイン AWS Management Console し、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

    2. [ロール] を選択し、Cross-Account-Role-B という新しいロールを作成します。IAM ロールの作成方法の詳細については、ユーザーガイドの「IAM ロールの作成」を参照してください。

    3. クロスアカウント DynamoDB テーブルへのアクセス権限を付与する IAM ポリシーを作成します。IAM ポリシーを Cross-Account-Role-B にアタッチします。

      DynamoDB テーブル CrossAccountTable へのアクセスを許可するポリシーを次に示します。

    4. Cross-Account-Role-B ロールの信頼関係を編集します。

      ロールの信頼関係を設定するには、IAM コンソールで、ステップ 2: Cross-Account-Role-B で作成したロールの [信頼関係] タブを選択します。

      [信頼関係の編集] を選択し、次のポリシードキュメントを追加します。このドキュメントでは、AccountAJob-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" } ] }
    5. - STS Assume role を持つ AccountAJob-Execution-Role-A に、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. core-site 分類で値を com.amazonaws.emr.AssumeRoleAWSCredentialsProvider として dynamodb.customAWSCredentialsProvider プロパティを設定します。環境変数 ASSUME_ROLE_CREDENTIALS_ROLE_ARN に ARN 値 Cross-Account-Role-B を設定します。

  3. Job-Execution-Role-A を使用して Spark ジョブまたは Hive ジョブを実行します。