Siapkan izin untuk mengaktifkan daftar dan meluncurkan EMR aplikasi Amazon dari Studio SageMaker - Amazon SageMaker

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

Siapkan izin untuk mengaktifkan daftar dan meluncurkan EMR aplikasi Amazon dari Studio SageMaker

Di bagian ini, kami merinci peran dan izin yang diperlukan untuk mendaftar dan terhubung ke aplikasi EMR Tanpa Server dari SageMaker Studio, mempertimbangkan skenario di mana Studio dan aplikasi EMR Tanpa Server digunakan di akun yang sama AWS atau di berbagai akun.

Peran yang harus Anda tambahkan izin yang diperlukan bergantung pada apakah Studio dan aplikasi EMR Tanpa Server Anda berada di AWS akun yang sama (Akun Tunggal) atau di akun terpisah (Akun Lintas). Ada dua jenis peran yang terlibat:

  • Peran eksekusi:

    • Peran eksekusi runtime (peran Kontrol Akses Berbasis Peran) yang digunakan oleh EMR Tanpa Server: Ini adalah IAM peran yang digunakan oleh lingkungan eksekusi pekerjaan EMR Tanpa Server untuk mengakses AWS layanan dan sumber daya lain yang diperlukan selama runtime, seperti Amazon S3 untuk akses data, untuk pencatatan CloudWatch , akses ke Katalog Data, atau layanan lain berdasarkan persyaratan beban AWS Glue kerja Anda. Sebaiknya buat peran ini di akun tempat aplikasi EMR Tanpa Server berjalan.

      Untuk mempelajari lebih lanjut tentang peran runtime, lihat Peran runtime Job di Panduan Pengguna Tanpa EMRServer.

      catatan

      Anda dapat menentukan beberapa RBAC peran untuk aplikasi EMR Tanpa Server Anda. Peran ini dapat didasarkan pada tanggung jawab dan tingkat akses yang dibutuhkan oleh pengguna atau grup yang berbeda dalam organisasi Anda. Untuk informasi selengkapnya tentang RBAC izin, lihat Praktik terbaik keamanan untuk Amazon Amazon Tanpa EMR Server.

    • SageMaker peran eksekusi: Peran eksekusi yang memungkinkan SageMaker untuk melakukan tugas tertentu seperti membaca data dari bucket Amazon S3, menulis log CloudWatch, dan mengakses AWS layanan lain yang mungkin diperlukan alur kerja Anda. Peran SageMaker eksekusi juga memiliki izin khusus iam:PassRole yang disebut yang memungkinkan SageMaker untuk meneruskan peran eksekusi runtime sementara ke aplikasi Tanpa EMR Server. Peran ini memberi aplikasi EMR Tanpa Server izin yang mereka butuhkan untuk berinteraksi dengan AWS sumber daya lain saat mereka berjalan.

  • Peran yang dapat diasumsikan (Juga disebut sebagai Peran Akses Layanan):

    • Ini adalah IAM peran yang SageMaker dapat diasumsikan oleh peran eksekusi untuk melakukan operasi yang terkait dengan pengelolaan aplikasi EMR Tanpa Server. Peran ini menentukan izin dan kebijakan akses yang diperlukan saat mencantumkan, menghubungkan, atau mengelola aplikasi Tanpa EMR Server. Mereka biasanya digunakan dalam skenario lintas akun, di mana aplikasi EMR Tanpa Server berada di AWS akun yang berbeda dari domain. SageMaker Memiliki IAM peran khusus untuk aplikasi EMR Tanpa Server Anda membantu mengikuti prinsip hak istimewa paling sedikit dan memastikan bahwa Amazon hanya EMR memiliki izin yang diperlukan untuk menjalankan pekerjaan Anda sambil melindungi sumber daya lain di akun Anda. AWS

Dengan memahami dan mengonfigurasi peran ini dengan benar, Anda dapat memastikan bahwa SageMaker Studio memiliki izin yang diperlukan untuk berinteraksi dengan aplikasi EMR Tanpa Server, terlepas dari apakah peran tersebut digunakan di akun yang sama atau di akun yang berbeda.

Akun tunggal

Diagram berikut menggambarkan peran dan izin yang diperlukan untuk mendaftar dan terhubung ke aplikasi EMR Tanpa Server dari Studio saat Studio dan aplikasi digunakan di akun yang sama. AWS

