Negando a ModifyInstanceGroup ação no Amazon EMR - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Negando a ModifyInstanceGroup ação no Amazon EMR

A ModifyInstanceGroupsação no Amazon EMR não exige que você forneça um ID de cluster com a ação. Em vez disso, você pode especificar apenas um ID de grupo de instâncias. Por isso, uma política de negação aparentemente simples para essa ação com base no ID do cluster ou em uma etiqueta do cluster pode não ter o efeito pretendido. Considere a seguinte política de exemplo.

{ "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" } ] }

Se um usuário com essa política anexada realizar uma ação ModifyInstanceGroup e especificar somente o ID do grupo de instâncias, a política não se aplicará. Como a ação é permitida em todos os outros recursos, ela tem êxito.

Uma solução para esse problema é anexar uma declaração de política à identidade que usa um NotResourceelemento para negar qualquer ModifyInstanceGroup ação emitida sem um ID de cluster. O exemplo de política a seguir adiciona essa instrução de negação para que qualquer solicitação ModifyInstanceGroups falhe, a menos que um ID de cluster esteja especificado. Como uma identidade deve especificar um ID de cluster com a ação, as instruções de negação com base no ID do cluster são, portanto, efetivas.

{ "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/*" } ] }

Um problema semelhante ocorre quando você deseja negar a ação ModifyInstanceGroups com base no valor associado a uma etiqueta de cluster. A solução é semelhante. Além de uma instrução de negação que especifica o valor da etiqueta, é possível adicionar uma instrução de política que nega a ação ModifyInstanceGroup se a etiqueta especificada não estiver presente, qualquer que seja o valor.

O exemplo a seguir demonstra uma política que, quando anexada a uma identidade, nega à identidade a ação ModifyInstanceGroups de qualquer cluster com a etiqueta department definida como dev. Essa instrução só é efetiva por causa da instrução de negação que usa a condição StringNotLike para negar a ação, a menos que a etiqueta department esteja presente.

{ "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": "*" } ], }