Konfigurasikan EMR CloudFormation template Amazon di Service Catalog - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan EMR CloudFormation template Amazon di Service Catalog

Topik ini mengasumsikan administrator akrab dengan AWS CloudFormation, portofolio dan produk di AWS Service Catalog, serta Amazon. EMR

Untuk menyederhanakan pembuatan EMR cluster Amazon dari Studio, administrator dapat mendaftarkan EMR CloudFormation template Amazon sebagai produk dalam portofolio. AWS Service Catalog Untuk membuat template tersedia bagi ilmuwan data, mereka harus mengaitkan portofolio dengan peran SageMaker eksekusi yang digunakan di Studio atau Studio Classic. Terakhir, untuk memungkinkan pengguna menemukan templat, menyediakan kluster, dan terhubung ke EMR kluster Amazon dari Studio atau Studio Classic, administrator perlu menetapkan izin akses yang sesuai.

EMR AWS CloudFormation Template Amazon dapat memungkinkan pengguna akhir untuk menyesuaikan berbagai aspek cluster. Misalnya, administrator dapat menentukan daftar jenis instans yang disetujui yang dapat dipilih pengguna saat membuat klaster.

Petunjuk berikut menggunakan end-to-end CloudFormation tumpukan untuk menyiapkan domain Studio atau Studio Classic, profil pengguna, portofolio Service Catalog, dan mengisi template EMR peluncuran Amazon. Langkah-langkah berikut menyoroti setelan spesifik yang harus diterapkan administrator di end-to-end tumpukan mereka untuk mengaktifkan Studio atau Studio Classic mengakses produk Service Catalog dan menyediakan EMR kluster Amazon.

catatan

GitHub Repositori aws-samples/ sagemaker-studio-emr berisi contoh end-to-end CloudFormation tumpukan yang menerapkan IAM peran yang diperlukan, jaringan, domain, profil SageMaker pengguna, portofolio Service Catalog, dan menambahkan template peluncuran Amazon. EMR CloudFormation Template menyediakan opsi otentikasi yang berbeda antara Studio atau Studio Classic dan EMR klaster Amazon. Dalam contoh templat ini, CloudFormation tumpukan induk meneruskan SageMakerVPC, grup keamanan, dan parameter subnet ke template EMR cluster Amazon.

Repositori sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates berisi berbagai contoh templat peluncuran Amazon, termasuk opsi untuk penerapan akun tunggal dan lintas akun. EMR CloudFormation

Lihat detail tentang metode otentikasi yang dapat Anda gunakan untuk menyambung ke EMR klaster Amazon. Connect ke EMR klaster Amazon dari SageMaker Studio atau Studio Classic

Untuk memungkinkan ilmuwan data menemukan EMR CloudFormation templat Amazon dan klaster penyediaan dari Studio atau Studio Classic, ikuti langkah-langkah berikut.

Langkah 0: Periksa jaringan Anda dan siapkan CloudFormation tumpukan Anda

Sebelum Anda mulai:

  • Pastikan Anda telah meninjau persyaratan jaringan dan keamanan diMengkonfigurasi jaringan.

  • Anda harus memiliki end-to-end CloudFormation tumpukan yang ada yang mendukung metode otentikasi pilihan Anda. Anda dapat menemukan contoh CloudFormation template tersebut di sagemaker-studio-emr GitHub aws-samples/ repositori. Langkah-langkah berikut menyoroti konfigurasi spesifik di end-to-end tumpukan Anda untuk mengaktifkan penggunaan EMR templat Amazon dalam Studio atau Studio Classic.

Langkah 1: Kaitkan portofolio Service Catalog Anda dengan SageMaker

Dalam portofolio Service Catalog Anda, kaitkan ID portofolio Anda dengan peran SageMaker eksekusi yang mengakses klaster Anda.

Untuk melakukannya, tambahkan bagian berikut (di sini dalam YAML format) ke tumpukan Anda. Ini memberikan akses peran SageMaker eksekusi ke portofolio Service Catalog tertentu yang berisi produk seperti EMR template Amazon. Ini memungkinkan peran yang diasumsikan oleh SageMaker untuk meluncurkan produk-produk tersebut.

Ganti SageMakerExecutionRole.Arn and SageMakerStudioEMRProductPortfolio.ID dengan nilai-nilai mereka yang sebenarnya.

SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN: SageMakerExecutionRole.Arn PortfolioId: SageMakerStudioEMRProductPortfolio.ID PrincipalType: IAM
catatan

Peran eksekusi apa yang harus Anda pertimbangkan?

UI Studio menentukan izinnya dari peran eksekusi yang terkait dengan profil pengguna yang meluncurkannya. UI menetapkan izin ini pada saat peluncuran. Namun, ruang yang meluncurkan JupyterLab atau aplikasi Studio Classic dapat memiliki izin terpisah.

