

# Usar tags com buckets de uso geral do S3
<a name="buckets-tagging"></a>

Uma tag da AWS é um par de chave-valor que contém metadados sobre recursos, neste caso buckets de uso geral do Amazon S3. É possível marcar buckets de do S3 ao criá-los ou gerenciar tags em buckets existentes. Para ter informações gerais sobre tags, consulte [Atribuir tags para alocação de custos ou controle de acesso por atributo (ABAC)](tagging.md).

**nota**  
Não há cobrança adicional para usar tags em buckets além das taxas de solicitação padrão da API do S3. Para obter mais informações, consulte [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

## Maneiras comuns de usar tags com buckets
<a name="common-ways-to-use-tags-bucket"></a>

Use tags em buckets do S3 para:

1. **Alocação de custos**: acompanhe os custos de armazenamento por tag de bucket no Gerenciamento de Faturamento e Custos da AWS. Para ter mais informações, consulte [Usar tags para alocação de custos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-cost-allocation).

1. **Controle de acesso por atributo (ABAC)**: amplie as permissões de acesso e conceda acesso aos buckets do S3 com base nas respectivas tags. Para ter mais informações, consulte [Using tags for ABAC](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac).
**nota**  
Para buckets de uso geral, o ABAC não está habilitado por padrão. Para habilitar o ABAC para buckets de uso geral, consulte [Habilitar o ABAC em buckets de uso geral](buckets-tagging-enable-abac.md). Para recursos do Amazon S3, como pontos de acesso e buckets de diretório, o ABAC está habilitado por padrão. Você pode usar as mesmas tags para alocação de custos e controle de acesso.

### ABAC para buckets de uso geral do S3
<a name="abac-for-buckets"></a>

Os buckets de uso geral do Amazon S3 permitem o controle de acesso por atributo (ABAC) por meio de tags. Use chaves de condição baseadas em tags em políticas de bucket do S3, de suas organizações na AWS e do IAM. Para empresas, o ABAC no Amazon S3 permite a autorização em várias contas da AWS. 

Nas suas políticas do IAM, você pode controlar o acesso aos buckets do S3 com base nas tags do bucket usando as seguintes [chaves de condição globais](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys):
+ `aws:ResourceTag/key-name`
  + Use essa chave de condição para comparar o par chave-valor da tag especificada na política com o par de chave-valor anexado ao recurso. O S3 avalia essa chave de condição somente depois que o ABAC é habilitado no bucket. Por exemplo, é possível exigir que o acesso a um recurso seja permitido somente se o recurso tiver a chave de tag `Dept` anexada com o valor `Marketing`. Para obter mais informações, consulte [Controle de acesso aos recursos do AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources).
+ `aws:RequestTag/key-name`
  + Use essa chave de condição para comparar o par de chave-valor da tag que foi transmitido na solicitação com o par de tags especificado na política. Por exemplo, é possível verificar se a solicitação inclui a chave de tag `Dept` e se ela tem o valor `Accounting`. Para ter mais informações, consulte [Controlar o acesso durante solicitações da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests). Você pode usar essa chave de condição para restringir quais pares de chave-valor de tag podem ser transmitidos durante as operações de API `TagResource` e `CreateBucket`.
+ `aws:TagKeys`
  + Use essa chave de condição para comparar as chaves de tag em uma solicitação com as chaves especificadas na política. Ao usar políticas para controlar o acesso usando etiquetas, recomendamos o uso da chave de condição `aws:TagKeys` para definir quais chaves de etiquetas serão permitidas. Para ver exemplos de política e ter mais informações, consulte [Controlar o acesso com base em chaves de tag](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys).
+ `s3:BucketTag/tag-key`
  + Use essa chave de condição para conceder permissões a dados específicos em buckets por meio de tags. Essa chave de condição é aplicável somente após a habilitação do ABAC no bucket. Quando se usa um ponto de acesso para acessar um bucket, a chave de condição `aws:ResourceTag/tag-key` consulta as tags no bucket ao conceder permissões referentes ao ponto de acesso e ao bucket. A `s3:BucketTag/tag-key` fará referência às tags somente do bucket ao qual está sendo concedida uma permissão. 

**nota**  
Ao criar um bucket com tags, observe que as condições baseadas em tags para acessar o bucket usando as chaves de condição aws:ResourceTag e s3:BucketTag são aplicáveis somente após a habilitação do ABAC no bucket. Para saber mais, consulte [Habilitar o ABAC em buckets de uso geral](buckets-tagging-enable-abac.md).

### Exemplos de política de ABAC para buckets
<a name="example-buckets-abac-policies"></a>

Veja os exemplos de política de ABAC a seguir para buckets do Amazon S3.

#### 1.1 Política do IAM para criar ou modificar buckets com tags específicas
<a name="example-user-policy-request-tag"></a>

Nessa política do IAM, usuários ou perfis com essa política só poderão criar buckets do S3 se marcarem o bucket com a chave de tag `project` e o valor de tag `Trinity `na solicitação de criação do bucket. Eles também podem adicionar ou modificar tags em buckets existentes do S3, desde que a solicitação `TagResource` inclua o par de chave-valor de tag `project:Trinity`. Essa política não concede permissões de leitura, gravação ou exclusão nos buckets ou nos respectivos objetos. 

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateBucketWithTags",
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/project": [
            "Trinity"
          ]
        }
      }
    }
  ]
}
```

#### 1.2 Política de bucket para restringir operações
<a name="example-user-policy-resource-tag"></a>

Nessa política de bucket, as entidades principais do IAM (usuários e perfis) não receberão permissão para executar as ações `s3:ListBucket`, `s3:GetObject` e `s3:PutObject` no bucket somente se o valor de tag `project `no bucket corresponder ao valor de tag `project` na entidade principal.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyObjectOperations",
            "Effect": "Deny",
            "Principal": "*",
            "Action": ["s3:ListBucket",
                       "s3:GetObject",
                       "s3:PutObject"],
            "Resource": "arn:aws:s3:::aws-s3-demo/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
                }
            }
        }
    ]
}
```

