Connect ke EMR klaster Amazon dari Studio Classic menggunakan peran runtime IAM - Amazon SageMaker

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

Connect ke EMR klaster Amazon dari Studio Classic menggunakan peran runtime IAM

Saat tersambung ke EMR klaster Amazon dari notebook Amazon SageMaker Studio Classic, Anda dapat menelusuri daftar IAM peran secara visual, yang dikenal sebagai peran runtime, dan memilihnya dengan cepat. Selanjutnya, semua pekerjaan Apache Spark, Apache Hive, atau Presto yang dibuat dari notebook Studio Classic hanya mengakses data dan sumber daya yang diizinkan oleh kebijakan yang dilampirkan pada peran runtime. Selain itu, saat data diakses dari data lake yang dikelola AWS Lake Formation, Anda dapat menerapkan akses tingkat tabel dan tingkat kolom menggunakan kebijakan yang dilampirkan pada peran runtime.

Dengan kemampuan ini, Anda dan rekan tim Anda dapat terhubung ke cluster yang sama, masing-masing menggunakan peran runtime yang dicakup dengan izin yang sesuai dengan tingkat akses individual Anda ke data. Sesi Anda juga terisolasi satu sama lain di cluster bersama. Dengan kemampuan ini untuk mengontrol akses berbutir halus ke data pada cluster bersama yang sama, Anda dapat menyederhanakan penyediaan kluster Amazon, mengurangi biaya operasional, dan EMR menghemat biaya.

Untuk mencoba fitur baru ini, lihat Menerapkan kontrol akses data berbutir halus dengan dan AWS Lake Formation Amazon dari EMR Amazon SageMaker Studio Classic. Posting blog ini membantu Anda mengatur lingkungan demo tempat Anda dapat mencoba menggunakan peran runtime yang telah dikonfigurasi sebelumnya untuk terhubung ke cluster AmazonEMR.

Prasyarat

Sebelum Anda memulai, pastikan Anda memenuhi prasyarat berikut:

Skenario koneksi lintas akun

Autentikasi peran runtime mendukung berbagai skenario koneksi lintas akun saat data berada di luar akun Studio Classic. Gambar berikut menunjukkan tiga cara berbeda untuk menetapkan EMR klaster Amazon, data, dan bahkan peran EMR eksekusi Amazon antara Studio Classic dan akun data:

Skenario lintas akun didukung oleh otentikasi IAM peran runtime.

Di opsi 1, EMR klaster Amazon dan peran EMR eksekusi Amazon Anda berada di akun data terpisah dari akun Studio Classic Anda. Anda menentukan kebijakan izin peran EMR akses Amazon terpisah yang memberikan izin ke peran eksekusi Studio Classic Anda untuk mengambil peran EMR akses Amazon. Peran EMR akses Amazon kemudian memanggil Amazon EMR API GetClusterSessionCredentials atas nama peran eksekusi Studio Classic Anda, memberi Anda akses ke klaster.

Di opsi 2, EMR klaster Amazon dan peran EMR eksekusi Amazon Anda ada di akun Studio Classic Anda. Peran eksekusi Studio Classic Anda memiliki izin untuk menggunakan Amazon EMR API GetClusterSessionCredentials untuk mendapatkan akses ke klaster Anda. Untuk mengakses bucket Amazon S3, berikan izin akses bucket Amazon S3 lintas EMR akun peran eksekusi Amazon S3 lintas akun — Anda memberikan izin ini dalam kebijakan bucket Amazon S3 Anda.

Di opsi 3, EMR klaster Amazon Anda ada di akun Studio Classic Anda, dan peran EMR eksekusi Amazon ada di akun data. Peran eksekusi Studio Classic Anda memiliki izin untuk menggunakan Amazon EMR API GetClusterSessionCredentials untuk mendapatkan akses ke klaster Anda. Tambahkan peran EMR eksekusi Amazon ke dalam konfigurasi peran eksekusiJSON. Kemudian Anda dapat memilih peran di UI saat memilih klaster. Untuk detail tentang cara mengatur JSON file konfigurasi peran eksekusi, lihatMemuat peran eksekusi Anda ke Studio Classic.

Siapkan Studio Classic untuk menggunakan peran runtime IAM