Untuk akses konsisten ke EMR template dan cluster Amazon di seluruh aplikasi (seperti UI Studio JupyterLab, dan Studio Classic), berikan subset izin yang sama ke semua peran di domain, profil pengguna, atau tingkat ruang. Izin harus memungkinkan menemukan dan menyediakan kluster Amazon. EMR

Untuk detail tentang kumpulan IAM izin yang diperlukan, lihat bagian izin.

Langkah 2: Referensi EMR template Amazon dalam produk Service Catalog

Dalam produk Service Catalog portofolio Anda, rujuk sumber daya EMR template Amazon dan pastikan visibilitasnya di Studio atau Studio Classic.

Untuk melakukannya, rujuk sumber daya EMR template Amazon dalam definisi produk Service Catalog, lalu tambahkan kunci tag berikut yang "sagemaker:studio-visibility:emr" disetel ke nilai "true" (lihat contoh dalam YAML format).

Dalam definisi produk Service Catalog, AWS CloudFormation template cluster direferensikan melaluiURL. Tag tambahan yang disetel ke true memastikan visibilitas EMR template Amazon di Studio atau Studio Classic.

catatan

EMRTemplat Amazon yang direferensikan oleh yang disediakan URL dalam contoh tidak memberlakukan persyaratan otentikasi apa pun saat diluncurkan. Opsi ini dimaksudkan untuk tujuan demonstrasi dan pembelajaran. Hal ini tidak direkomendasikan dalam lingkungan produksi.

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"

Langkah 3: Parameterisasi template Amazon EMR CloudFormation

CloudFormation Template yang digunakan untuk menentukan EMR klaster Amazon dalam produk Service Catalog memungkinkan administrator menentukan parameter yang dapat dikonfigurasi. Administrator dapat menentukan Default nilai dan AllowedValues rentang untuk parameter ini dalam Parameters bagian template. Selama proses peluncuran cluster, ilmuwan data dapat memberikan input khusus atau membuat pilihan dari opsi yang telah ditentukan untuk menyesuaikan aspek tertentu dari cluster Amazon mereka. EMR

Contoh berikut mengilustrasikan parameter input tambahan yang dapat diatur administrator saat membuat template AmazonEMR.

"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" ] } }

Setelah administrator membuat EMR CloudFormation templat Amazon tersedia di Studio, ilmuwan data dapat menggunakannya untuk menyediakan sendiri klaster AmazonEMR. ParametersBagian yang didefinisikan dalam template diterjemahkan ke dalam bidang input pada formulir pembuatan cluster dalam Studio atau Studio Classic. Untuk setiap parameter, ilmuwan data dapat memasukkan nilai khusus ke dalam kotak input atau memilih dari opsi yang telah ditentukan yang tercantum dalam menu tarik-turun, yang sesuai dengan yang AllowedValues ditentukan dalam templat.

Ilustrasi berikut menunjukkan bentuk dinamis yang dirakit dari EMR template CloudFormation Amazon untuk membuat EMR klaster Amazon di Studio atau Studio Classic.

Ilustrasi formulir dinamis yang dirakit dari EMR template CloudFormation Amazon untuk membuat EMR cluster Amazon dari Studio atau Studio Classic.

Kunjungi Luncurkan EMR klaster Amazon dari Studio atau Studio Classic untuk mempelajari cara meluncurkan klaster dari Studio atau Studio Classic menggunakan EMR templat Amazon tersebut.

Langkah 4: Siapkan izin untuk mengaktifkan daftar dan meluncurkan EMR kluster Amazon dari Studio

Terakhir, lampirkan IAM izin yang diperlukan untuk mengaktifkan daftar EMR klaster Amazon yang sedang berjalan dan menyediakan sendiri cluster baru dari Studio atau Studio Classic.

Peran yang harus Anda tambahkan izin tersebut bergantung pada apakah Studio atau Studio Classic dan Amazon EMR digunakan di akun yang sama (pilih Akun Tunggal) atau di akun yang berbeda (pilih Akun silang).

catatan

Studio saat ini tidak mendukung akses EMR kluster Amazon yang dibuat di AWS akun yang berbeda dari akun tempat Studio digunakan. Akses lintas akun hanya tersedia di Studio Classic.

Untuk informasi selengkapnya tentang akses lintas akun menggunakan peran, lihat Akses sumber daya lintas akun. IAM

Jika EMR klaster Amazon dan Studio atau Studio Classic digunakan di AWS akun yang sama, lampirkan izin berikut ke peran SageMaker eksekusi yang mengakses klaster Anda.

catatan

