翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Service Catalog で Amazon EMR CloudFormation テンプレートを設定する
このトピックでは、管理者が AWS CloudFormation、 のポートフォリオと製品 AWS Service Catalog、および Amazon EMRに精通していることを前提としています。
Studio からの Amazon EMRクラスターの作成を簡素化するために、管理者は Amazon EMR CloudFormation テンプレートをAWS Service Catalogポートフォリオ内の製品として登録できます。テンプレートをデータサイエンティストが利用できるようにするには、ポートフォリオを Studio または Studio Classic で使用される SageMaker 実行ロールに関連付ける必要があります。最後に、ユーザーが Studio または Studio Classic からテンプレートを検出し、クラスターをプロビジョニングし、Amazon EMRクラスターに接続できるようにするには、管理者は適切なアクセス許可を設定する必要があります。
Amazon EMR AWS CloudFormation テンプレートを使用すると、エンドユーザーはさまざまなクラスターの側面をカスタマイズできます。例えば、管理者は、クラスターの作成時にユーザーが選択できるインスタンスタイプの承認済みリストを定義できます。
次の手順ではCloudFormation 、スタック
注記
GitHub リポジトリ aws-samples/sagemaker-studio-emr
sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates
Amazon EMRクラスターへの接続に使用できる認証方法の詳細については、 SageMaker Studio または Studio Classic から Amazon EMRクラスターに接続する「」を参照してください。
データサイエンティストが Studio または Studio Classic から Amazon EMR CloudFormation テンプレートを検出し、クラスターをプロビジョニングできるようにするには、次の手順に従います。
ステップ 0: ネットワークを確認し、 CloudFormation スタックを準備する
開始する前に:
-
でネットワークとセキュリティの要件を確認していることを確認しますAmazon EMRクラスターのネットワークアクセスを設定する。
-
選択した認証方法をサポートする既存の end-to-end CloudFormation スタックが必要です。このような CloudFormation テンプレートの例は、aws-samples/sagemaker-studio-emr
GitHub repository にあります。次の手順では、Studio または Studio Classic 内で Amazon EMR テンプレートを使用できるように、スタック内の特定の設定をハイライトします end-to-end。
ステップ 1: Service Catalog ポートフォリオを に関連付ける SageMaker
Service Catalog ポートフォリオ で、ポートフォリオ ID をクラスターにアクセスする SageMaker 実行ロールに関連付けます。
これを行うには、次のセクション (ここでは YAML 形式) をスタックに追加します。これにより、Amazon EMR テンプレートなどの製品を含む指定された Service Catalog ポートフォリオへの SageMaker 実行ロールアクセスが許可されます。これにより、 が引き受けるロールがこれらの製品を起動 SageMaker できるようになります。
置換 SageMakerExecutionRole.Arn
また、SageMakerStudioEMRProductPortfolio.ID
実際の値を使用します。
SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN:
SageMakerExecutionRole.Arn
PortfolioId:SageMakerStudioEMRProductPortfolio.ID
PrincipalType: IAM
必要なIAMアクセス許可のセットの詳細については、アクセス許可セクションを参照してください。
ステップ 2: Service Catalog 製品の Amazon EMR テンプレートを参照する
ポートフォリオ のサービスカタログ製品で、Amazon EMR テンプレートリソースを参照し、Studio または Studio Classic でその可視性を確保します。
これを行うには、Service Catalog 製品定義の Amazon EMR テンプレートリソースを参照し、次のタグキー"sagemaker:studio-visibility:emr"
セットを値に追加します "true"
( YAML 形式の例を参照)。
Service Catalog 製品定義では、クラスターの AWS CloudFormation テンプレートは を介して参照されますURL。追加のタグを true に設定すると、Studio または Studio Classic の Amazon EMR テンプレートが可視化されます。
注記
この例URLで提供されている で参照されている Amazon EMR テンプレートでは、起動時に認証要件は適用されません。このオプションは、デモンストレーションと学習を目的としています。本番環境では推奨されません。
SMStudioEMRNoAuthProduct: Type: AWS::ServiceCatalog::CloudFormationProduct Properties: Owner: AWS Name: SageMaker Studio Domain No Auth EMR ProvisioningArtifactParameters: - Name: SageMaker Studio Domain No Auth EMR Description: Provisions a SageMaker domain and No Auth EMR Cluster Info: LoadTemplateFromURL:
Link to your CloudFormation template. For example, https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml
Tags: - Key: "sagemaker:studio-visibility:emr" Value: "true"
ステップ 3: Amazon EMR CloudFormation テンプレートをパラメータ化する
Service Catalog 製品内で Amazon EMRクラスターを定義するために使用される CloudFormation テンプレートを使用すると、管理者は設定可能なパラメータを指定できます。管理者は、テンプレートParameters
のセクション内でこれらのパラメータDefault
の値とAllowedValues
範囲を定義できます。クラスターの起動プロセス中、データサイエンティストは、Amazon EMRクラスターの特定の側面をカスタマイズするために、カスタム入力を提供したり、これらの事前定義されたオプションから選択したりできます。
次の例は、管理者が Amazon EMR テンプレートの作成時に設定できる追加の入力パラメータを示しています。
"Parameters": { "EmrClusterName": { "Type": "String", "Description": "EMR cluster Name." }, "MasterInstanceType": { "Type": "String", "Description": "Instance type of the EMR master node.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge" ] }, "CoreInstanceType": { "Type": "String", "Description": "Instance type of the EMR core nodes.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "CoreInstanceCount": { "Type": "String", "Description": "Number of core instances in the EMR cluster.", "Default": "2", "AllowedValues": [ "2", "5", "10" ] }, "EmrReleaseVersion": { "Type": "String", "Description": "The release version of EMR to launch.", "Default": "emr-5.33.1", "AllowedValues": [ "emr-5.33.1", "emr-6.4.0" ] } }
管理者が Studio 内で Amazon EMR CloudFormation テンプレートを使用できるようにした後、データサイエンティストはそれらを使用して Amazon EMRクラスターを自己プロビジョニングできます。テンプレートで定義されているParameters
セクションは、Studio または Studio Classic 内のクラスター作成フォームの入力フィールドに変換されます。各パラメータについて、データサイエンティストは入力ボックスにカスタム値を入力するか、ドロップダウンメニューにリストされている事前定義されたオプションから選択することができます。これは、テンプレートでAllowedValues
指定された に対応します。
次の図は、Studio または Studio Classic で Amazon EMRクラスターを作成するために Amazon EMR テンプレートから CloudFormationアセンブルされた動的フォームを示しています。
これらの Amazon EMR テンプレートを使用して Studio または Studio Classic からクラスターを起動する方法については、Studio または Studio Classic から Amazon EMRクラスターを起動する「」を参照してください。
ステップ 4: Studio からの Amazon EMRクラスターの一覧表示と起動を有効にするアクセス許可を設定する
最後に、Studio または Studio Classic から既存の実行中の Amazon EMRクラスターを一覧表示し、新しいクラスターをセルフプロビジョニングするために必要なIAMアクセス許可をアタッチします。
これらのアクセス許可を追加する必要があるロール (複数可) は、Studio または Studio Classic と Amazon EMRが同じアカウント (単一アカウントを選択) にデプロイされているか、異なるアカウント (クロスアカウントを選択) にデプロイされているかによって異なります。
重要
プライベートスペースから起動される JupyterLab および Studio Classic アプリケーションの Amazon EMRクラスターのみを検出して接続できます。Amazon EMRクラスターが Studio 環境と同じ AWS リージョンにあることを確認します。
Amazon EMRクラスターと Studio または Studio Classic が同じ AWS アカウントにデプロイされている場合は、クラスターにアクセスする SageMaker 実行ロールに次のアクセス許可をアタッチします。
-
ステップ 1: プライベートスペースで使用される SageMaker 実行ロールARNの を取得します。
のスペースと実行ロールの詳細については SageMaker、「」を参照してくださいドメインスペースのアクセス許可と実行ロールについて。
の実行ロールARNの を取得する方法の詳細については、 SageMaker「」を参照してください実行ロールを取得する。
-
ステップ 2: Amazon EMRクラスターにアクセスする SageMaker 実行ロールに次のアクセス許可をアタッチします。
-
IAM コンソール
に移動します。 -
ロールを選択し、検索フィールドで名前で実行ロールを検索します。ロール名はARN、最後のスラッシュ (/) の後にある の最後の部分です。
-
ロールへのリンクに従います。
-
アクセス許可を追加 を選択し、インラインポリシーを作成します。
-
JSON タブに、Amazon EMR アクセスとオペレーションを許可する Amazon アクセスEMR許可を追加します。ポリシードキュメントの詳細については、「」の「Amazon EMRポリシーを一覧表示する」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に
region
、 と をaccountID
実際の値に置き換えます。 -
Next を選択し、ポリシー名 を指定します。
-
[Create policy] を選択します。
-
インラインポリシーの作成ステップを繰り返して、テンプレートを使用して AWS CloudFormation 新しい Amazon EMRクラスターをプロビジョニングするアクセス許可を実行ロールに付与する別のポリシーを追加します。ポリシードキュメントの詳細については、「」の「Amazon EMRclustersポリシーの作成」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に、
region
と をaccountID
実際の値に置き換えます。
-
注記
Amazon EMRクラスターへのロールベースのアクセスコントロール (RBAC) 接続のユーザーは、 も参照する必要がありますAmazon EMRクラスターと Studio が同じアカウントにある場合にランタイムロール認証を設定する。
開始する前に、プライベートスペースで使用される SageMaker 実行ロールARNの を取得します。
のスペースと実行ロールの詳細については SageMaker、「」を参照してくださいドメインスペースのアクセス許可と実行ロールについて。
の実行ロールARNの を取得する方法の詳細については、 SageMaker「」を参照してください実行ロールを取得する。
Amazon EMRクラスターと Studio または Studio Classic が別々の AWS アカウントにデプロイされている場合は、両方のアカウントにアクセス許可を設定します。
注記
Amazon EMRクラスターへのロールベースのアクセスコントロール (RBAC) 接続のユーザーは、 も参照する必要がありますクラスターと Studio が別のアカウントにある場合のランタイムロール認証の設定。
Amazon EMRクラスターアカウントで
Amazon EMR がデプロイされているアカウントに必要なロールとポリシーを作成するには、以下のステップに従います。これは信頼アカウントとも呼ばれます。
-
ステップ 1: Amazon クラスター ARN のサービスロールの を取得します。 EMR
クラスターのサービスロールARNの を検索する方法については、IAM「サービス AWS およびリソースへの Amazon EMR アクセス許可のサービスロールの設定」を参照してください。
-
ステップ 2: 次の設定
AssumableRole
で という名前のカスタムIAMロールを作成します。-
アクセス許可: Amazon EMRリソースへのアクセスを許可
AssumableRole
するために必要なアクセス許可を に付与します。このロールは、クロスアカウントアクセスを伴うシナリオではアクセスロールとも呼ばれます。 -
信頼関係: アクセスを必要とする Studio アカウントから実行ロール (クロスアカウント図
SageMakerExecutionRole
の ) を引き受けるAssumableRole
ことができるように、 の信頼ポリシーを設定します。
ロールを引き受けることで、Studio または Studio Classic は Amazon で必要なアクセス許可に一時的にアクセスできますEMR。
Amazon EMR AWS アカウント
AssumableRole
で新しい を作成する方法の詳細な手順については、次の手順に従います。-
IAM コンソール
に移動します。 -
左側のナビゲーションペインで、ポリシー を選択し、ポリシー を作成します。
-
JSON タブに、Amazon EMR アクセスとオペレーションを許可する Amazon アクセスEMR許可を追加します。ポリシードキュメントの詳細については、「」の「Amazon EMRポリシーを一覧表示する」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に
region
、 と をaccountID
実際の値に置き換えます。 -
Next を選択し、ポリシー名 を指定します。
-
[Create policy] を選択します。
-
左側のナビゲーションペインで、ロール を選択し、ロール を作成します。
-
ロールの作成ページで、信頼されたエンティティとしてカスタム信頼ポリシーを選択します。
-
カスタム信頼ポリシーセクションの次のJSONドキュメントに貼り付け、次へ を選択します。
-
アクセス許可の追加ページで、先ほど作成したアクセス許可を追加し、次へ を選択します。
-
レビューページで、 などのロールの名前
AssumableRole
とオプションの説明を入力します。 -
ロールの詳細を確認し、[ロールの作成] を選択します。
アカウントで AWS ロールを作成する方法の詳細については、IAM「ロールの作成 (コンソール)」を参照してください。
-
Studio アカウントで
Studio がデプロイされているアカウントで、信頼されたアカウント とも呼ばれます。クラスターにアクセスする実行ロールを SageMaker、信頼するアカウントのリソースにアクセスするために必要なアクセス許可で更新します。
-
ステップ 1: プライベートスペースで使用される SageMaker 実行ロールARNの を取得します。
のスペースと実行ロールの詳細については SageMaker、「」を参照してくださいドメインスペースのアクセス許可と実行ロールについて。
の実行ロールARNの を取得する方法の詳細については、 SageMaker「」を参照してください実行ロールを取得する。
-
ステップ 2: Amazon EMRクラスターにアクセスする SageMaker 実行ロールに次のアクセス許可をアタッチします。
-
IAM コンソール
に移動します。 -
ロールを選択し、検索フィールドで名前で実行ロールを検索します。ロール名はARN、最後のスラッシュ (/) の後にある の最後の部分です。
-
ロールへのリンクに従います。
-
アクセス許可を追加 を選択し、インラインポリシーを作成します。
-
JSON タブに、ドメイン、ユーザープロファイル、スペースを更新するアクセス許可をロールに付与するインラインポリシーを追加します。ポリシードキュメントの詳細については、「」の「ドメイン、ユーザープロファイル、およびスペース更新アクションポリシー」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に
accountID
、region
と を実際の値に置き換えます。 -
Next を選択し、ポリシー名 を指定します。
-
[Create policy] を選択します。
-
インラインポリシーの作成ステップを繰り返して、実行ロールに を引き受け
AssumableRole
、ロールのアクセスポリシーで許可されているアクションを実行するアクセス許可を付与する別のポリシーを追加します。emr-account
を Amazon EMRアカウント ID に置き換え、 を Amazon EMRアカウントで作成された想定ロールの名前AssumableRole
に置き換えます。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::
emr-account
:role/AssumableRole
" ] }] } -
インラインポリシーの作成ステップを繰り返して、 AWS CloudFormation テンプレートを使用して新しい Amazon EMRクラスターをプロビジョニングするアクセス許可を実行ロールに付与する別のポリシーを追加します。ポリシードキュメントの詳細については、「」の「Amazon EMRclustersポリシーの作成」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に、
region
と をaccountID
実際の値に置き換えます。 -
(オプション) Studio と同じアカウントにデプロイされた Amazon EMRクラスターのリストを許可するには、 の Amazon ポリシーのリストで定義されているように、Studio 実行ロールに追加のインラインEMRポリシーを追加しますリファレンスポリシー。
-
-
ステップ 3: 想定ロール (アクセスロール) をドメインまたはユーザー profile. JupyterLab users in Studio に関連付けると、 SageMakerコンソールまたは提供されたスクリプトを使用できます。
ユースケースに対応するタブを選択します。