Untuk membuat otentikasi peran runtime untuk EMR kluster Amazon Anda, konfigurasikan IAM kebijakan, jaringan, dan penyempurnaan kegunaan yang diperlukan. Penyiapan Anda bergantung pada apakah Anda menangani pengaturan lintas akun apa pun jika EMR klaster Amazon, peran EMR eksekusi Amazon, atau keduanya, berada di luar akun Amazon SageMaker Studio Classic Anda. Diskusi berikut memandu Anda melalui kebijakan untuk menginstal, cara mengonfigurasi jaringan untuk mengizinkan lalu lintas antar akun, dan file konfigurasi lokal yang akan disiapkan untuk mengotomatiskan koneksi Amazon EMR Anda.

Konfigurasikan autentikasi peran runtime saat EMR klaster Amazon dan Studio Classic berada di akun yang sama

Jika EMR klaster Amazon berada di akun Studio Classic, tambahkan kebijakan dasar untuk menyambung ke EMR klaster Amazon dan setel izin untuk memanggil Amazon EMR APIGetClusterSessionCredentials, yang memberi Anda akses ke klaster. Selesaikan langkah-langkah berikut untuk menambahkan izin yang diperlukan ke kebijakan eksekusi Studio Classic Anda:

  1. Tambahkan IAM kebijakan yang diperlukan untuk menyambung ke EMR kluster Amazon. Untuk detailnya, lihat Daftar EMR kluster Amazon dari Studio atau Studio Classic.

  2. Berikan izin untuk memanggil Amazon EMR API GetClusterSessionCredentials saat Anda melewati satu atau beberapa peran EMR eksekusi Amazon yang diizinkan yang ditentukan dalam kebijakan.

  3. (Opsional) Berikan izin untuk meneruskan IAM peran yang mengikuti konvensi penamaan yang ditentukan pengguna.

  4. (Opsional) Berikan izin untuk mengakses EMR kluster Amazon yang ditandai dengan string yang ditentukan pengguna tertentu.

  5. Jika Anda tidak ingin memanggil perintah EMR koneksi Amazon secara manual, instal file SageMaker konfigurasi di Amazon lokal Anda EFS dan pilih peran yang akan digunakan saat Anda memilih EMR cluster Amazon Anda. Untuk detail tentang cara melakukan pramuat IAM peran Anda, lihatMemuat peran eksekusi Anda ke Studio Classic.

Contoh kebijakan berikut memungkinkan peran EMR eksekusi Amazon milik kelompok pemodelan dan pelatihan untuk dipanggilGetClusterSessionCredentials. Selain itu, pemegang polis dapat mengakses EMR kluster Amazon yang ditandai dengan string atau. modeling training

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "*", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::123456780910:role/emr-execution-role-ml-modeling*", "arn:aws:iam::123456780910:role/emr-execution-role-ml-training*" ], "elasticmapreduce:ResourceTag/group": [ "*modeling*", "*training*" ] } } } ] }

Konfigurasikan autentikasi peran runtime saat klaster dan Studio Classic Anda berada di akun yang berbeda