Peran eksekusi apa yang harus Anda pertimbangkan?

UI Studio menentukan izinnya dari peran eksekusi yang terkait dengan profil pengguna yang meluncurkannya. UI menetapkan izin ini pada saat peluncuran. Namun, ruang yang meluncurkan JupyterLab atau aplikasi Studio Classic dapat memiliki izin terpisah.

Untuk akses konsisten ke EMR template dan cluster Amazon di seluruh aplikasi (seperti UI Studio JupyterLab, dan Studio Classic), berikan subset izin yang sama ke semua peran di domain, profil pengguna, atau tingkat ruang. Izin harus memungkinkan menemukan dan menyediakan kluster Amazon. EMR

  1. Temukan peran eksekusi domain, profil pengguna, atau ruang Anda. Untuk informasi tentang cara mengambil peran eksekusi, lihatDapatkan peran eksekusi Anda.

  2. Buka konsol IAM di https://console.aws.amazon.com/sagemaker/.

  3. Pilih Peran dan kemudian cari peran yang Anda buat dengan mengetikkan nama peran Anda di bidang Pencarian.

  4. Ikuti tautan ke peran Anda.

  5. Pilih Tambahkan izin, lalu Buat kebijakan sebaris.

  6. Di JSONtab, tambahkan JSON kebijakan berikut dengan izin:

    • AllowPresignedUrlmemungkinkan pembuatan pra-ditandatangani URLs untuk mengakses UI Spark dari dalam Studio atau Studio Classic.

    • AllowClusterDiscoverydan AllowClusterDetailsDiscovery mengizinkan daftar dan mendeskripsikan EMR cluster Amazon di akun/wilayah dari Studio atau Studio Classic.

    • AllowEMRTemplateDiscoverymemungkinkan pencarian EMR template Amazon di Service Catalog. Studio dan Studio Classic menggunakan ini untuk menampilkan template yang tersedia.

    • AllowSagemakerProjectManagementmemungkinkan membuat dan menghapus. Di SageMaker, akses ke AWS Service Catalog dikelola melaluiOtomatisasi MLOps dengan Proyek SageMaker .

    IAMKebijakan yang ditentukan dalam yang disediakan JSON memberikan izin tersebut. Ganti studio-region and studio-account dengan nilai region dan ID AWS akun Anda yang sebenarnya sebelum menyalin daftar pernyataan ke kebijakan inline peran Anda.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "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": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. Pilih Berikutnya dan kemudian berikan nama Kebijakan.

  8. Pilih Buat kebijakan.

Jika EMR klaster Amazon dan Studio atau Studio Classic digunakan di AWS akun terpisah, Anda mengonfigurasi izin di kedua akun.

Di EMR akun Amazon

Pada akun tempat Amazon EMR digunakan, juga disebut sebagai akun kepercayaan, buat IAM peran khusus bernama ASSUMABLE-ROLE dengan konfigurasi berikut:

  • Izin: Berikan izin yang diperlukan ASSUMABLE-ROLE untuk mengizinkan mengakses sumber daya AmazonEMR.

  • Hubungan kepercayaan: Konfigurasikan kebijakan kepercayaan ASSUMABLE-ROLE untuk mengizinkan asumsi peran dari akun Studio yang memerlukan akses.

Dengan mengasumsikan peran tersebut, Studio atau Studio Classic dapat memperoleh akses sementara ke izin yang dibutuhkan di Amazon. EMR

  • Buat kebijakan baru untuk peran tersebut.

    1. Buka konsol IAM di https://console.aws.amazon.com/sagemaker/.

    2. Di menu sebelah kiri, pilih Kebijakan dan kemudian Buat kebijakan.

    3. Di JSONtab, tambahkan JSON kebijakan berikut dengan izin:

      • AllowPresignedUrlmemungkinkan pembuatan pra-ditandatangani URLs untuk mengakses UI Spark dari dalam Studio.

      • AllowClusterDiscoverydan AllowClusterDetailsDiscovery memungkinkan daftar dan mendeskripsikan EMR cluster Amazon di akun/wilayah dari Studio.

      Ganti emr-region and emr-account dengan nilai wilayah dan ID AWS akun Anda yang sebenarnya sebelum menyalin JSON ke kebijakan Anda.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "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. Beri nama kebijakan Anda dan pilih Buat kebijakan.

  • Buat IAM peran kustom bernamaASSUMABLE-ROLE, lalu lampirkan kebijakan baru Anda ke peran tersebut.

    1. Di IAM konsol, pilih Peran di menu sebelah kiri, lalu Buat peran.

    2. Untuk jenis entitas Tepercaya, pilih AWS akun dan kemudian Berikutnya.

    3. Pilih izin yang baru saja Anda buat lalu pilih Berikutnya.

    4. Beri nama peran Anda ASSUMABLE-ROLE dan kemudian pilih tombol Edit di sebelah kanan Langkah 1: Pilih entitas tepercaya.

    5. Untuk jenis entitas Tepercaya, pilih Kebijakan kepercayaan khusus, lalu tempel hubungan kepercayaan berikut. Ini memberi akun tempat Studio digunakan (akun tepercaya) izin untuk mengambil peran ini.

      Ganti studio-account dengan ID AWS akun aktualnya. Pilih Berikutnya.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    6. Temukan dan pilih izin yang baru saja Anda buat lagi dan kemudian pilih Berikutnya.

    7. Kebijakan kepercayaan Anda harus diperbarui dengan yang terbaru yang JSON Anda tempel. Pilih Buat peran.