Diagram menunjukkan peran dan izin yang diperlukan untuk membuat daftar dan menghubungkan aplikasi EMR Tanpa Server dari Studio saat Studio dan aplikasi berada di akun yang sama. AWS

Jika EMR aplikasi Amazon dan Studio Anda digunakan di AWS akun yang sama, ikuti langkah-langkah berikut:

  1. Langkah 1: Ambil bucket Amazon S3 yang Anda gunakan untuk sumber data dan penyimpanan data keluaran di konsol Amazon S3. ARN

    Untuk mempelajari cara menemukan bucket berdasarkan nama, lihat Mengakses dan mencantumkan bucket Amazon S3. Untuk informasi tentang cara membuat bucket Amazon S3, lihat Membuat bucket.

  2. Langkah 2: Buat setidaknya satu peran eksekusi runtime pekerjaan untuk aplikasi EMR Tanpa Server Anda di akun Anda (Dalam diagram kasus penggunaan akun Tunggal EMRServerlessRuntimeExecutionRoleA di atas). Pilih Kebijakan kepercayaan khusus sebagai entitas tepercaya. Tambahkan izin yang diperlukan oleh pekerjaan Anda. Minimal, Anda memerlukan akses penuh ke bucket Amazon S3, serta membuat serta membaca akses ke Katalog AWS Glue Data.

    Untuk petunjuk mendetail tentang cara membuat peran eksekusi runtime baru untuk aplikasi EMR Tanpa Server Anda, ikuti langkah-langkah berikut:

    1. Navigasikan ke konsol IAM tersebut.

    2. Di panel navigasi kiri, pilih Kebijakan, lalu Buat kebijakan.

    3. Tambahkan izin yang diperlukan oleh peran runtime Anda, beri nama kebijakan, lalu pilih Buat kebijakan.

      Anda dapat merujuk ke peran runtime Job untuk EMR Tanpa Server untuk menemukan contoh kebijakan runtime untuk peran EMR runtime Tanpa Server.

    4. Di panel navigasi kiri, pilih Peran dan kemudian Buat peran.

    5. Pada halaman Buat peran, pilih Kebijakan kepercayaan khusus sebagai entitas tepercaya.

    6. Tempel JSON dokumen berikut di bagian Kebijakan kepercayaan kustom, lalu pilih Berikutnya.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    7. Di halaman Tambahkan izin, tambahkan kebijakan yang Anda buat, lalu pilih Berikutnya.

    8. Pada halaman Ulasan, masukkan nama untuk peran seperti EMRServerlessAppRuntimeRoleA dan deskripsi opsional.

    9. Tinjau detail peran dan pilih Buat peran.

    Dengan peran ini, Anda dan rekan tim Anda dapat terhubung ke aplikasi yang sama, masing-masing menggunakan peran runtime yang dicakup dengan izin yang sesuai dengan tingkat akses individual Anda ke data.

    catatan

    Sesi Spark beroperasi secara berbeda. Sesi percikan diisolasi berdasarkan peran eksekusi yang digunakan dari Studio, sehingga pengguna dengan peran eksekusi yang berbeda akan memiliki sesi Spark yang terpisah dan terisolasi. Selain itu, jika Anda telah mengaktifkan identitas sumber untuk domain Anda, ada isolasi lebih lanjut dari sesi Spark di berbagai identitas sumber.

  3. Langkah 3: Ambil peran ARN SageMaker eksekusi yang digunakan oleh ruang pribadi Anda.

    Untuk informasi tentang spasi dan peran eksekusi SageMaker, lihatMemahami izin ruang domain dan peran eksekusi.

    Untuk informasi selengkapnya tentang cara mengambil peran eksekusi ARN of SageMaker, lihatDapatkan peran eksekusi Anda.

    catatan

    Atau, pengguna baru SageMaker dapat menyederhanakan proses penyiapan mereka dengan secara otomatis membuat peran SageMaker eksekusi baru dengan izin yang sesuai. Dalam hal ini, lewati langkah 3 dan 4. Sebagai gantinya, pengguna dapat:

    • Pilih opsi Siapkan untuk organisasi saat membuat domain baru dari menu Domain di navigasi kiri SageMakerkonsol.

    • Buat peran eksekusi baru dari menu Manajer peran konsol, lalu lampirkan peran tersebut ke domain atau profil pengguna yang ada.

    Saat membuat peran, pilih opsi Run Studio EMR Serverless Applications di aktivitas ML apa yang akan dilakukan pengguna? Kemudian, berikan nama bucket Amazon S3 Anda dan peran eksekusi runtime pekerjaan yang Anda inginkan untuk digunakan aplikasi EMR Tanpa Server (langkah 2).

    Manajer SageMaker Peran secara otomatis menambahkan izin yang diperlukan untuk menjalankan dan menghubungkan ke aplikasi EMR Tanpa Server ke peran eksekusi baru.Menggunakan Manajer SageMaker Peran, Anda hanya dapat menetapkan satu peran runtime ke aplikasi EMR Tanpa Server Anda, dan aplikasi harus berjalan di akun yang sama tempat Studio digunakan, menggunakan peran runtime yang dibuat dalam akun yang sama.

  4. Langkah 4: Lampirkan izin berikut ke peran SageMaker eksekusi yang mengakses aplikasi Tanpa EMR Server Anda.

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

    2. Pilih Peran dan kemudian cari peran eksekusi berdasarkan nama di kolom Pencarian. Nama peran adalah bagian terakhir dariARN, setelah garis miring terakhir (/).

    3. Ikuti tautan ke peran Anda.

    4. Pilih Tambahkan izin lalu Buat kebijakan sebaris.

    5. Di JSONtab, tambahkan izin Amazon EMR Tanpa Server yang memungkinkan akses dan operasi Tanpa EMR Server. Untuk detail tentang dokumen kebijakan, lihat Kebijakan EMR Tanpa Server di. Kebijakan referensi Ganti region, accountID, dan berlalu EMRServerlessAppRuntimeRole(s) dengan nilai aktualnya sebelum menyalin daftar pernyataan ke kebijakan inline peran Anda.

      catatan

      Anda dapat menyertakan ARN string peran runtime sebanyak yang diperlukan dalam izin, memisahkannya dengan koma.

    6. Pilih Berikutnya dan kemudian berikan nama Kebijakan.

    7. Pilih Buat kebijakan.

    8. Ulangi langkah Buat kebijakan sebaris untuk menambahkan kebijakan sebaris lain yang memberikan izin peran untuk memperbarui domain, profil pengguna, dan spasi. Untuk detail tentang dokumen SageMakerUpdateResourcesPolicy kebijakan, lihat Kebijakan tindakan pembaruan domain, profil pengguna, dan ruang diKebijakan referensi. Ganti region and accountID dengan nilai aktualnya sebelum menyalin daftar pernyataan ke kebijakan inline peran Anda.

  5. Langkah 5:

    Kaitkan daftar peran runtime dengan profil pengguna atau domain Anda sehingga Anda dapat menelusuri daftar peran secara visual dan memilih salah satu yang akan digunakan saat menghubungkan ke aplikasi EMR Tanpa Server dari. JupyterLab Anda dapat menggunakan SageMaker konsol atau skrip berikut. Selanjutnya, semua pekerjaan Apache Spark atau Apache Hive yang dibuat dari buku catatan Anda hanya akan mengakses data dan sumber daya yang diizinkan oleh kebijakan yang dilampirkan pada peran runtime yang dipilih.

    penting

    Kegagalan untuk menyelesaikan langkah ini akan mencegah Anda menghubungkan JupyterLab notebook ke aplikasi EMR Tanpa Server.

    SageMaker console

    Untuk mengaitkan peran runtime Anda dengan profil pengguna atau domain menggunakan SageMaker konsol:

    1. Arahkan ke SageMaker konsol di https://console.aws.amazon.com/sagemaker/.

    2. Di panel navigasi kiri, pilih domain, lalu pilih domain menggunakan peran SageMaker eksekusi yang izinnya Anda perbarui.

      • Untuk menambahkan peran runtime ke domain Anda: Di tab Konfigurasi Aplikasi pada halaman Detail Domain, navigasikan ke bagian tersebut JupyterLab.

      • Untuk menambahkan peran runtime ke profil pengguna: Pada halaman Detail domain, pilih tab Profil pengguna, pilih profil pengguna menggunakan peran SageMaker eksekusi yang izinnya Anda perbarui. Di tab Konfigurasi Aplikasi, arahkan ke JupyterLabbagian tersebut.

    3. Pilih Edit dan tambahkan ARNs peran eksekusi runtime EMR Tanpa Server Anda.

    4. Pilih Kirim.

    Saat Anda selanjutnya terhubung ke aplikasi EMR Tanpa Server melalui JupyterLab, peran runtime akan muncul di menu tarik-turun untuk dipilih.

    Python script

    Dalam JupyterLab aplikasi yang dimulai dari ruang pribadi menggunakan peran SageMaker eksekusi yang izinnya Anda perbarui, jalankan perintah berikut di terminal. GantidomainID,user-profile-name,studio-accountID, dan EMRServerlessRuntimeExecutionRole (s) dengan nilai yang tepat. Cuplikan kode ini memperbarui pengaturan profil pengguna untuk profil pengguna tertentu (client.update_userprofile) atau pengaturan domain (client.update_domain), yang secara khusus mengaitkan peran eksekusi runtime EMR Tanpa Server yang Anda buat sebelumnya.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'ExecutionRoleArns': ["arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleA", "arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleAA"] } } }) resp = client.describe_domain(DomainId="domainID") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))