Jika EMR klaster Amazon Anda tidak ada di akun Studio Classic, izinkan peran eksekusi Studio Classic Anda untuk mengambil peran EMR akses Amazon lintas akun sehingga Anda dapat terhubung ke klaster. Selesaikan langkah-langkah berikut untuk menyiapkan konfigurasi lintas akun Anda:

  1. Buat kebijakan izin peran eksekusi Studio Classic agar peran eksekusi dapat mengambil peran EMR akses Amazon. Kebijakan berikut adalah contoh:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAssumeCrossAccountEMRAccessRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::emr_account_id:role/emr-access-role-name" } ] }
  2. Buat kebijakan kepercayaan untuk menentukan akun Studio Classic mana IDs yang dipercaya untuk mengambil peran EMR akses Amazon. Kebijakan berikut adalah contoh:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerExecutionRoleToAssumeThisRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio_account_id:role/studio_execution_role" }, "Action": "sts:AssumeRole" } }
  3. Buat kebijakan izin peran EMR akses Amazon, yang memberi peran EMR eksekusi Amazon izin yang diperlukan untuk menjalankan tugas yang diinginkan di klaster. Konfigurasikan peran EMR akses Amazon untuk memanggil API GetClusterSessionCredentials dengan peran EMR eksekusi Amazon yang ditentukan dalam kebijakan izin peran akses. Kebijakan berikut adalah contoh:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallingEmrGetClusterSessionCredentialsAPI", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::emr_account_id:role/emr-execution-role-name" ] } } } ] }
  4. Siapkan jaringan lintas akun sehingga lalu lintas dapat bergerak bolak-balik antar akun Anda. Untuk instruksi terpandu, lihat Mengatur jaringan di posting blog Membuat dan mengelola EMR Cluster Amazon dari SageMaker Studio Classic untuk menjalankan beban kerja Spark dan ML interaktif — Bagian 2. Langkah-langkah dalam posting blog membantu Anda menyelesaikan tugas-tugas berikut:

    1. VPC-peer akun Studio Classic Anda dan EMR akun Amazon Anda untuk membuat koneksi.

    2. Tambahkan rute secara manual ke tabel rute subnet pribadi di kedua akun. Ini memungkinkan pembuatan dan koneksi EMR cluster Amazon dari akun Studio Classic ke subnet pribadi akun jarak jauh.

    3. Siapkan grup keamanan yang dilampirkan ke domain Studio Classic Anda untuk mengizinkan lalu lintas keluar dan grup keamanan node EMR utama Amazon untuk mengizinkan TCP lalu lintas masuk dari grup keamanan instans Studio Classic.

  5. Jika Anda tidak ingin memanggil perintah EMR koneksi Amazon secara manual, instal file SageMaker konfigurasi di Amazon lokal Anda EFS sehingga Anda dapat memilih peran yang akan digunakan saat memilih EMR cluster Amazon Anda. Untuk detail tentang cara melakukan pramuat IAM peran Anda, lihatMemuat peran eksekusi Anda ke Studio Classic.

Konfigurasikan akses Lake Formation

Saat mengakses data dari data lake yang dikelola oleh AWS Lake Formation, Anda dapat menerapkan akses tingkat tabel dan tingkat kolom menggunakan kebijakan yang dilampirkan pada peran runtime Anda. Untuk mengonfigurasi izin akses Lake Formation, lihat Mengintegrasikan Amazon EMR dengan AWS Lake Formation.

Memuat peran eksekusi Anda ke Studio Classic

Jika Anda tidak ingin memanggil perintah EMR koneksi Amazon secara manual, Anda dapat menginstal file SageMaker konfigurasi di Amazon lokal Anda EFS sehingga Anda dapat memilih peran eksekusi yang akan digunakan saat memilih EMR cluster Amazon Anda.

Untuk menulis file konfigurasi untuk peran EMR eksekusi Amazon, kaitkan a Menggunakan konfigurasi siklus hidup untuk menyesuaikan Studio Classic (LCC) ke aplikasi server Jupyter. Atau, Anda dapat menulis atau memperbarui file konfigurasi dan memulai ulang server Jupyter dengan perintah:. restart-jupyter-server

Cuplikan berikut adalah contoh skrip LCC bash yang dapat Anda terapkan jika aplikasi dan klaster Studio Classic Anda berada di akun yang sama:

#!/bin/bash set -eux FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE" FILE_NAME="emr-configurations-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "emr-execution-role-arns": { "123456789012": [ "arn:aws:iam::123456789012:role/emr-execution-role-1", "arn:aws:iam::123456789012:role/emr-execution-role-2" ] } } EOF

Jika aplikasi dan klaster Studio Classic Anda berada di akun yang berbeda, tentukan peran EMR akses Amazon yang dapat menggunakan klaster. Dalam contoh kebijakan berikut, 123456789012 adalah untuk ARN akun EMR klaster Amazon, dan 212121212121 dan 434343434343 adalah untuk peran akses Amazon yang diizinkan. ARNs EMR

#!/bin/bash set -eux FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE" FILE_NAME="emr-configurations-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "emr-execution-role-arns": { "123456789012": [ "arn:aws:iam::212121212121:role/emr-execution-role-1", "arn:aws:iam::434343434343:role/emr-execution-role-2" ] } } EOF # add your cross-account EMR access role FILE_DIRECTORY="/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE" FILE_NAME="emr-discovery-iam-role-arns-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "123456789012": "arn:aws:iam::123456789012:role/cross-account-emr-access-role" } EOF