Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Eksekusi kebijakan IAM
Anda dapat menentukan Kebijakan IAM Eksekusi, selain Peran Eksekusi, saat mengirimkan pekerjaan berjalan di EMR Tanpa Server. Izin yang dihasilkan yang diasumsikan oleh job run adalah persimpangan izin dalam Peran Eksekusi dan Kebijakan IAM Eksekusi yang ditentukan.
Memulai
Langkah-langkah untuk menggunakan kebijakan Eksekusi IAM::
Buat emr-serverless
aplikasi atau gunakan yang sudah ada dan kemudian jalankan aws cli berikut untuk memulai pekerjaan dengan kebijakan IAM sebaris:
aws emr-serverless start-job-run --region us-west-2 \ --application-id
application-id
\ --execution-role-arnexecution-role-arn
\ --job-driverjob-driver-options
\ --execution-iam-policy '{"policy": "inline-policy
"}'
Contoh perintah CLI
Jika kami memiliki kebijakan berikut yang disimpan dalam policy.json
file di mesin:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-test-bucket", "arn:aws:s3:::my-test-bucket/*" ] } ] }
Kemudian kita dapat memulai pekerjaan dengan kebijakan ini menggunakan AWS CLI perintah berikut:
aws emr-serverless start-job-run --region us-west-2 \ --application-id
application-id
\ --execution-role-arnexecution-role-arn
\ --job-driverjob-driver-options
--execution-iam-policy '{ "policy": "'"$(sed 's/"/\"/g' policy.json | tr -d '[:space:]')"'" }'
Anda juga dapat menggunakan keduanya AWS dan kebijakan yang dikelola Pelanggan, menentukannya ARNs melalui:
aws emr-serverless start-job-run --region us-west-2 \ --application-id
application-id
\ --execution-role-arnexecution-role-arn
\ --job-driverjob-driver-options
--execution-iam-policy '{ "policyArns": [ "arn:aws:iam::aws:policy/AmazonS3FullAccess", "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess" ] }'
Dimungkinkan untuk menentukan kebijakan IAM sebaris dan kebijakan terkelola ARNs dalam permintaan yang sama juga:
aws emr-serverless start-job-run --region us-west-2 \ --application-id
application-id
\ --execution-role-arnexecution-role-arn
\ --job-driverjob-driver-options
--execution-iam-policy '{ "policy": "'"$(sed 's/"/\"/g' policy.json | tr -d '[:space:]')"'", "policyArns": [ "arn:aws:iam::aws:policy/AmazonS3FullAccess", "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess" ] }'
Catatan Penting
execution-role-policy
policy
Bidang ini dapat memiliki panjang maksimum 2048 karakter.String kebijakan IAM sebaris yang ditentukan dalam
policy
bidangexecution-iam-policy
ini harus sesuai dengan standar string json, tanpa baris baru dan tanda kutip yang lolos seperti pada contoh di atas.Daftar hingga 10 kebijakan terkelola ARNs dapat ditentukan sebagai nilai pada
execution-iam-policy
policyArns
bidang.Kebijakan terkelola ARNs harus berupa daftar ARN yang valid AWS atau yang dikelola Nasabah kebijakan ARN, ketika kebijakan yang dikelola Nasabah ARN ditentukan, kebijakan tersebut harus dimiliki oleh AWS akun EMR-S yang sama. JobRun
Jika kebijakan IAM sebaris dan kebijakan terkelola digunakan, teks biasa yang Anda gunakan untuk gabungan kebijakan sebaris dan terkelola tidak dapat melebihi 2.048 karakter.
Izin yang dihasilkan diasumsikan oleh JobRun adalah persimpangan izin dalam Peran Eksekusi dan Kebijakan IAM Eksekusi yang ditentukan.
Persimpangan Kebijakan
Izin yang dihasilkan yang diasumsikan oleh job run adalah persimpangan izin dalam Peran Eksekusi dan Kebijakan IAM Eksekusi yang ditentukan. Yang berarti setiap izin yang diperlukan harus ditentukan di kedua tempat JobRun agar dapat berfungsi. Namun, Anda dapat menentukan pernyataan izin selimut tambahan dalam kebijakan sebaris untuk izin apa pun yang tidak ingin Anda perbarui atau timpa.
Contoh
Mengingat kebijakan peran IAM eksekusi berikut:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action":[ "logs:DescribeLogGroups" ], "Resource":[ "arn:aws:logs:us-west-2:12345678910:log-group::log-stream" ] }, { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:*:*:table/MyCompany1table" ] } ] }
Dan kebijakan IAM inline berikut:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-test-bucket/tenant1", "arn:aws:s3:::my-test-bucket/tenant1/*" ] }, { "Effect": "Allow", "Action":[ "logs:*", "dynamodb:*", ], "Resource":[ "*" ] } ] }
Izin yang dihasilkan diasumsikan oleh JobRun adalah::
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-test-bucket/tenant1", "arn:aws:s3:::my-test-bucket/tenant1/*" ] }, { "Effect": "Allow", "Action":[ "logs:DescribeLogGroups" ], "Resource":[ "arn:aws:logs:us-west-2:12345678910:log-group::log-stream" ] }, { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:*:*:table/MyCompany1table" ] } ] }