Lintas akun

Diagram berikut menggambarkan peran dan izin yang diperlukan untuk mendaftar dan terhubung ke aplikasi EMR Tanpa Server dari Studio saat Studio dan aplikasi digunakan di akun yang berbeda. AWS

Diagram menunjukkan peran dan izin yang diperlukan untuk membuat daftar dan menghubungkan aplikasi EMR Tanpa Server dari Studio saat Studio dan aplikasi berada di akun yang berbeda. AWS

Untuk informasi selengkapnya tentang membuat peran di AWS akun, lihat https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html Membuat IAM peran (konsol).

Sebelum memulai:

Jika aplikasi EMR Tanpa Server dan Studio digunakan di AWS akun terpisah, Anda mengonfigurasi izin di kedua akun.

Di akun EMR Tanpa Server

Ikuti langkah-langkah ini untuk membuat peran dan kebijakan yang diperlukan pada akun tempat aplikasi EMR Tanpa Server Anda berjalan, juga disebut sebagai akun kepercayaan:

  1. Langkah 1: Buat setidaknya satu peran eksekusi runtime pekerjaan untuk aplikasi EMR Tanpa Server Anda di akun Anda (Dalam diagram Cross account EMRServerlessRuntimeExecutionRoleB di atas). Pilih Kebijakan kepercayaan khusus sebagai entitas tepercaya. Tambahkan izin yang diperlukan oleh pekerjaan Anda. Minimal, Anda memerlukan akses penuh ke bucket Amazon S3, serta membuat serta membaca akses ke Katalog AWS Glue Data.

    Untuk petunjuk terperinci tentang cara membuat peran eksekusi runtime baru untuk aplikasi EMR Tanpa Server Anda, ikuti langkah-langkah berikut:

    1. Navigasikan ke konsol IAM tersebut.

    2. Di panel navigasi kiri, pilih Kebijakan, lalu Buat kebijakan.

    3. Tambahkan izin yang diperlukan oleh peran runtime Anda, beri nama kebijakan, lalu pilih Buat kebijakan.

      Untuk contoh kebijakan runtime peran runtime EMR Tanpa Server, lihat Peran runtime Job untuk Amazon Tanpa Server. EMR

    4. Di panel navigasi kiri, pilih Peran dan kemudian Buat peran.

    5. Pada halaman Buat peran, pilih Kebijakan kepercayaan khusus sebagai entitas tepercaya.

    6. Tempel JSON dokumen berikut di bagian Kebijakan kepercayaan kustom, lalu pilih Berikutnya.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    7. Di halaman Tambahkan izin, tambahkan kebijakan yang Anda buat, lalu pilih Berikutnya.

    8. Pada halaman Ulasan, masukkan nama untuk peran seperti EMRServerlessAppRuntimeRoleB dan deskripsi opsional.

    9. Tinjau detail peran dan pilih Buat peran.

    Dengan peran ini, Anda dan rekan tim Anda dapat terhubung ke aplikasi yang sama, masing-masing menggunakan peran runtime yang dicakup dengan izin yang sesuai dengan tingkat akses individual Anda ke data.

    catatan

    Sesi Spark beroperasi secara berbeda.Sesi Spark diisolasi berdasarkan peran eksekusi yang digunakan dari Studio, sehingga pengguna dengan peran eksekusi yang berbeda akan memiliki sesi Spark yang terpisah dan terisolasi. Selain itu, jika Anda telah mengaktifkan identitas sumber untuk domain Anda, ada isolasi lebih lanjut dari sesi Spark di berbagai identitas sumber.

  2. Langkah 2: Buat IAM peran kustom bernama AssumableRole dengan konfigurasi berikut:

    • Izin: Berikan izin yang diperlukan (kebijakan Amazon EMR Tanpa Server) AssumableRole untuk mengizinkan mengakses sumber daya Tanpa Server. EMR Peran ini juga dikenal sebagai peran Akses.

    • Hubungan kepercayaan: Konfigurasikan kebijakan kepercayaan AssumableRole untuk mengizinkan asumsi peran eksekusi (SageMakerExecutionRoleDalam diagram lintas akun) dari akun Studio yang memerlukan akses.

    Dengan mengasumsikan peran tersebut, Studio dapat memperoleh akses sementara ke izin yang dibutuhkan di akun Tanpa EMR Server.

    Untuk petunjuk terperinci tentang cara membuat akun baru AssumableRole di AWS akun EMR Tanpa Server Anda, ikuti langkah-langkah berikut:

    1. Navigasikan ke konsol IAM tersebut.

    2. Di panel navigasi kiri, pilih Kebijakan, lalu Buat kebijakan.

    3. Di JSONtab, tambahkan izin Amazon EMR Tanpa Server yang memungkinkan akses dan operasi Tanpa EMR Server. Untuk detail tentang dokumen kebijakan, lihat Kebijakan EMR Tanpa Server di. Kebijakan referensi Gantiregion,accountID, dan yang diteruskan EMRServerlessAppRuntimeRole dengan nilai aktualnya sebelum menyalin daftar pernyataan ke kebijakan inline peran Anda.

      catatan

      EMRServerlessAppRuntimeRoleBerikut ini adalah peran eksekusi runtime pekerjaan yang dibuat di Langkah 1 (EMRServerlessAppRuntimeRoleBDalam diagram Cross account di atas). Anda dapat menyertakan ARN string peran runtime sebanyak yang diperlukan dalam izin, memisahkannya dengan koma.

    4. Pilih Berikutnya dan kemudian berikan nama Kebijakan.

    5. Pilih Buat kebijakan.

    6. Di panel navigasi kiri, pilih Peran dan kemudian Buat peran.

    7. Pada halaman Buat peran, pilih Kebijakan kepercayaan khusus sebagai entitas tepercaya.

    8. Tempel JSON dokumen berikut di bagian Kebijakan kepercayaan kustom, lalu pilih Berikutnya.

      Ganti studio-account dengan ID akun Studio, dan AmazonSageMaker-ExecutionRole dengan peran eksekusi yang digunakan oleh JupyterLab spasi Anda.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:role/service-role/AmazonSageMaker-ExecutionRole" }, "Action": "sts:AssumeRole" } ] }
    9. Di halaman Tambahkan izin, tambahkan izin yang EMRServerlessAppRuntimeRoleB Anda buat di Langkah 2 lalu pilih Berikutnya.

    10. Pada halaman Ulasan, masukkan nama untuk peran seperti AssumableRole dan deskripsi opsional.

    11. Tinjau detail peran dan pilih Buat peran.

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