#### 1.3 Política do IAM para modificar tags em recursos existentes
<a name="example-user-policy-tag-keys"></a>

Nessa política do IAM, as entidades principais do IAM (usuários e perfis) podem modificar tags em um bucket somente se o valor da tag `project` do bucket corresponder ao valor da tag `project` da entidade principal. Somente as quatro tags (`project`, `environment`, `owner` e `cost-center`) especificadas nas chaves de condição `aws:TagKeys` são permitidas para esses buckets. Isso ajuda a impor a governança de tags, evita modificações não autorizadas nas tags e mantém o esquema de marcação consistente em todos os seus buckets.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceTaggingRulesOnModification",
      "Effect": "Allow",
      "Action": [
        "s3:TagResource",
        "s3:CreateBucket"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "project",
            "environment",
            "owner",
            "cost-center"
          ]
        }
      }
    }
  ]
}
```

#### 1.4 Usar a chave de condição s3:BucketTag
<a name="example-policy-bucket-tag"></a>

Nessa política do IAM, a instrução de condição permitirá acesso aos dados do bucket `aws-s3-demo` somente se o bucket tiver a chave de tag `Environment` e o valor de tag `Production`.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessViaSpecificBucket",
      "Effect": "Allow",
      "Action": "*",
      "Resource": ["arn:aws:s3:::aws-s3-demo","arn:aws:s3:::aws-s3-demo/*"],
      "Condition": {
        "StringEquals": {
          "s3:BucketTag/Environment": "Production"
        }
      }
    }
  ]
}
```

## Gerenciar tags para buckets de uso geral
<a name="managing-tags-general-buckets"></a>

É possível adicionar ou gerenciar tags para buckets do S3 usando o console do Amazon S3, a AWS Command Line Interface (CLI), os SDKs da AWS ou as APIs [TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html), [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) e [ListTagsForResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html) do S3. Para obter mais informações, consulte:

**Topics**