Políticas para controle de acesso baseado em etiquetas - Amazon EMR

Políticas para controle de acesso baseado em etiquetas

É possível aplicar condições em sua política baseada em identidade para controlar o acesso a clusters virtuais e execuções de trabalhos com base em etiquetas. Para obter mais informações sobre marcação, consulte Marcação de recursos do Amazon EMR no EKS.

Os exemplos a seguir demonstram diferentes cenários e maneiras de usar operadores de condição com chaves de condição do Amazon EMR no EKS. Estas instruções de política do IAM são destinadas somente para fins de demonstração e não devem ser usadas em ambientes de produção. Há várias maneiras de combinar declarações de políticas para conceder e negar permissões de acordo com seus requisitos. Para obter mais informações sobre como planejar e testar políticas do IAM, consulte o Guia do usuário do IAM.

Importante

Recusar, explicitamente, permissões para ações de uso de tags é uma consideração importante. Isso evita que os usuários façam a marcação de um recurso e, assim, concedam a si mesmos permissões que você não pretendia conceder. Se as ações de marcação de um recurso não forem negadas, um usuário poderá modificar as etiquetas e driblar a intenção das políticas baseadas em etiquetas. Para obter um exemplo de política que nega ações de marcação, consulte Negação de acesso para adição ou remoção de etiquetas.

Os exemplos abaixo demonstram políticas de permissões baseadas em identidade usadas para controlar as ações que são permitidas com clusters virtuais do Amazon EMR no EKS.

Ações permitidas somente em recursos com valores de etiquetas específicos

No exemplo de política apresentado a seguir, o operador de condição StringEquals tenta corresponder “dev” ao valor da etiqueta “Department”. Se a etiqueta “Department” não tiver sido adicionada ao cluster virtual ou não contiver o valor “dev”, a política não se aplicará e as ações não serão permitidas por esta política. Se nenhuma outra instrução de política permitir as ações, o usuário poderá trabalhar somente com clusters virtuais que tenham essa etiqueta com este valor.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:DescribeVirtualCluster" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "dev" } } } ] }

Você também pode especificar vários valores de tag usando um operador de condição. Por exemplo, para permitir ações em clusters virtuais nos quais a etiqueta department contém o valor dev ou test, você pode substituir o bloco condicional no exemplo anterior pelo apresentado a seguir.

"Condition": { "StringEquals": { "aws:ResourceTag/department": ["dev", "test"] } }

Marcação obrigatória na criação de um recurso

No exemplo abaixo, a etiqueta precisa ser aplicada ao criar o cluster virtual.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:CreateVirtualCluster" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "dev" } } } ] }

A instrução de política apresentada a seguir permite que um usuário crie um cluster virtual somente se o cluster tiver uma etiqueta department, que pode conter qualquer valor.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:CreateVirtualCluster" ], "Resource": "*", "Condition": { "Null": { "aws:RequestTag/department": "false" } } } ] }

Negação de acesso para adição ou remoção de etiquetas

O efeito desta política é negar a um usuário a permissão para adicionar ou remover quaisquer etiquetas em clusters virtuais que estejam marcados com uma etiqueta department que contenha o valor dev.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "emr-containers:TagResource", "emr-containers:UntagResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/department": "dev" } } } ] }