

# Conceder permissão para a atribuição de tags a recursos durante a criação
<a name="supported-iam-actions-tagging"></a>

As ações de criação com tags de API do Amazon ECS a seguir permitem que você especifique tags ao criar o recurso. Se as tags forem especificadas na ação resource-creating, a AWS executará autorização adicional para verificar se as permissões corretas foram atribuídas para a criação de tags. 
+ `CreateCapacityProvider`
+ `CreateCluster`
+ `CreateService`
+ `CreateTaskSet`
+ `RegisterContainerInstance`
+ `RegisterTaskDefinition`
+ `RunTask`
+ `StartTask`

É possível usar tags de recursos para implementar o controle baseado em atributo (ABAC). Para obter mais informações, consulte [Controlar o acesso aos recursos do Amazon ECS usando tags de recursos](control-access-with-tags.md) e [Marcação de recursos do Amazon ECS](ecs-using-tags.md).

Para permitir a atribuição de tags na criação, crie ou modifique uma política para incluir as permissões para usar a ação que cria o recurso, como `ecs:CreateCluster` ou `ecs:RunTask` e a ação `ecs:TagResource`. 

O exemplo a seguir demonstra uma política que permite aos usuários criar clusters e adicionar tags durante a criação do cluster. Os usuários não têm permissão para marcar recursos existentes (não podem chamar a ação `ecs:TagResource` diretamente).

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ecs:CreateCluster"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ecs:TagResource"
      ],
      "Resource": "*",
      "Condition": {
         "StringEquals": {
                  "ecs:CreateAction": [
                      "CreateCluster",
                      "CreateCapacityProvider",
                      "CreateService",
                      "CreateTaskSet",
                      "RegisterContainerInstance",
                      "RegisterTaskDefinition",
                      "RunTask",
                      "StartTask"
                  ]
          }
       }
    }
  ]
}
```

A ação `ecs:TagResource` será avaliada somente se as tags forem aplicadas durante a ação resource-creating. Portanto, um usuário que tiver permissões para criar um recurso (pressupondo-se que não existam condições de marcação) não precisa de permissão para usar a ação `ecs:TagResource` se nenhuma tag for especificada na solicitação. Contudo, se o usuário tentar criar um recurso com tags, haverá falha na solicitação se o usuário não tiver permissão para usar a ação `ecs:TagResource`.

## Controle do acesso a etiquetas específicas do Amazon ECS
<a name="control-tagging"></a>

É possível usar condições adicionais no elemento `Condition` de suas políticas do IAM para controlar as chaves de tag e os valores que podem ser aplicados aos recursos.

As chaves de condição a seguir podem ser usadas com os exemplos na seção anterior:
+ `aws:RequestTag`: para indicar que uma chave de tag ou uma chave e um valor de tag específicos devem estar presentes em uma solicitação. Outras tags também podem ser especificadas na solicitação.
  + Use com o operador de condição `StringEquals` para impor uma combinação de chave e valor de tag específica, por exemplo, para impor a tag `cost-center`=`cc123`:

    ```
    "StringEquals": { "aws:RequestTag/cost-center": "cc123" }
    ```
  + Use com o operador de condição `StringLike` para impor uma chave de tag específica, por exemplo, para impor a chave de tag `purpose`:

    ```
    "StringLike": { "aws:RequestTag/purpose": "*" }
    ```
+ `aws:TagKeys`: para aplicar as chaves de tags usadas na solicitação.
  + Use com o modificador `ForAllValues` para impor chaves de tags específicas se forem fornecidas na solicitação (se as tags forem especificadas na solicitação, somente chaves de tags específicas são permitidas; nenhuma outra tag é permitida). Por exemplo, as chaves de tags `environment` ou `cost-center` são permitidas:

    ```
    "ForAllValues:StringEquals": { "aws:TagKeys": ["environment","cost-center"] }
    ```
  + Use com o modificador `ForAnyValue` para impor a presença de pelo menos uma das chaves de tags especificadas na solicitação. Por exemplo, pelo menos uma das chaves de tags `environment` ou `webserver` deve estar presente na solicitação:

    ```
    "ForAnyValue:StringEquals": { "aws:TagKeys": ["environment","webserver"] }
    ```

Essas chaves de condição podem ser aplicadas às ações resource-creating que são oferecem suporte à atribuição de tags, bem como a ação `ecs:TagResource`. Para saber se uma ação de API do Amazon ECS oferece suporte à atribuição de tags, consulte [Ações, recursos e chaves de condição para o Amazon ECS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html).

Para forçar os usuários a especificarem tags quando criam um recurso, use a chave de condição `aws:RequestTag` ou a chave de condição `aws:TagKeys` com o modificador `ForAnyValue` na ação resource-creating. A ação `ecs:TagResource` não será avaliada se um usuário não especificar tags para a ação resource-creating.

Para condições, a chave de condição não diferencia maiúsculas de minúsculas, e o valor da condição diferencia maiúsculas de minúsculas. Portanto, para aplicar a diferenciação de maiúsculas de minúsculas de uma tag, use a chave de condição `aws:TagKeys`, onde a chave da tag é especificada como um valor na condição.

 Para obter mais informações sobre condições de vários valores, consulte [Condições com várias chaves de contexto ou valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-logic-multiple-context-keys-or-values.html) no *Guia do usuário do IAM*. 