Connect ke EMR klaster Amazon dari notebook - 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 notebook

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

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

  • Meneruskan kredensyal pengguna ke Kerberos,, LDAP atau kluster Amazon yang HTTP diautentikasi Auth Dasar. EMR Dalam mode interaktif, Studio meminta kredensil 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 Kerberos Anda,, atau klaster Amazon yang diautentikasi LDAP Authentikasi Dasar HTTP EMR. AWS Secrets Manager

Teruskan parameter ke perintah EMR koneksi Anda

Jika Anda menggunakan gambar dengan kernel SparkMagic PySpark dan Spark dan ingin membuat parameter perintah EMR koneksi Anda, berikan parameter Anda di bidang variabel Lingkungan alih-alih bidang Parameter dalam formulir Buat Job (di menu tarik-turun Opsi Tambahan). Pastikan perintah EMR koneksi Anda di notebook Jupyter melewati parameter ini sebagai variabel lingkungan. Misalnya, Anda lulus cluster-id sebagai variabel lingkungan saat Anda membuat pekerjaan Anda. Perintah EMR koneksi 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 Kerberos Anda,, atau klaster Amazon yang diautentikasi LDAP Authentikasi Dasar HTTP EMR

Untuk membuat koneksi aman ke EMR klaster Amazon yang menggunakan Kerberos,LDAP, atau otentikasi Auth HTTP Dasar, 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" ] } ] }