Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Die ModifyInstanceGroup Aktion bei Amazon ablehnen EMR
Die ModifyInstanceGroupsAktion in Amazon EMR erfordert nicht, dass Sie bei der Aktion eine Cluster-ID angeben. Stattdessen können Sie nur eine Instance-Gruppen-ID angeben. Aus diesem Grund hat eine scheinbar einfache Ablehnungsrichtlinie für diese Aktion, die auf der Cluster-ID oder einem Cluster-Tag basiert, möglicherweise nicht die beabsichtigte Wirkung. Betrachten Sie die folgende Beispielrichtlinie.
{ "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" } ] }
Wenn ein Benutzer, dem diese Richtlinie zugewiesen ist, eine ModifyInstanceGroup
-Aktion ausführt und nur die Instance-Gruppen-ID angibt, gilt die Richtlinie nicht. Da die Aktion für alle anderen Ressourcen zulässig ist, ist die Aktion erfolgreich.
Eine Lösung für dieses Problem besteht darin, der Identität eine Richtlinienerklärung beizufügen, die ein NotResourceElement verwendet, um jede ModifyInstanceGroup
Aktion abzulehnen, die ohne Cluster-ID ausgeführt wurde. Die folgende Beispielrichtlinie fügt eine solche Deny-Anweisung hinzu, sodass jede ModifyInstanceGroups
-Anfrage fehlschlägt, sofern keine Cluster-ID angegeben ist. Da eine Identität bei der Aktion eine Cluster-ID angeben muss, sind Ablehnungsbefehle, die auf der Cluster-ID basieren, daher wirksam.
{ "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/*" } ] }
Ein ähnliches Problem tritt auf, wenn Sie die ModifyInstanceGroups
-Aktion auf der Grundlage des mit einem Cluster-Tag verknüpften Werts ablehnen möchten. Die Lösung ist ähnlich. Zusätzlich zu einer Ablehnungs-Anweisung, die den Tag-Wert angibt, können Sie eine Richtlinienanweisung hinzufügen, die die ModifyInstanceGroup
-Aktion ablehnt, wenn das von Ihnen angegebene Tag nicht vorhanden ist, unabhängig vom Wert.
Das folgende Beispiel zeigt eine Richtlinie, die, wenn sie an eine Identität angehängt ist, der Identität die ModifyInstanceGroups
-Aktion aller Cluster verweigert, bei denen das Tag department
auf dev
gesetzt ist. Diese Anweisung ist nur aufgrund der Ablehnungs-Anweisung wirksam, die die StringNotLike
-Bedingung verwendet, um die Aktion zu verweigern, sofern das department
-Tag nicht vorhanden ist.
{ "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": "*" } ], }