Di akun Studio

Pada akun tempat Studio digunakan, juga disebut sebagai akun tepercaya, perbarui peran SageMaker eksekusi yang mengakses aplikasi EMR Tanpa Server Anda dengan izin yang diperlukan untuk mengakses sumber daya di akun terpercaya.

  1. Langkah 1: Ambil peran ARN SageMaker eksekusi yang digunakan oleh ruang Anda.

    Untuk informasi tentang spasi dan peran eksekusi SageMaker, lihatMemahami izin ruang domain dan peran eksekusi.

    Untuk informasi selengkapnya tentang cara mengambil peran eksekusi ARN of SageMaker, lihatDapatkan peran eksekusi Anda.

  2. Langkah 2: Lampirkan izin berikut ke peran SageMaker eksekusi yang mengakses aplikasi Tanpa EMR Server Anda.

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

    2. Pilih Peran dan kemudian cari peran eksekusi berdasarkan nama di kolom Pencarian. Nama peran adalah bagian terakhir dariARN, setelah garis miring terakhir (/).

    3. Ikuti tautan ke peran Anda.

    4. Pilih Tambahkan izin lalu Buat kebijakan sebaris.

    5. Di JSONtab, tambahkan kebijakan sebaris yang memberikan izin peran untuk memperbarui domain, profil pengguna, dan spasi. Untuk detail tentang dokumen SageMakerUpdateResourcesPolicy kebijakan, lihat Kebijakan tindakan pembaruan domain, profil pengguna, dan ruang diKebijakan referensi. Ganti region dan accountID dengan nilai aktualnya sebelum menyalin daftar pernyataan ke kebijakan inline peran Anda.

    6. Pilih Berikutnya dan kemudian berikan nama Kebijakan.

    7. Pilih Buat kebijakan.

    8. Ulangi langkah Buat kebijakan sebaris untuk menambahkan kebijakan lain yang memberikan peran eksekusi izin untuk mengambil alih AssumableRole dan kemudian melakukan tindakan yang diizinkan oleh kebijakan akses peran.

      Ganti emr-account dengan ID akun Amazon EMR Tanpa Server, dan AssumableRole dengan nama peran yang dapat diasumsikan yang dibuat di akun Amazon EMR Tanpa Server.

      { "Version": "2012-10-17", "Statement": { "Sid": "AllowSTSToAssumeAssumableRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::emr-account:role/AssumableRole" } }
  3. Langkah 3:

    Kaitkan daftar peran runtime dengan domain atau profil pengguna Anda sehingga Anda dapat menelusuri daftar peran secara visual dan memilih peran yang akan digunakan saat menghubungkan ke aplikasi EMR Tanpa Server. JupyterLab Anda dapat menggunakan SageMaker konsol atau skrip berikut. Selanjutnya, semua pekerjaan Apache Spark atau Apache Hive yang dibuat dari buku catatan Anda hanya akan mengakses data dan sumber daya yang diizinkan oleh kebijakan yang dilampirkan pada peran runtime yang dipilih.

    penting

    Kegagalan untuk menyelesaikan langkah ini akan mencegah Anda menghubungkan JupyterLab notebook ke aplikasi EMR Tanpa Server.

    SageMaker console

    Untuk mengaitkan peran runtime Anda dengan profil pengguna atau domain menggunakan SageMaker konsol:

    1. Arahkan ke SageMaker konsol di https://console.aws.amazon.com/sagemaker/.

    2. Di panel navigasi kiri, pilih domain, lalu pilih domain menggunakan peran SageMaker eksekusi yang izinnya Anda perbarui.

      • Untuk menambahkan peran runtime ke domain Anda: Di tab Konfigurasi Aplikasi pada halaman Detail Domain, navigasikan ke bagian tersebut JupyterLab.

      • Untuk menambahkan peran runtime ke profil pengguna: Pada halaman Detail domain, pilih tab Profil pengguna, pilih profil pengguna menggunakan peran SageMaker eksekusi yang izinnya Anda perbarui. Di tab Konfigurasi Aplikasi, arahkan ke JupyterLabbagian tersebut.

    3. Pilih Edit dan tambahkan peran ARNs yang dapat diasumsikan dan peran eksekusi runtime EMR Tanpa Server.

    4. Pilih Kirim.

    Saat Anda selanjutnya terhubung ke aplikasi EMR Tanpa Server melalui JupyterLab, peran runtime akan muncul di menu tarik-turun untuk dipilih.

    Python script

    Dalam JupyterLab aplikasi yang dimulai dari ruang pribadi menggunakan peran SageMaker eksekusi yang izinnya Anda perbarui, jalankan perintah berikut di terminal. GantidomainID,user-profile-name,studio-accountID, dan EMRServerlessRuntimeExecutionRole dengan nilai-nilai yang tepat. Cuplikan kode ini memperbarui pengaturan profil pengguna untuk profil pengguna tertentu (client.update_userprofile) atau pengaturan domain (client.update_domain) dalam domain. SageMaker Secara khusus, ini menetapkan peran eksekusi runtime untuk Amazon EMR Tanpa Server, yang telah Anda buat sebelumnya. Ini juga memungkinkan JupyterLab aplikasi untuk mengambil IAM peran tertentu (AssumableRole) untuk menjalankan aplikasi EMR Tanpa Server dalam akun AmazonEMR.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"], 'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServerlessRuntimeExecutionRoleA", "arn:aws:iam::emr-accountID:role/AnotherRuntimeExecutionRole"] } } }) resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))

