Amazon EMRクラスターのリストを設定する - Amazon SageMaker

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

Amazon EMRクラスターのリストを設定する

管理者は Studio を設定して、ユーザーがアクセスできる Amazon EMRクラスターのリストを表示できるようにし、これらのクラスターに接続できるようにします。クラスターは、Studio と同じ AWS アカウント (単一アカウントタブを選択) または別のアカウント (クロスアカウントタブを選択) にデプロイできます。

注記

Studio は現在、Studio がデプロイされている AWS アカウントとは異なるアカウントで作成された Amazon EMRクラスターへのアクセスをサポートしていません。クロスアカウントアクセスは Studio Classic でのみ使用できます。

Single account

Amazon EMRクラスターと Studio または Studio Classic が同じ AWS アカウントにデプロイされている場合は、クラスターにアクセスする SageMaker 実行ロールに次のアクセス許可をアタッチします。

注記

どの実行ロールを検討すべきですか?

Studio UI は、起動したユーザープロファイルに関連付けられた実行ロールからアクセス許可を決定します。UI は、起動時にこれらのアクセス許可を設定します。ただし、 JupyterLab または Studio Classic アプリケーションを起動するスペースには、個別のアクセス許可を持つことができます。

アプリケーション (Studio UI、Studio Classic など) 間で Amazon EMR テンプレートとクラスターに一貫してアクセスするには JupyterLab、ドメイン、ユーザープロファイル、またはスペースレベルのすべてのロールに同じアクセス許可のサブセットを付与します。アクセス許可により、Amazon EMRクラスターの検出とプロビジョニングが許可されます。

  1. ドメイン、ユーザープロファイル、またはスペースの実行ロールを検索します。実行ロールを取得する方法については、「」を参照してください実行ロールを取得する

  2. IAM コンソール (https://console.aws.amazon.com/sagemaker/) を開きます。

  3. 「ロール」を選択し、「検索」フィールドにロール名を入力して、作成したロールを検索します。

  4. ロールへのリンクに従います。

  5. アクセス許可を追加 を選択し、インラインポリシー を作成します。

  6. JSON タブで、 アクセス許可を持つ次のJSONポリシーを追加します。

    • AllowSagemakerProjectManagement では、 を作成できます。Studio または Studio Classic では、 へのアクセス AWS Service Catalog は を通じて許可されます

    • AllowClusterDetailsDiscovery と は、Amazon EMRクラスターの検出と接続AllowClusterDiscoveryを許可します。

    • AllowPresignedUrl では、Spark UI にアクセスURLsするための署名付き を作成できます。

    提供された で定義されているIAMポリシーは、これらのアクセス許可JSONを付与します。置換 studio-region また、studio-account ステートメントのリストをロールのインラインポリシーにコピーする前に、実際のリージョンと AWS アカウント ID の値を指定します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. ポリシーに名前を付け、ポリシーの作成 を選択します。

Cross account

Amazon EMRクラスターと Studio または Studio Classic が別々の AWS アカウントにデプロイされている場合は、両方のアカウントに対するアクセス許可を設定します。

Amazon EMRアカウントで

Amazon がデプロイEMRされているアカウントで、信頼するアカウント とも呼ばれ、次の設定ASSUMABLE-ROLEで という名前のカスタムIAMロールを作成します。

  • アクセス許可: Amazon EMRリソースへのアクセスを許可ASSUMABLE-ROLEするために必要なアクセス許可を に付与します。

  • 信頼関係: アクセスが必要な Studio アカウントからロールを引き受けるASSUMABLE-ROLEことを に許可するように、 の信頼ポリシーを設定します。

ロールを引き受けることで、Studio または Studio Classic は Amazon で必要なアクセス許可に一時的にアクセスできますEMR。

  • ロールの新しいポリシーを作成します。

    1. IAM コンソール (https://console.aws.amazon.com/sagemaker/) を開きます。

    2. 左側のメニューで、ポリシー を選択し、ポリシー を作成します。

    3. JSON タブで、 アクセス許可を持つ次のJSONポリシーを追加します。

      • AllowClusterDetailsDiscovery および AllowClusterDiscovery を使用して、Amazon EMRクラスターの検出と接続を許可します。

      • AllowPresignedUrl Spark UI にアクセスURLsするための署名付き の作成を許可する 。

      置換 emr-region また、emr-account をポリシーにコピーする前に、実際のリージョンと AWS アカウント ID の値JSONを入力します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" } ] }
    4. ポリシーに名前を付け、ポリシーの作成 を選択します。

  • という名前のカスタムIAMロールを作成しASSUMABLE-ROLE、新しいポリシーをロールにアタッチします。

    1. IAM コンソールで、左側のメニューでロール を選択し、ロール を作成します。

    2. 信頼されたエンティティタイプ でAWS アカウントを選択し、次に を選択します。

    3. 先ほど作成したアクセス許可を選択し、次へ を選択します。

    4. ロールに名前を付けASSUMABLE-ROLEステップ 1: 信頼できるエンティティを選択する の右側にある編集ボタンを選択します。

    5. 信頼されたエンティティタイプ で、カスタム信頼ポリシーを選択し、次の信頼関係を貼り付けます。これにより、Studio がデプロイされているアカウント (信頼されたアカウント ) に、このロールを引き受けるアクセス許可が付与されます。

      置換 studio-account を実際の AWS アカウント ID で使用します。[Next (次へ)] を選択します。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    6. 先ほど作成したアクセス許可を見つけて選択し、次へを選択します

    7. 信頼ポリシーは、JSON貼り付けた最新の で更新する必要があります。[ロールの作成] を選択します。

Studio アカウントで

Studio または Studio Classic がデプロイされているアカウントで、信頼されたアカウント とも呼ばれます。クラスターにアクセスする SageMaker 実行ロールを次のインラインポリシーで更新します。

このポリシーでは、別のアカウントのリソースを検出するためのクロスアカウントロールの引き受けを許可する必要があります。

注記

どの実行ロールを検討すべきですか?

Studio UI は、起動したユーザープロファイルに関連付けられた実行ロールからアクセス許可を決定します。UI は、起動時にこれらのアクセス許可を設定します。ただし、 JupyterLab または Studio Classic アプリケーションを起動するスペースには、個別のアクセス許可を持つことができます。

アプリケーション (Studio UI、Studio Classic など) 間で Amazon EMR テンプレートとクラスターに一貫してアクセスするには JupyterLab、ドメイン、ユーザープロファイル、またはスペースレベルのすべてのロールに同じアクセス許可のサブセットを付与します。アクセス許可により、Amazon EMRクラスターの検出とプロビジョニングが許可されます。

  1. ドメイン、ユーザープロファイル、またはスペースの実行ロールを検索します。実行ロールを取得する方法については、「」を参照してください実行ロールを取得する

  2. IAM コンソール (https://console.aws.amazon.com/sagemaker/) を開きます。

  3. 「ロール」を選択し、「検索」フィールドにロール名を入力して、作成したロールを検索します

  4. ロールへのリンクに従います。

  5. 実行ロールの詳細ページで、アクセス許可を追加 を選択し、インラインポリシー を作成します。

  6. JSON タブに、次のJSONポリシーを追加します。置換 emr-account をポリシーにコピーする前にJSON、実際の Amazon EMRアカウント ID 値を入力します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
  7. 次へ を選択し、ポリシー名 を指定します。

  8. [Create policy] を選択します。

  9. Studio と同じアカウントにデプロイされた Amazon EMRクラスターを一覧表示できるようにするには、 の単一アカウントタブで定義されているように、Studio 実行ロールにインラインポリシーを追加しますAmazon EMRクラスターのリストを設定する。

Jupyter サーバーの起動ARN時にロールの を渡す

最後に、Studio 実行ロールクロスアカウントアクセスの追加設定に ARNの を提供する方法についてはASSUMABLE-ROLE、「」を参照してください。ARN は、起動時に Jupyter サーバーによってロードされます。Studio が使用する実行ロールは、信頼するアカウント 内の Amazon EMRクラスターを検出するためのクロスアカウントロールを引き受けます。

Studio または Studio Classic ノートブックから Amazon EMRクラスターを検出して接続する方法については、Studio または Studio Classic から Amazon EMRクラスターを一覧表示する「」を参照してください。