Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan peran eksekusi tugas dengan Amazon EMR di EKS
Untuk menggunakan perintah StartJobRun
untuk mengirimkan tugas berjalan di klaster EKS, Anda harus terlebih dahulu mengorientasi peran eksekusi tugas yang akan digunakan dengan klaster virtual. Untuk informasi selengkapnya, lihat Untuk membuat peran eksekusi tugas di Menyiapkan Amazon EMR di EKS. Anda juga dapat mengikuti petunjuk di bagian Buat Peran IAM untuk pelaksanaan pekerjaan
Izin berikut harus disertakan dalam kebijakan kepercayaan untuk peran eksekusi tugas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::
AWS_ACCOUNT_ID
:oidc-provider/OIDC_PROVIDER
" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER
:sub": "system:serviceaccount:NAMESPACE
:emr-containers-sa-*-*-AWS_ACCOUNT_ID
-BASE36_ENCODED_ROLE_NAME
" } } } ] }
Kebijakan kepercayaan pada contoh sebelumnya hanya memberikan izin ke akun layanan Kubernetes yang dikelola EMR Amazon EMR dengan nama yang cocok dengan polanya. emr-containers-sa-*-*-
Akun layanan dengan pola ini akan dibuat secara otomatis pada pengiriman pekerjaan, dan dicakup ke namespace tempat Anda mengirimkan pekerjaan. Kebijakan kepercayaan ini memungkinkan akun layanan ini untuk mengasumsikan peran eksekusi dan mendapatkan kredensial sementara peran eksekusi. Akun layanan dari kluster Amazon EKS yang berbeda atau dari namespace yang berbeda dalam kluster EKS yang sama dibatasi untuk mengasumsikan peran eksekusi.AWS_ACCOUNT_ID
-BASE36_ENCODED_ROLE_NAME
Anda dapat menjalankan perintah berikut untuk memperbarui kebijakan kepercayaan secara otomatis dalam format yang diberikan di atas.
aws emr-containers update-role-trust-policy \ --cluster-name
cluster
\ --namespacenamespace
\ --role-nameiam_role_name_for_job_execution
Mengontrol akses ke peran eksekusi
Administrator untuk klaster Amazon EKS Anda dapat membuat EMR Amazon multi-tenant di kluster virtual EKS tempat administrator IAM dapat menambahkan beberapa peran eksekusi. Karena penyewa yang tidak tepercaya dapat menggunakan peran eksekusi ini untuk mengirimkan pekerjaan yang menjalankan kode arbitrer, Anda mungkin ingin membatasi penyewa tersebut sehingga mereka tidak dapat menjalankan kode yang mendapatkan izin yang ditetapkan ke satu atau beberapa peran eksekusi ini. Untuk membatasi kebijakan IAM yang dilampirkan pada identitas IAM, administrator IAM dapat menggunakan kunci kondisi Amazon Resource Name (ARN) opsional. emr-containers:ExecutionRoleArn
Kondisi ini menerima daftar ARN peran eksekusi yang memiliki izin ke klaster virtual, seperti yang ditunjukkan oleh kebijakan izin berikut.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "emr-containers:StartJobRun", "Resource": "arn:aws:emr-containers:
REGION
:AWS_ACCOUNT_ID
:/virtualclusters/VIRTUAL_CLUSTER_ID
", "Condition": { "ArnEquals": { "emr-containers:ExecutionRoleArn": [ "execution_role_arn_1
", "execution_role_arn_2
", ... ] } } } ] }
Jika Anda ingin mengizinkan semua peran eksekusi yang dimulai dengan awalan tertentu, sepertiMyRole
, Anda dapat mengganti operator kondisi ArnEquals
dengan ArnLike
operator, dan Anda dapat mengganti execution_role_arn
nilai dalam kondisi dengan karakter wildcard*
. Sebagai contoh, arn:aws:iam::
. Semua kunci kondisi ARN lainnya juga didukung.AWS_ACCOUNT_ID
:role/MyRole*
catatan
Dengan Amazon EMR di EKS, Anda tidak dapat memberikan izin untuk peran eksekusi berdasarkan tag atau atribut. EMR Amazon di EKS tidak mendukung kontrol akses berbasis tag (TBAC) atau kontrol akses berbasis atribut (ABAC) untuk peran eksekusi.