Untuk informasi selengkapnya tentang membuat peran di AWS akun, lihat Membuat IAM peran (konsol).

Di akun Studio

Pada akun tempat Studio atau Studio Classic digunakan, juga disebut sebagai akun tepercaya, perbarui peran SageMaker eksekusi yang mengakses klaster Anda dengan izin yang diperlukan untuk mengakses sumber daya di akun terpercaya.

catatan

Peran eksekusi apa yang harus Anda pertimbangkan?

UI Studio menentukan izinnya dari peran eksekusi yang terkait dengan profil pengguna yang meluncurkannya. UI menetapkan izin ini pada saat peluncuran. Namun, ruang yang meluncurkan JupyterLab atau aplikasi Studio Classic dapat memiliki izin terpisah.

Untuk akses konsisten ke EMR template dan cluster Amazon di seluruh aplikasi (seperti UI Studio JupyterLab, dan Studio Classic), berikan subset izin yang sama ke semua peran di domain, profil pengguna, atau tingkat ruang. Izin harus memungkinkan menemukan dan menyediakan kluster Amazon. EMR

  1. Temukan peran eksekusi domain, profil pengguna, atau ruang Anda. Untuk informasi tentang cara mengambil peran eksekusi, lihatDapatkan peran eksekusi Anda.

  2. Buka konsol IAM di https://console.aws.amazon.com/sagemaker/.

  3. Pilih Peran dan kemudian cari peran yang Anda buat dengan mengetikkan nama peran Anda di bidang Pencarian.

  4. Ikuti tautan ke peran Anda.

  5. Pilih Tambahkan izin, lalu Buat kebijakan sebaris.

  6. Di JSONtab, tambahkan JSON kebijakan berikut dengan izin:

    • AllowEMRTemplateDiscoverymemungkinkan pencarian EMR template Amazon di Service Catalog. Studio Classic menggunakan ini untuk menampilkan template yang tersedia.

    • AllowSagemakerProjectManagementmemungkinkan membuat dan menghapus. Di SageMaker, akses ke AWS Service Catalog dikelola melaluiOtomatisasi MLOps dengan Proyek SageMaker .

    IAMKebijakan yang ditentukan dalam yang disediakan JSON memberikan izin tersebut. Ganti studio-region and studio-account dengan nilai wilayah dan ID AWS akun Anda yang sebenarnya sebelum menyalin daftar pernyataan ke kebijakan Anda.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. Pilih Berikutnya dan kemudian berikan nama Kebijakan.

  8. Pilih Buat kebijakan.

  9. Ulangi langkah untuk menambahkan kebijakan inline lain ke peran eksekusi Studio. Kebijakan tersebut harus memungkinkan asumsi peran lintas akun untuk menemukan sumber daya di akun lain.

    Pada halaman detail peran eksekusi, pilih Tambahkan izin, lalu Buat kebijakan sebaris.

  10. Di JSONtab, tambahkan JSON kebijakan berikut. Perbarui emr-account dengan ID akun EMR akun Amazon.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
  11. Pilih Berikutnya, berikan nama Kebijakan, lalu pilih Buat kebijakan.

  12. Untuk mengizinkan daftar EMR klaster Amazon yang diterapkan di akun yang sama dengan Studio, tambahkan kebijakan sebaris tambahan ke peran eksekusi Studio Anda seperti yang ditentukan di tab Akun tunggal. Konfigurasikan daftar EMR klaster Amazon

Lulus peran ARN pada peluncuran server Jupyter

Terakhir, lihat Konfigurasi tambahan untuk akses lintas akun untuk mempelajari cara menyediakan peran eksekusi Studio ASSUMABLE-ROLE ke Studio Anda. ARN ARNItu dimuat oleh server Jupyter saat peluncuran. Peran eksekusi yang digunakan oleh Studio mengasumsikan peran lintas akun untuk menemukan dan terhubung ke EMR klaster Amazon di akun kepercayaan.