翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 テンプレートを使用すると、エンドユーザーはクラスターのさまざまな側面をカスタマイズできます。例えば、管理者は、クラスターの作成時にユーザーが選択できるインスタンスタイプの承認済みリストを定義できます。
次の手順では end-to-end 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 スタックを準備する
開始する前に:
-
のネットワークとセキュリティの要件を確認していることを確認しますネットワークを設定する。
-
選択した認証方法をサポートする既存の 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 テンプレートを参照する
ポートフォリオ の Service Catalog 製品で、Amazon テンプレートリソースを参照し、Studio または Studio Classic でその可視性を確保します。 EMR
これを行うには、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 CloudFormationEMRクラスターを作成するために Amazon EMR テンプレートからアセンブルされた動的フォームを示しています。
これらの Amazon EMR テンプレートを使用して Studio または Studio Classic からクラスターを起動するStudio または Studio Classic から Amazon EMRクラスターを起動する方法については、「」を参照してください。
ステップ 4: Studio からの Amazon EMRクラスターの一覧表示と起動を有効にするアクセス許可を設定する
最後に、必要なIAMアクセス許可をアタッチして、Studio または Studio Classic から既存の実行中の Amazon EMRクラスターと自己プロビジョニングの新しいクラスターを一覧表示できるようにします。
これらのアクセス許可を追加する必要があるロール (複数可) は、Studio または Studio Classic と Amazon EMRが同じアカウント (単一アカウントを選択) にデプロイされているか、異なるアカウント (クロスアカウントを選択) にデプロイされているかによって異なります。
重要
プライベートスペースから起動される および JupyterLab Studio Classic アプリケーションの Amazon EMRクラスターのみを検出して接続できます。Amazon EMRクラスターが同じ にあることを確認します。 AWS Studio 環境としての リージョン。
Amazon EMRクラスターと Studio または Studio Classic が同じ にデプロイされている場合 AWS アカウントで、クラスターにアクセスする SageMaker 実行ロールに次のアクセス許可をアタッチします。
-
ステップ 1: プライベートスペースで使用される SageMaker 実行ロールARNの を取得します。
のスペースと実行ロールの詳細については SageMaker、「」を参照してくださいドメインスペースのアクセス許可と実行ロールについて。
の実行ロールARNの を取得する方法の詳細については、 SageMaker「」を参照してください実行ロールを取得する。
-
ステップ 2: Amazon EMRクラスターにアクセスする SageMaker 実行ロールに次のアクセス許可をアタッチします。
-
IAM コンソール
に移動します。 -
「ロール」を選択し、「検索」フィールドで実行ロールを名前で検索します。ロール名はARN、最後のスラッシュ (/) の後の の最後の部分です。
-
ロールへのリンクに従います。
-
アクセス許可を追加 を選択し、インラインポリシー を作成します。
-
JSON タブに、Amazon アクセスとオペレーションを許可する Amazon EMR アクセスEMR許可を追加します。ポリシードキュメントの詳細については、「」の「Amazon EMRポリシーを一覧表示する」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に
region
、、、 を実際の値accountID
に置き換えます。 -
次へ を選択し、ポリシー名 を指定します。
-
[Create policy] を選択します。
-
インラインポリシーの作成ステップを繰り返して、 を使用して新しい Amazon EMRクラスターをプロビジョニングするアクセス許可を実行ロールに付与する別のポリシーを追加します。 AWS CloudFormation テンプレート。ポリシードキュメントの詳細については、「 で 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の を検索する方法については、「 に対する Amazon アクセスEMR許可IAMのサービスロールの設定」を参照してください。 AWS のサービスとリソース。
-
ステップ 2: 以下の設定
AssumableRole
で という名前のカスタムIAMロールを作成します。-
アクセス許可: Amazon EMRリソースへのアクセスを許可
AssumableRole
するために必要なアクセス許可を に付与します。このロールは、クロスアカウントアクセスを伴うシナリオではアクセスロールとも呼ばれます。 -
信頼関係: アクセスを必要とする Studio アカウントから実行ロール (クロスアカウント図
SageMakerExecutionRole
の ) を引き受けるAssumableRole
ことができるように、 の信頼ポリシーを設定します。
ロールを引き受けることで、Studio または Studio Classic は Amazon で必要なアクセス許可に一時的にアクセスできますEMR。
Amazon
AssumableRole
で新しい を作成する方法の詳細については、「」を参照してください。 EMR AWS アカウント、以下のステップに従います。-
IAM コンソール
に移動します。 -
左側のナビゲーションペインで、ポリシー を選択し、ポリシー を作成します。
-
JSON タブに、Amazon アクセスとオペレーションを許可する Amazon EMR アクセスEMR許可を追加します。ポリシードキュメントの詳細については、「」の「Amazon EMRポリシーを一覧表示する」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に
region
、、、および を実際の値accountID
に置き換えます。 -
次へ を選択し、ポリシー名 を指定します。
-
[Create policy] を選択します。
-
左側のナビゲーションペインで、ロール を選択し、ロール を作成します。
-
ロールの作成ページで、信頼されたエンティティとしてカスタム信頼ポリシーを選択します。
-
カスタム信頼ポリシーセクションの次のJSONドキュメントに貼り付け、次へ を選択します。
-
「アクセス許可の追加」ページで、先ほど作成したアクセス許可を追加し、「次へ」を選択します。
-
レビューページで、 などのロールの名前
AssumableRole
とオプションの説明を入力します。 -
ロールの詳細を確認し、[ロールの作成] を選択します。
でのロールの作成の詳細については、「」を参照してください。 AWS アカウント、「 IAMロールの作成 (コンソール)」を参照してください。
-
Studio アカウントで
Studio がデプロイされているアカウントで、信頼されたアカウント とも呼ばれます。クラスターにアクセスする実行ロールを、信頼するアカウントのリソースにアクセスするために必要なアクセス許可で更新 SageMakerします。
-
ステップ 1: プライベートスペースで使用される SageMaker 実行ロールARNの を取得します。
のスペースと実行ロールの詳細については SageMaker、「」を参照してくださいドメインスペースのアクセス許可と実行ロールについて。
の実行ロールARNの を取得する方法の詳細については、 SageMaker「」を参照してください実行ロールを取得する。
-
ステップ 2: Amazon EMRクラスターにアクセスする SageMaker 実行ロールに次のアクセス許可をアタッチします。
-
IAM コンソール
に移動します。 -
「ロール」を選択し、「検索」フィールドで実行ロールを名前で検索します。ロール名は、最後のスラッシュ (/) ARNの後にある の最後の部分です。
-
ロールへのリンクに従います。
-
アクセス許可を追加 を選択し、インラインポリシー を作成します。
-
JSON タブに、ドメイン、ユーザープロファイル、スペースを更新するアクセス許可をロールに付与するインラインポリシーを追加します。ポリシードキュメントの詳細については、「」の「ドメイン、ユーザープロファイル、およびスペース更新アクションポリシー」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に、
region
と を実際の値accountID
に置き換えます。 -
次へ を選択し、ポリシー名 を指定します。
-
[Create policy] を選択します。
-
インラインポリシーの作成ステップを繰り返して、実行ロールに を引き受け
AssumableRole
、ロールのアクセスポリシーで許可されているアクションを実行するアクセス許可を付与する別のポリシーを追加します。を Amazon EMRアカウント IDAssumableRole
に置き換え、 を Amazon EMRアカウントで作成された引き受け可能なロールの名前emr-account
に置き換えます。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::
emr-account
:role/AssumableRole
" ] }] } -
インラインポリシーの作成ステップを繰り返して、 を使用して新しい Amazon EMRクラスターをプロビジョニングするアクセス許可を実行ロールに付与する別のポリシーを追加します。 AWS CloudFormation テンプレート。ポリシードキュメントの詳細については、「 で Amazon EMRclustersポリシーを作成する」を参照してくださいリファレンスポリシー。ステートメントのリストをロールのインラインポリシーにコピーする前に、
region
と を実際の値accountID
に置き換えます。 -
(オプション) Studio と同じアカウントにデプロイされた Amazon EMRクラスターの一覧表示を許可するには、「 の Amazon ポリシーの一覧表示」で定義されているように、Studio 実行ロールにインラインEMRポリシーを追加しますリファレンスポリシー。
-
-
ステップ 3: Studio のドメインまたはユーザー profile. JupyterLab users に引き受け可能なロール (アクセスロール) を SageMaker関連付けるには、 コンソールまたは提供されたスクリプトを使用できます。
ユースケースに対応するタブを選択します。