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

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 aplikasi Amazon EMR dari Studio SageMaker

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

Peran yang harus Anda tambahkan izin yang diperlukan bergantung pada apakah Studio dan aplikasi EMR Tanpa Server Anda berada di akun yang AWS 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 peran IAM yang digunakan oleh lingkungan eksekusi pekerjaan EMR Tanpa Server untuk mengakses layanan dan AWS sumber daya lain yang diperlukan selama runtime, seperti Amazon S3 untuk akses data, CloudWatch untuk pencatatan, akses ke Katalog Data, atau layanan lain berdasarkan persyaratan beban kerja Anda. AWS Glue 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 Server EMR.

      catatan

      Anda dapat menentukan beberapa peran RBAC 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 izin RBAC, lihat Praktik terbaik keamanan untuk Amazon Amazon EMR Tanpa Server.

    • SageMaker Peran eksekusi AI: Peran eksekusi yang memungkinkan SageMaker AI melakukan tugas tertentu seperti membaca data dari bucket Amazon S3, menulis log CloudWatch, dan mengakses AWS layanan lain yang mungkin dibutuhkan alur kerja Anda. Peran eksekusi SageMaker AI juga memiliki izin khusus iam:PassRole yang disebut yang memungkinkan SageMaker AI untuk meneruskan peran eksekusi runtime sementara ke aplikasi EMR Tanpa 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 peran IAM yang dapat diasumsikan oleh peran eksekusi SageMaker AI untuk melakukan operasi yang terkait dengan pengelolaan aplikasi EMR Tanpa Server. Peran ini menentukan izin dan kebijakan akses yang diperlukan saat mencantumkan, menghubungkan ke, atau mengelola aplikasi EMR Tanpa Server. Mereka biasanya digunakan dalam skenario lintas akun, di mana aplikasi EMR Tanpa Server berada di akun yang AWS berbeda dari domain AI. SageMaker Memiliki peran IAM khusus untuk aplikasi EMR Tanpa Server Anda membantu mengikuti prinsip hak istimewa paling sedikit dan memastikan bahwa Amazon EMR hanya 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 aplikasi Amazon EMR dan Studio Anda digunakan di AWS akun yang sama, ikuti langkah-langkah berikut:

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

    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 (EMRServerlessRuntimeExecutionRoleADalam diagram kasus penggunaan akun Tunggal 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. Arahkan ke konsol IAM.

    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 runtime EMR 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 dokumen JSON berikut di bagian Kebijakan kepercayaan kustom dan kemudian 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 ARN dari peran eksekusi AI SageMaker yang digunakan oleh ruang pribadi Anda.

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

    Untuk informasi lebih lanjut tentang cara mengambil ARN SageMaker peran eksekusi AI, lihat. Dapatkan peran eksekusi Anda

    catatan

    Atau, pengguna yang baru mengenal SageMaker AI dapat menyederhanakan proses penyiapan mereka dengan secara otomatis membuat peran eksekusi SageMaker AI 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 konsol SageMaker AI.

    • 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 SageMaker Manajer Peran, Anda hanya dapat menetapkan satu peran runtime ke aplikasi EMR Tanpa Server, 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 eksekusi SageMaker AI yang mengakses aplikasi EMR Tanpa 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 dari ARN, setelah garis miring terakhir (/).

    3. Ikuti tautan ke peran Anda.

    4. Pilih Tambahkan izin, lalu Buat kebijakan sebaris.

    5. Di tab JSON, tambahkan izin Amazon EMR Tanpa Server yang memungkinkan akses dan operasi EMR Tanpa 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

      Anda dapat memasukkan string ARN sebanyak peran runtime 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 dan 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 konsol SageMaker AI 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 AI console

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

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

    2. Di panel navigasi kiri, pilih domain, lalu pilih domain menggunakan peran eksekusi SageMaker AI 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 eksekusi SageMaker AI yang izinnya Anda perbarui. Di tab Konfigurasi Aplikasi, arahkan ke JupyterLabbagian tersebut.

    3. Pilih Edit dan tambahkan peran ARNs 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 eksekusi SageMaker AI 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 peran IAM (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. Arahkan ke konsol IAM.

    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 EMR 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 dokumen JSON berikut di bagian Kebijakan kepercayaan kustom dan kemudian 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 peran IAM kustom bernama AssumableRole dengan konfigurasi berikut:

    • Izin: Berikan izin yang diperlukan (kebijakan Amazon EMR Tanpa Server) untuk AssumableRole memungkinkan mengakses sumber daya EMR Tanpa Server. 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 EMR Tanpa Server.

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

    1. Arahkan ke konsol IAM.

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

    3. Di tab JSON, tambahkan izin Amazon EMR Tanpa Server yang memungkinkan akses dan operasi EMR Tanpa 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 memasukkan string ARN sebanyak peran runtime 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 dokumen JSON berikut di bagian Kebijakan kepercayaan kustom dan kemudian 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 peran IAM (konsol).

Di akun Studio

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

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

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

    Untuk informasi lebih lanjut tentang cara mengambil ARN SageMaker peran eksekusi AI, lihat. Dapatkan peran eksekusi Anda

  2. Langkah 2: Lampirkan izin berikut ke peran eksekusi SageMaker AI yang mengakses aplikasi EMR Tanpa 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 dari ARN, setelah garis miring terakhir (/).

    3. Ikuti tautan ke peran Anda.

    4. Pilih Tambahkan izin, lalu Buat kebijakan sebaris.

    5. Di tab JSON, 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 izin kepada peran eksekusi untuk mengasumsikan 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 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 salah satu yang akan digunakan saat menghubungkan ke aplikasi EMR Tanpa Server dari. JupyterLab Anda dapat menggunakan konsol SageMaker AI 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 AI console

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

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

    2. Di panel navigasi kiri, pilih domain, lalu pilih domain menggunakan peran eksekusi SageMaker AI 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 eksekusi SageMaker AI 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 eksekusi SageMaker AI 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 AI. Secara khusus, ini menetapkan peran eksekusi runtime untuk Amazon EMR Serverless, yang telah Anda buat sebelumnya. Ini juga memungkinkan JupyterLab aplikasi untuk mengambil peran IAM tertentu (AssumableRole) untuk menjalankan aplikasi EMR Tanpa Server dalam akun EMR Amazon.

    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

  • Kebijakan EMR Tanpa Server: Kebijakan ini memungkinkan pengelolaan aplikasi EMR Tanpa Server, termasuk membuat daftar, membuat (dengan tag SageMaker AI 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 akun yang ditentukan. AWS

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

    • EMRServerlessCreateApplicationAction: Memungkinkan CreateApplication dan TagResource tindakan pada sumber daya EMR Tanpa Server di wilayah dan akun yang ditentukan. AWS 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 tertentu jika sumber daya tidak memiliki kunci tag yang ditentukan (sagemaker:domain-arn,sagemaker:user-profile-arn, dan) yang ditetapkan. sagemaker:space-arn

    • EMRServerlessActions: Mengizinkan berbagai tindakan (StartApplication,StopApplication,GetApplication,, DeleteApplicationAccessLivyEndpoints, 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.

    Kebijakan IAM yang didefinisikan dalam dokumen JSON yang disediakan memberikan izin tersebut, tetapi membatasi akses ke keberadaan tag SageMaker AI tertentu pada aplikasi EMR Tanpa Server untuk memastikan bahwa hanya sumber daya Amazon EMR Tanpa Server yang terkait dengan domain AI SageMaker tertentu, profil pengguna, dan ruang 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 domain SageMaker AI, 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/*" ] } ] }