翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Studio で Amazon EMRクラスターアクセスのIAMランタイムロールを設定する
Studio または Studio Classic ノートブックから Amazon EMRクラスターに接続すると、ランタイムIAMロールと呼ばれるロールのリストを視覚的に参照し、その場で選択することができます。その後、ノートブックから作成されたすべての Apache Spark、Apache Hive、または Presto ジョブは、ランタイムロールにアタッチされたポリシーで許可されているデータとリソースにのみアクセスします。また、 で管理されているデータレイクからデータにアクセスする場合 AWS Lake Formation、ランタイムロールにアタッチされたポリシーを使用して、テーブルレベルおよび列レベルのアクセスを適用できます。
この機能により、各自がデータへのアクセスレベルに合ったアクセス許可でスコープされたランタイムロールを使用して、自分とチームメイトが同じクラスターに接続できます。また、セッションは共有クラスター上で相互に分離されます。
Studio Classic を使用してこの機能を試すには、EMR「Amazon SageMaker Studio Classic の AWS Lake Formation および Amazon できめ細かなデータアクセスコントロールを適用する
前提条件
使用を開始する前に、次の前提条件を満たしていることを確認します。
-
Amazon EMRバージョン 6.9 以降を使用します。
-
Studio Classic ユーザーの場合: Studio Classic Jupyter サーバーアプリケーション設定で JupyterLab バージョン 3 を使用します。このバージョンは、ランタイムロールを使用した Amazon EMRクラスターへの Studio Classic 接続をサポートしています。
Studio ユーザーの場合: SageMaker ディストリビューションイメージバージョン
1.10
以降を使用します。 -
クラスターのセキュリティ設定でランタイムロールの使用を許可します。詳細については、「Amazon EMR ステップのランタイムロール」を参照してください。
-
「Studio または Studio Classic から Amazon EMRクラスターに接続するためのサポートされているイメージとカーネル」に記載されているカーネルのいずれかを使用してノートブックを作成します。
-
ランタイムロールを設定するにはランタイムIAMロールを使用するように Studio を設定する、「」の手順を確認してください。
クロスアカウント接続シナリオ
ランタイムロール認証は、データが Studio アカウントの外にある場合に、さまざまなクロスアカウント接続シナリオをサポートします。次の図は、Amazon EMRクラスター、データ、さらには Amazon EMR ランタイム実行ロールを Studio アカウントとデータアカウント間で割り当てる 3 つの異なる方法を示しています。
オプション 1 では、Amazon EMRクラスターと Amazon EMR ランタイム実行ロールは Studio アカウントとは別のデータアカウントにあります。Amazon EMR アクセスロールを引き受けるアクセス許可を Studio または Studio Classic の実行ロールに付与する個別の Amazon EMR アクセスロール ( とも呼ばれますAssumable role
) アクセス許可ポリシーを定義します。次に、Amazon EMR アクセスロールは Studio または Studio Classic の実行ロールEMRAPIGetClusterSessionCredentials
に代わって Amazon を呼び出し、クラスターへのアクセスを許可します。
オプション 2 では、Amazon EMRクラスターと Amazon EMR ランタイム実行ロールは Studio アカウントにあります。Studio 実行ロールには、Amazon EMR API GetClusterSessionCredentials
を使用してクラスターにアクセスするアクセス許可があります。Amazon S3 バケットにアクセスするには、Amazon EMRランタイム実行ロールにクロスアカウント Amazon S3 バケットアクセス許可を付与します。Amazon S3 バケットポリシー内でこれらのアクセス許可を付与します。
オプション 3 では、Amazon EMRクラスターは Studio アカウントにあり、Amazon EMR ランタイム実行ロールはデータアカウントにあります。Studio または Studio Classic の実行ロールには、Amazon EMR API GetClusterSessionCredentials
を使用してクラスターにアクセスするアクセス許可があります。Amazon EMR ランタイム実行ロール を実行ロール設定 に追加しますJSON。その後、クラスターを選択するときに UI でロールを選択できます。実行ロール設定JSONファイルを設定する方法の詳細については、「」を参照してください実行ロールを Studio または Studio Classic に事前ロードする。
ランタイムIAMロールを使用するように Studio を設定する
Amazon EMRクラスターのランタイムロール認証を確立するには、必要なIAMポリシー、ネットワーク、およびユーザビリティの強化を設定します。Amazon EMRクラスター、Amazon EMRランタイム実行ロール、またはその両方が Studio アカウントの外部にある場合、クロスアカウント配置を処理するかどうかによってセットアップは異なります。以下のセクションでは、インストールするポリシー、クロスアカウント間のトラフィックを許可するようにネットワークを設定する方法、および Amazon EMR接続を自動化するように設定するためのローカル設定ファイルについて説明します。
Amazon EMRクラスターと Studio が同じアカウントにある場合にランタイムロール認証を設定する
Amazon EMRクラスターが Studio アカウントにある場合は、次の手順を実行して Studio 実行ポリシーに必要なアクセス許可を追加します。
-
Amazon EMRクラスターに接続するために必要なIAMポリシーを追加します。詳細については、「Amazon EMRクラスターのリストを設定する」を参照してください。
-
ポリシーで指定された 1 つ以上の許可された Amazon EMR ランタイム実行ロールを渡すEMRAPI
GetClusterSessionCredentials
ときに Amazon を呼び出すアクセス許可を付与します。 -
(オプション) ユーザー定義の命名規則に従うIAMロールを渡すアクセス許可を付与します。
-
(オプション) 特定のユーザー定義文字列でタグ付けされた Amazon EMRクラスターにアクセスするアクセス許可を付与します。
-
Amazon EMRクラスターに接続するときに使用するロールを選択できるように、IAMロールを事前ロードします。IAM ロールをプリロードする方法の詳細については、「」を参照してください実行ロールを Studio または Studio Classic に事前ロードする。
次のポリシー例では、モデリンググループとトレーニンググループに属する Amazon EMR ランタイム実行ロールが を呼び出すことを許可しますGetClusterSessionCredentials
。さらに、保険契約者は、文字列modeling
または でタグ付けされた Amazon EMRクラスターにアクセスできますtraining
。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "*", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::123456780910:role/emr-execution-role-ml-modeling*", "arn:aws:iam::123456780910:role/emr-execution-role-ml-training*" ], "elasticmapreduce:ResourceTag/group": [ "*modeling*", "*training*" ] } } } ] }
クラスターと Studio が別のアカウントにある場合のランタイムロール認証の設定
Amazon EMRクラスターが Studio アカウントにない場合は、クラスターに接続できるように、 SageMaker 実行ロールがクロスアカウント Amazon EMR アクセスロールを引き受けることを許可します。次の手順を実行して、クロスアカウント設定をセットアップします。
-
SageMaker 実行ロールが Amazon EMR アクセスロールを引き受けることができるように、実行ロールのアクセス許可ポリシーを作成します。次に、ポリシーの例を示します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAssumeCrossAccountEMRAccessRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
emr_account_id
:role/emr-access-role-name
" } ] } -
信頼ポリシーを作成して、Amazon EMR アクセスロールを引き受けるために信頼IDsされる Studio アカウントを指定します。次に、ポリシーの例を示します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerExecutionRoleToAssumeThisRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
studio_account_id
:role/studio_execution_role
" }, "Action": "sts:AssumeRole" } } -
Amazon EMR アクセスロールのアクセス許可ポリシーを作成します。このポリシーは、クラスターで目的のタスクを実行するために必要なアクセス許可を Amazon EMR ランタイム実行ロールに付与します。アクセスロールEMR許可ポリシーで指定された Amazon EMR ランタイム実行ロールAPI
GetClusterSessionCredentials
を使用して を呼び出すように Amazon アクセスロールを設定します。次に、ポリシーの例を示します。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallingEmrGetClusterSessionCredentialsAPI", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::
emr_account_id
:role/emr-execution-role-name
" ] } } } ] } -
アカウント間でトラフィックが行き来できるように、クロスアカウントネットワークを設定します。ガイド付き手順については、Amazon EMRクラスターのネットワークアクセスを設定する「 のセットアップ」を参照してください。このセクションのステップは、以下のタスクを完了するのに役立ちます。
-
VPC- Studio アカウントと Amazon EMRアカウントをピアリングして接続を確立します。
-
両方のアカウントのプライベートサブネットルートテーブルにルートを手動で追加します。これにより、Studio アカウントからリモートアカウントのプライベートサブネットへの Amazon EMRクラスターの作成と接続が可能になります。
-
Studio ドメインにアタッチされたセキュリティグループを設定して、アウトバウンドトラフィックを許可し、Amazon EMRプライマリノードのセキュリティグループを設定して、Studio インスタンスセキュリティグループからのインバウンドTCPトラフィックを許可します。
-
-
IAM ランタイムロールを事前にロードして、Amazon EMRクラスターに接続するときに使用するロールを選択できるようにします。IAM ロールをプリロードする方法の詳細については、「」を参照してください実行ロールを Studio または Studio Classic に事前ロードする。
Lake Formation へのアクセスの設定
が管理するデータレイクからデータにアクセスする場合 AWS Lake Formation、ランタイムロールにアタッチされたポリシーを使用して、テーブルレベルおよび列レベルのアクセスを適用できます。Lake Formation アクセスのアクセス許可を設定するには、「Amazon EMRを と統合 AWS Lake Formationする」を参照してください。
実行ロールを Studio または Studio Classic に事前ロードする
IAM ランタイムロールをプリロードして、Amazon EMRクラスターに接続するときに使用するロールを選択することができます。Studio JupyterLab の のユーザーは、 SageMaker コンソールまたは提供されたスクリプトを使用できます。