

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
<a name="studio-emr-serverless-permissions"></a>

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](https://docs.aws.amazon.com/http://emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-defaults-executionRoleArn) 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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) 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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-best-practices.html#security-practice-rbac) 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 berbagai akun.

## Akun tunggal
<a name="studio-set-up-emr-serverless-permissions-singleaccount"></a>

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\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-singleaccount.png)


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.](https://console.aws.amazon.com/S3)

   Untuk mempelajari cara menemukan bucket berdasarkan nama, lihat [Mengakses dan mencantumkan bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html). Untuk informasi tentang cara membuat bucket Amazon S3, lihat [Membuat](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) bucket. 

1. **Langkah 2**: Buat setidaknya satu peran eksekusi runtime pekerjaan untuk aplikasi EMR Tanpa Server Anda di akun Anda (`EMRServerlessRuntimeExecutionRoleA`Dalam 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](https://console.aws.amazon.com/iam).

   1. Di panel navigasi kiri, pilih **Kebijakan**, lalu **Buat kebijakan**.

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

      Anda dapat merujuk ke [peran runtime Job untuk EMR](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) Tanpa Server untuk menemukan contoh kebijakan runtime untuk peran runtime EMR Tanpa Server.

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

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

   1. Tempel dokumen JSON berikut di bagian **Kebijakan kepercayaan kustom** dan kemudian pilih **Berikutnya**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "emr-serverless.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Di halaman **Tambahkan izin**, tambahkan kebijakan yang Anda buat, lalu pilih **Berikutnya**.

   1. Pada halaman **Ulasan**, masukkan nama untuk peran seperti `EMRServerlessAppRuntimeRoleA` dan deskripsi opsional.

   1. 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.

1. **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, lihat[Memahami izin ruang domain dan peran eksekusi](execution-roles-and-spaces.md).

   Untuk informasi lebih lanjut tentang cara mengambil ARN SageMaker peran eksekusi AI, lihat. [Dapatkan peran eksekusi Anda](sagemaker-roles.md#sagemaker-roles-get-execution-role)
**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](https://console.aws.amazon.com/sagemaker).
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.

1. **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/](https://console.aws.amazon.com/sagemaker/).

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

   1. Ikuti tautan ke peran Anda.

   1. Pilih **Tambahkan izin** lalu **Buat kebijakan sebaris**.

   1. 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](#studio-set-up-emr-serverless-permissions-reference) Ganti*region*,*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.

   1. Pilih **Berikutnya** dan kemudian berikan **nama Kebijakan**.

   1. Pilih **Buat kebijakan**.

   1. 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* di[Kebijakan referensi](#studio-set-up-emr-serverless-permissions-reference). Ganti *region* dan *accountID* dengan nilai aktualnya sebelum menyalin daftar pernyataan ke kebijakan inline peran Anda.

1. **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](connect-emr-serverless-application.md) 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/](https://console.aws.amazon.com/sagemaker/).

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

   1. 
      + 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 **JupyterLab**bagian tersebut.

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

   1. 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. Ganti`domainID`,`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_user_profile`) 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_user_profile(
   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
<a name="studio-set-up-emr-serverless-permissions-crossaccount"></a>

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\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-crossaccount.png)


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

Sebelum memulai: 
+ Ambil ARN dari peran eksekusi AI SageMaker yang digunakan oleh ruang pribadi Anda. Untuk informasi tentang spasi dan peran eksekusi di SageMaker AI, lihat[Memahami izin ruang domain dan peran eksekusi](execution-roles-and-spaces.md). Untuk informasi lebih lanjut tentang cara mengambil ARN SageMaker peran eksekusi AI, lihat. [Dapatkan peran eksekusi Anda](sagemaker-roles.md#sagemaker-roles-get-execution-role)
+ [Ambil ARN bucket Amazon S3 yang akan Anda gunakan untuk sumber data dan penyimpanan data keluaran di konsol Amazon S3.](https://console.aws.amazon.com/S3)

  Untuk informasi tentang cara membuat bucket Amazon S3, lihat [Membuat](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) bucket. Untuk mempelajari cara menemukan bucket berdasarkan nama, lihat [Mengakses dan mencantumkan bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html).

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

### Di akun EMR Tanpa Server
<a name="studio-set-up-emr-serverless-permissions-crossaccount-emraccount"></a>

*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](https://console.aws.amazon.com/iam).

   1. Di panel navigasi kiri, pilih **Kebijakan**, lalu **Buat kebijakan**.

   1. 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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) untuk Amazon EMR Tanpa Server.

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

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

   1. Tempel dokumen JSON berikut di bagian **Kebijakan kepercayaan kustom** dan kemudian pilih **Berikutnya**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "emr-serverless.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Di halaman **Tambahkan izin**, tambahkan kebijakan yang Anda buat, lalu pilih **Berikutnya**.

   1. Pada halaman **Ulasan**, masukkan nama untuk peran seperti `EMRServerlessAppRuntimeRoleB` dan deskripsi opsional.

   1. 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.

1. **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 (`SageMakerExecutionRole`Dalam 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](https://console.aws.amazon.com/iam).

   1. Di panel navigasi kiri, pilih **Kebijakan**, lalu **Buat kebijakan**.

   1. 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](#studio-set-up-emr-serverless-permissions-reference) Ganti`region`,`accountID`, dan yang diteruskan `EMRServerlessAppRuntimeRole` dengan nilai aktualnya sebelum menyalin daftar pernyataan ke kebijakan inline peran Anda.
**catatan**  
`EMRServerlessAppRuntimeRole`Berikut ini adalah peran eksekusi runtime pekerjaan yang dibuat di Langkah 1 (`EMRServerlessAppRuntimeRoleB`Dalam diagram *Cross account* di atas). Anda dapat memasukkan string ARN sebanyak peran runtime yang diperlukan dalam izin, memisahkannya dengan koma. 

   1. Pilih **Berikutnya** dan kemudian berikan **nama Kebijakan**.

   1. Pilih **Buat kebijakan**.

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

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

   1. 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. 

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Di halaman **Tambahkan izin**, tambahkan izin yang `EMRServerlessAppRuntimeRoleB` Anda buat di Langkah 2 lalu pilih **Berikutnya**.

   1. Pada halaman **Ulasan**, masukkan nama untuk peran seperti `AssumableRole` dan deskripsi opsional.

   1. Tinjau detail peran dan pilih **Buat peran**.

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

### Di akun Studio
<a name="studio-set-up-emr-serverless-permissions-crossaccount-studioaccount"></a>

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, lihat[Memahami izin ruang domain dan peran eksekusi](execution-roles-and-spaces.md).

   Untuk informasi lebih lanjut tentang cara mengambil ARN SageMaker peran eksekusi AI, lihat. [Dapatkan peran eksekusi Anda](sagemaker-roles.md#sagemaker-roles-get-execution-role)

1. **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/](https://console.aws.amazon.com/iam/).

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

   1. Ikuti tautan ke peran Anda.

   1. Pilih **Tambahkan izin** lalu **Buat kebijakan sebaris**.

   1. 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* di[Kebijakan referensi](#studio-set-up-emr-serverless-permissions-reference). Ganti `region` dan `accountID` dengan nilai aktualnya sebelum menyalin daftar pernyataan ke kebijakan inline peran Anda.

   1. Pilih **Berikutnya** dan kemudian berikan **nama Kebijakan**.

   1. Pilih **Buat kebijakan**.

   1. 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 dibuat di akun Amazon EMR Tanpa Server.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": {
              "Sid": "AllowSTSToAssumeAssumableRole",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::111122223333:role/AssumableRole"
          }
      }
      ```

------

1. **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](connect-emr-serverless-application.md) 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/](https://console.aws.amazon.com/sagemaker/).

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

   1. 
      + 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 **JupyterLab**bagian tersebut.

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

   1. 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. Ganti`domainID`,`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_user_profile`) 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_user_profile(
   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
<a name="studio-set-up-emr-serverless-permissions-reference"></a>
+ 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 ke`emr-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`, dan`sagemaker: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`,, `DeleteApplication``AccessLivyEndpoints`, dan`GetDashboardForJobRun`) pada sumber daya EMR Tanpa Server, tetapi hanya jika sumber daya memiliki kunci tag yang ditentukan (`sagemaker:domain-arn`,`sagemaker:user-profile-arn`, dan`sagemaker: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. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "EMRServerlessListApplications",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:ListApplications"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*"
          },
          {
              "Sid": "EMRServerlessPassRole",
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::111122223333:role/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:us-east-1:111122223333:/*",
              "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:us-east-1:111122223333:/*",
              "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:us-east-1:111122223333:/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 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "SageMakerUpdateResourcesPolicy",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:UpdateDomain",
                  "sagemaker:UpdateUserprofile",
                  "sagemaker:UpdateSpace"
              ],
              "Resource": [
                  "arn:aws:sagemaker:us-east-1:111122223333:domain/*",
                  "arn:aws:sagemaker:us-east-1:111122223333:user-profile/*"
              ]
          }
      ]
  }
  ```

------