Connect ke kluster EMR Amazon dari notebook - Amazon SageMaker AI

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

Connect ke kluster EMR Amazon dari notebook

Jika Anda terhubung ke kluster EMR Amazon dari notebook Jupyter di Studio, Anda mungkin perlu melakukan penyiapan tambahan. Secara khusus, diskusi berikut membahas dua masalah:

  • Meneruskan parameter ke perintah koneksi EMR Amazon Anda. Dalam SparkMagic kernel, parameter yang Anda berikan ke perintah koneksi EMR Amazon Anda mungkin tidak berfungsi seperti yang diharapkan karena perbedaan cara Papermill melewati parameter dan SparkMagic cara menerima parameter. Solusi untuk mengatasi batasan ini adalah dengan meneruskan parameter sebagai variabel lingkungan. Untuk detail selengkapnya tentang masalah dan solusinya, lihat. Lulus parameter ke perintah koneksi EMR Anda

  • Meneruskan kredensyal pengguna ke cluster EMR Amazon yang diautentikasi oleh Kerberos, LDAP, atau HTTP Basic Auth-autentikasi. Dalam mode interaktif, Studio meminta kredensi dalam bentuk popup tempat Anda dapat memasukkan kredenal masuk Anda. Dalam buku catatan terjadwal noninteraktif Anda, Anda harus melewatinya melalui. AWS Secrets Manager Untuk detail selengkapnya tentang cara menggunakan pekerjaan buku catatan terjadwal Anda, lihatTeruskan kredensyal pengguna ke cluster EMR Amazon yang diautentikasi Auth-Kerberos, LDAP, atau HTTP Basic Auth-Anda. AWS Secrets Manager

Lulus parameter ke perintah koneksi EMR Anda

Jika Anda menggunakan gambar dengan kernel SparkMagic PySpark dan Spark dan ingin membuat parameter perintah koneksi EMR Anda, berikan parameter Anda di bidang variabel Lingkungan alih-alih bidang Parameter dalam formulir Buat Job (di menu tarik-turun Opsi Tambahan). Pastikan perintah koneksi EMR Anda di notebook Jupyter melewati parameter ini sebagai variabel lingkungan. Misalnya, Anda lulus cluster-id sebagai variabel lingkungan saat Anda membuat pekerjaan Anda. Perintah koneksi EMR Anda akan terlihat seperti berikut:

%%local import os
%sm_analytics emr connect —cluster-id {os.getenv('cluster_id')} --auth-type None

Anda memerlukan solusi ini untuk memenuhi persyaratan oleh SparkMagic dan Papermill. Untuk konteks latar belakang, SparkMagic kernel mengharapkan bahwa perintah %%local ajaib menyertai variabel lokal apa pun yang Anda tentukan. Namun, Papermill tidak lulus perintah %%local ajaib dengan penggantian Anda. Untuk mengatasi batasan Papermill ini, Anda harus menyediakan parameter Anda sebagai variabel lingkungan di bidang variabel Lingkungan.

Teruskan kredensyal pengguna ke cluster EMR Amazon yang diautentikasi Auth-Kerberos, LDAP, atau HTTP Basic Auth-Anda

Untuk membuat koneksi aman ke kluster EMR Amazon yang menggunakan otentikasi Kerberos, LDAP, atau HTTP Basic Auth, Anda menggunakan AWS Secrets Manager untuk meneruskan kredensyal pengguna ke perintah koneksi Anda. Untuk informasi tentang cara membuat rahasia Secrets Manager, lihat Membuat AWS Secrets Manager rahasia. Rahasia Anda harus berisi nama pengguna dan kata sandi Anda. Anda meneruskan rahasia dengan --secrets argumen, seperti yang ditunjukkan pada contoh berikut:

%sm_analytics emr connect --cluster-id j_abcde12345 --auth Kerberos --secret aws_secret_id_123

Administrator Anda dapat menyiapkan kebijakan akses fleksibel menggunakan metode attribute-based-access-control (ABAC), yang menetapkan akses berdasarkan tag khusus. Anda dapat mengatur akses fleksibel untuk membuat satu rahasia untuk semua pengguna di akun atau rahasia untuk setiap pengguna. Contoh kode berikut menunjukkan skenario ini:

Buat satu rahasia untuk semua pengguna di akun

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::AWS_ACCOUNT_ID:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes789-7g8h9i" ] } ] }

Buat rahasia yang berbeda untuk setiap pengguna

Anda dapat membuat rahasia yang berbeda untuk setiap pengguna menggunakan PrincipleTag tag, seperti yang ditunjukkan pada contoh berikut:

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::AWS_ACCOUNT_ID:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Condition" : { "StringEquals" : { "aws:ResourceTag/user-identity": "${aws:PrincipalTag/user-identity}" } }, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes789-7g8h9i" ] } ] }