Menyangkal ModifyInstanceGroup tindakan di Amazon EMR - Amazon EMR

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

Menyangkal ModifyInstanceGroup tindakan di Amazon EMR

ModifyInstanceGroupsTindakan di Amazon EMR tidak mengharuskan Anda memberikan ID klaster dengan tindakan tersebut. Sebaliknya, Anda dapat hanya menentukan ID grup instans. Untuk alasan ini, langsung tolak kebijakan untuk tindakan ini berdasarkan ID klaster atau tanda klaster mungkin tidak memiliki efek yang dimaksudkan. Pertimbangkan kebijakan contoh berikut.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67" } ] }

Jika pengguna dengan kebijakan terlampir ini melakukan tindakan ModifyInstanceGroup dan menentukan hanya ID grup instans, kebijakan tidak berlaku. Karena tindakan diizinkan pada semua sumber daya lainnya, tindakan tersebut berhasil.

Solusi untuk masalah ini adalah melampirkan pernyataan kebijakan ke identitas yang menggunakan NotResourceelemen untuk menolak ModifyInstanceGroup tindakan apa pun yang dikeluarkan tanpa ID klaster. Kebijakan contoh berikut menambahkan pernyataan tolak sehingga setiap permintaan ModifyInstanceGroups gagal kecuali ID klaster ditentukan. Karena identitas harus menentukan ID klaster dengan tindakan, tolak pernyataan berdasarkan ID klaster karena efektif.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Deny", "NotResource": "arn:*:elasticmapreduce:*:*:cluster/*" } ] }

Masalah serupa ada saat Anda ingin tolak tindakan ModifyInstanceGroups berdasarkan nilai yang terkait dengan tanda klaster. Solusinya serupa. Selain tolak pernyataan yang menentukan nilai tanda, Anda dapat menambahkan pernyataan kebijakan yang menolak tindakan ModifyInstanceGroup tanda yang Anda tentukan tidak ada, terlepas dari nilai.

Contoh berikut menunjukkan kebijakan yang, saat dilampirkan ke identitas, menolak identitas tindakan ModifyInstanceGroups klaster apapun dengan tanda department yang diatur ke dev. Pernyataan ini hanya efektif karena pernyataan tolak menggunakan syarat StringNotLike untuk menolak tindakan kecuali tanda department ada.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Condition": { "StringEquals": { "aws:ResourceTag/department": "dev" } }, "Effect": "Deny", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Condition": { "StringNotLike": { "aws:ResourceTag/department": "?*" } }, "Effect": "Deny", "Resource": "*" } ], }