

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á.

# Políticas para controle de acesso baseado em etiquetas
<a name="security-iam-TBAC"></a>

Você pode usar condições na política baseada em identidade para controlar o acesso a aplicações e execuções de trabalhos com base em tags.

Os exemplos a seguir demonstram diferentes cenários e maneiras de usar operadores de condição com chaves de condição do EMR Sem Servidor. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

**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](#security-iam-TBAC-deny).

Os exemplos a seguir demonstram a políticas de permissões baseadas em identidade que são usadas para controlar as ações permitidas com aplicações do EMR Sem Servidor.

## Ações permitidas somente em recursos com valores de etiquetas específicos
<a name="security-iam-TBAC-allow"></a>

No exemplo de política a seguir, o operador de condição `StringEquals` tenta corresponder `dev` com o valor da tag department. Se a tag "Department" não tiver sido adicionada à aplicação ou não contiver o valor `dev`, a política não se aplicará e as ações não serão permitidas por essa política. Se nenhuma outra instrução de política permitir as ações, o usuário só poderá trabalhar com aplicações que tenham essa tag com esse valor.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-serverless:GetApplication"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/department": "dev"
        }
      },
      "Sid": "AllowEMRSERVERLESSGetapplication"
    }
  ]
}
```

------

Você também pode especificar vários valores de tag usando um operador de condição. Por exemplo, para permitir ações em aplicações em que a tag `department` contenha o valor `dev` ou `test`, substitua o bloco condicional no exemplo anterior pelo conteúdo a seguir.

```
"Condition": {
        "StringEquals": {
          "emr-serverless:ResourceTag/department": ["dev", "test"]
        }
      }
```

## Marcação obrigatória na criação de um recurso
<a name="security-iam-TBAC-require"></a>

No exemplo abaixo, a tag precisa ser aplicada ao criar a aplicação.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-serverless:CreateApplication"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "us-east-1"
        }
      },
      "Sid": "AllowEMRSERVERLESSCreateapplication"
    }
  ]
}
```

------

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-serverless:CreateApplication"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": ["us-east-1", "us-west-2"]
        }
      },
      "Sid": "AllowEMRSERVERLESSCreateapplication"
    }
  ]
}
```

------

## Negação de acesso para adição ou remoção de etiquetas
<a name="security-iam-TBAC-deny"></a>

Essa política impede que um usuário adicione ou remova tags em aplicações do EMR Sem Servidor com uma tag `department` cujo valor não seja `dev`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "emr-serverless:TagResource",
        "emr-serverless:UntagResource"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalTag/department": "dev"
        }
      },
      "Sid": "AllowEMRSERVERLESSTagresource"
    }
  ]
}
```

------