Kebijakan referensi

  • EMRKebijakan tanpa server: Kebijakan ini memungkinkan pengelolaan aplikasi EMR Tanpa Server, termasuk mencantumkan, membuat (dengan SageMaker tag yang diperlukan), memulai, menghentikan, mendapatkan detail, menghapus, mengakses titik akhir Livy, dan mendapatkan dasbor yang dijalankan pekerjaan. Ini juga memungkinkan meneruskan peran runtime aplikasi EMR Tanpa Server yang diperlukan ke layanan.

    • EMRServerlessListApplications: Memungkinkan ListApplications tindakan pada semua sumber daya EMR Tanpa Server di wilayah dan AWS akun yang ditentukan.

    • EMRServerlessPassRole: Memungkinkan meneruskan peran runtime yang ditentukan di AWS akun yang disediakan, tetapi hanya ketika peran diteruskan keemr-serverless.amazonaws.com service.

    • EMRServerlessCreateApplicationAction: Mengizinkan CreateApplication dan TagResource tindakan pada sumber daya EMR Tanpa Server di wilayah dan AWS akun yang ditentukan. Namun, ini mengharuskan sumber daya yang dibuat atau diberi tag memiliki kunci tag tertentu (sagemaker:domain-arn,sagemaker:user-profile-arn, dansagemaker:space-arn) yang hadir dengan nilai non-null.

    • EMRServerlessDenyTaggingAction: UntagResource Tindakan TagResource dan pada sumber daya EMR Tanpa Server di wilayah dan AWS akun yang ditentukan jika sumber daya tidak memiliki kunci tag tertentu (sagemaker:domain-arn,sagemaker:user-profile-arn, dansagemaker:space-arn) yang ditetapkan.

    • EMRServerlessActions: Mengizinkan berbagai tindakan (StartApplication,StopApplication,GetApplication,DeleteApplication,AccessLivyEndpoints, danGetDashboardForJobRun) pada sumber daya EMR Tanpa Server, tetapi hanya jika sumber daya memiliki kunci tag yang ditentukan (sagemaker:domain-arn,sagemaker:user-profile-arn, dansagemaker:space-arn) disetel dengan nilai non-null.

    IAMKebijakan yang ditetapkan dalam JSON dokumen yang disediakan memberikan izin tersebut, tetapi membatasi akses ke keberadaan SageMaker tag tertentu pada aplikasi EMR Tanpa Server untuk memastikan bahwa hanya sumber daya Amazon EMR Tanpa Server yang terkait dengan SageMaker domain, profil pengguna, dan ruang tertentu yang dapat dikelola.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessListApplications", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications" ], "Resource": "arn:aws:emr-serverless:region:accountID:/*" }, { "Sid": "EMRServerlessPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::accountID:EMRServerlessAppRuntimeRole", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } }, { "Sid": "EMRServerlessCreateApplicationAction", "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:TagResource" ], "Resource": "arn:aws:emr-serverless:region:accountID:/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "sagemaker:domain-arn", "sagemaker:user-profile-arn", "sagemaker:space-arn" ] }, "Null": { "aws:RequestTag/sagemaker:domain-arn": "false", "aws:RequestTag/sagemaker:user-profile-arn": "false", "aws:RequestTag/sagemaker:space-arn": "false" } } }, { "Sid": "EMRServerlessDenyTaggingAction", "Effect": "Deny", "Action": [ "emr-serverless:TagResource", "emr-serverless:UntagResource" ], "Resource": "arn:aws:emr-serverless:region:accountID:/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "true", "aws:ResourceTag/sagemaker:user-profile-arn": "true", "aws:ResourceTag/sagemaker:space-arn": "true" } } }, { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:GetApplication", "emr-serverless:DeleteApplication", "emr-serverless:AccessLivyEndpoints", "emr-serverless:GetDashboardForJobRun" ], "Resource": "arn:aws:emr-serverless:region:accountID:/applications/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "false", "aws:ResourceTag/sagemaker:user-profile-arn": "false", "aws:ResourceTag/sagemaker:space-arn": "false" } } } ] }
  • Kebijakan tindakan pembaruan domain, profil pengguna, dan ruang: Kebijakan berikut memberikan izin untuk memperbarui SageMaker domain, profil pengguna, dan spasi dalam wilayah dan akun yang ditentukan. AWS

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerUpdateResourcesPolicy", "Effect": "Allow", "Action": [ "sagemaker:UpdateDomain", "sagemaker:UpdateUserprofile", "sagemaker:UpdateSpace" ], "Resource": [ "arn:aws:sagemaker:region>:accountID:domain/*", "arn:aws:sagemaker:region:accountID:user-profile/*" ] } ] }