

# Como habilitar ou desabilitar tabelas de anotação
<a name="metadata-tables-enable-disable-annotation-tables"></a>

Por padrão, sua configuração de tabela de metadados contém uma *tabela de diário*, que registra os eventos referentes aos objetos em seu bucket. A tabela de diário é necessária para cada configuração de tabela de metadados. 

Se desejar, você pode adicionar uma *tabela de anotação* à configuração da tabela de metadados. Essa tabela rastreia todas as anotações em objetos em seu bucket para que você possa consultar dados de anotação em grande escala.

A tabela de anotação contém as anotações mais recentes de todos os objetos em seu bucket. É possível usar essa tabela para simplificar e acelerar fluxos de trabalho de negócios e tarefas de big data identificando objetos com base nas anotações. Por exemplo, você pode consultar a tabela de anotação para fazer o seguinte: 
+ Encontrar todos os objetos com uma chave ou um valor de anotação específico.
+ Criar uma distribuição de chaves de anotação entre objetos em seu bucket.
+ Encontrar todos os objetos que têm anotações aplicadas por uma entidade principal específica.

Se você optar por habilitar uma tabela de anotação para sua configuração de tabela de metadados, essa tabela passará por um processo conhecido como *preenchimento*, durante o qual o Amazon S3 verifica o bucket de uso geral para recuperar e preencher anotações de todos os objetos existentes no bucket. Dependendo do número de objetos no bucket, esse processo pode levar de minutos a horas. Quando o processo de preenchimento é concluído, o status da tabela de anotação muda de **Preenchimento** para **Ativo**. Depois que o preenchimento é concluído, geralmente as atualizações dos objetos são mostradas na tabela de anotação no prazo de uma hora.

**nota**  
Você paga pelo preenchimento da tabela de anotação. Para obter mais informações, consulte [Preços do Amazon S3](https://aws.amazon.com/s3/pricing/).
Não é possível pausar as atualizações na tabela de anotação e depois retomá-las. No entanto, é possível desabilitar a configuração da tabela de anotação. Desabilitar a tabela de anotação não a exclui. A tabela de anotação é mantida em seus registros até que você decida excluí-la.   
Se você tiver desabilitado a tabela de anotação e depois quiser reabilitá-la, primeiro exclua a tabela de anotação antiga do bucket de tabela gerenciado pela AWS. Quando você reabilita a configuração de tabela de anotação, o Amazon S3 cria outra tabela de anotação. Nesse caso, você recebe cobrança novamente pelo preenchimento da nova tabela.

Você pode habilitar ou desabilitar as tabelas de anotação usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI), os SDKs da AWS ou a API REST do Amazon S3.

**Pré-requisitos**  
Se você tiver desabilitado a tabela de anotação e agora quiser reabilitá-la, primeiro exclua manualmente a tabela de anotação antiga do bucket de tabela gerenciado pela AWS. Do contrário, a reabilitação da tabela de anotação falhará, porque já existe uma tabela de anotação no bucket de tabela. Para excluir a tabela de anotação, consulte [Excluir uma tabela de metadados](metadata-tables-delete-table.md#delete-metadata-table-procedure). 

Quando você reabilita a configuração de tabela de anotação, o Amazon S3 cria outra tabela de anotação. Nesse caso, você recebe cobrança novamente pelo preenchimento da nova tabela. 

## Perfil do IAM da tabela de anotação
<a name="annotation-table-iam-role-section"></a>

A tabela de anotação exige um perfil do IAM que conceda ao Amazon S3 Metadata permissão para ler anotações do seu bucket. Use as seguintes políticas de confiança e permissões ao criar esse perfil.

**Política de confiança**  
A política de confiança a seguir identifica o Amazon S3 Metadata como a entidade principal do serviço que pode assumir o perfil.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "metadata.s3.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:::{{amzn-s3-demo-bucket}}"
                }
            }
        }
    ]
}
```

**Política de permissões**  
A política de permissões a seguir concede ao perfil do IAM as permissões mínimas necessárias para ler anotações.

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PermissionForGetAnnotation",
      "Effect": "Allow",
      "Action": [
        "s3:GetObjectAnnotation",
        "s3:GetObjectVersionAnnotation"
      ],
      "Resource": ["arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"]
    },
    {
      "Sid": "PermissionsForListBucket",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:ListBucketVersions"
      ],
      "Resource": ["arn:aws:s3:::{{amzn-s3-demo-bucket}}"]
    },
    {
      "Sid": "PermissionsForDecryptAnnotation",
      "Effect": "Allow",
      "Action": ["kms:Decrypt"],
      "Resource": ["*"]
    }
  ]
}
```

Se os objetos usarem criptografia SSE-KMS, a permissão `kms:Decrypt` vai cobrir a descriptografia da chave do AWS KMS usada para criptografar os objetos. Você também precisa da permissão `iam:PassRole` para atribuir o perfil à configuração da tabela de anotação.

## Habilitar ou desabilitar tabelas de anotação
<a name="metadata-tables-enable-disable-annotation-tables-procedure"></a>

### Usar o console do S3
<a name="metadata-tables-enable-disable-annotation-tables-console"></a>

**Para habilitar ou desabilitar tabelas de anotação**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Escolha o bucket de uso geral com a configuração da tabela de metadados para a qual você deseja habilitar ou desabilitar uma tabela de anotação.

1. Na página de detalhes do bucket, escolha a guia **Metadados**. 

1. Na guia **Metadados**, escolha **Editar** e selecione **Editar configuração da tabela de anotação**.

1. Na página **Editar configuração da tabela de anotação**, escolha **Habilitada** ou **Desabilitada** em **Tabela de anotação**.
**nota**  
Antes de escolher **Habilitada**, verifique se você analisou e atendeu aos [pré-requisitos](#annotation-table-config-prereqs). 
   + Se você selecionar **Habilitada**, em **Perfil do IAM**, escolha um dos seguintes métodos de seleção de perfil do IAM:
     + **Criar um perfil do IAM**: o Amazon S3 cria um novo perfil do IAM com as permissões necessárias para a tabela de anotação.
     + **Escolher entre perfis do IAM existentes**: selecione um perfil do IAM existente no menu suspenso **Perfil do IAM**. O perfil deve ter as permissões necessárias para ler anotações do bucket.
     + **Inserir ARN do perfil do IAM**: insira o ARN de um perfil do IAM existente que tenha as permissões necessárias.

     Para obter mais informações sobre as permissões necessárias para o perfil do IAM da tabela de anotação, consulte [Perfil do IAM da tabela de anotação](#annotation-table-iam-role-section).

     Você também pode optar por criptografar a tabela com criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Por padrão, as tabelas de anotação são criptografadas com a criptografia do lado do servidor usando chaves gerenciadas pelo Amazon S3 (SSE-S3).

     Se você optar por usar o SSE-KMS, deverá fornecer uma chave do KMS gerenciada pelo cliente na mesma região do bucket de uso geral. 
**Importante**  
Você pode definir o tipo de criptografia para uma tabela de metadados somente ao criá-la. Após a criação de uma tabela gerenciada pela AWS, não é possível alterar a configuração de criptografia.
     + Para criptografar uma tabela de anotação com SSE-S3 (o padrão), escolha **Não especificar o tipo de criptografia**. 
     + Para criptografar uma tabela de anotação com SSE-KMS, escolha **Especificar o tipo de criptografia**. Em **Tipo de criptografia**, escolha **Criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS)**. Em **Chave do AWS KMS**, escolha entre suas chaves existentes do KMS ou insira o ARN da chave do KMS. Se você ainda não tiver uma chave do KMS, escolha **Inserir o ARN da chave do KMS** e selecionar **Criar uma chave do KMS**.
   + Se você escolher **Desabilitada**, marque a caixa de seleção em **Depois que a tabela de anotação for desabilitada, a tabela não será mais atualizada e as atualizações não poderão ser retomadas**.

1. Escolha **Salvar alterações**.

### Como usar o AWS CLI
<a name="metadata-tables-enable-disable-annotation-tables-cli"></a>

Para executar os comandos a seguir, você deve ter a AWS CLI instalada e configurada. Se ainda não tiver a AWS CLI instalada, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html) no *Guia do usuário da versão 2 da AWS Command Line Interface*.

Também é possível executar comandos da AWS CLI pelo console usando o AWS CloudShell. O AWS CloudShell é um shell pré-autenticado e baseado em navegador que você pode iniciar diretamente do Console de gerenciamento da AWS. Para ter mais informações, consulte [What is CloudShell?](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html) e [Getting started with AWS CloudShell](https://docs.aws.amazon.com//cloudshell/latest/userguide/getting-started.html) no *Guia do usuário do AWS CloudShell*.

**Para habilitar ou desabilitar tabelas de anotação usando a AWS CLI**

Para usar os exemplos de comando a seguir, substitua os `{{user input placeholders}}` por suas próprias informações. 
**nota**  
Antes de habilitar uma configuração de anotação, analise e cumpra os [pré-requisitos](#annotation-table-config-prereqs). 

1. Crie um arquivo JSON que contenha a configuração da tabela de anotação e salve-o (por exemplo, `annotation-config.json`). O exemplo a seguir é uma configuração de amostra para habilitar uma nova tabela de anotação.

   Se você estiver habilitando uma tabela de anotação, poderá especificar uma configuração de criptografia. Por padrão, as tabelas de metadados são criptografados com a criptografia do lado do servidor usando chaves gerenciadas pelo Amazon S3 (SSE-S3), que você pode especificar configurando `SseAlgorithm` como `AES256`.

   Para criptografar uma tabela de anotação com criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), defina `SseAlgorithm` como `aws:kms`. Você também deve definir `KmsKeyArn` como o ARN de uma chave do KMS gerenciada pelo cliente na mesma região em que o bucket de uso geral está localizado.

   ```
   {
     "ConfigurationState": "ENABLED",
     "Role": "arn:aws:iam::{{account-id}}:role/{{annotation-table-role}}",
     "EncryptionConfiguration": {
       "SseAlgorithm": "aws:kms",
       "KmsKeyArn": "arn:aws:kms:{{us-east-2}}:{{account-id}}:key/{{key-id}}"
     }
   }
   ```

   O campo `Role` é obrigatório ao habilitar uma tabela de anotação pela primeira vez ou ao alterar o perfil do IAM. O perfil deve conceder ao Amazon S3 Metadata permissão para ler anotações do seu bucket. Para obter mais informações, consulte [Perfil do IAM da tabela de anotação](#annotation-table-iam-role-section).

   Se você quiser desabilitar uma tabela de anotação existente, use a seguinte configuração: 

   ```
   {
     "ConfigurationState": "DISABLED"  }
   ```

1. Use o seguinte comando para atualizar a configuração da tabela de anotação para o bucket de uso geral (por exemplo, `{{amzn-s3-demo-bucket}}`):

   ```
   aws s3api update-bucket-metadata-annotation-table-configuration \
   --bucket {{amzn-s3-demo-bucket}} \
   --annotation-table-configuration file://./{{annotation-config}}.json \
   --region {{us-east-2}}
   ```

### Uso da API REST
<a name="metadata-tables-enable-disable-annotation-tables-rest-api"></a>

Você pode enviar solicitações REST para habilitar ou desabilitar tabelas de anotação. Para obter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataAnnotationTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataAnnotationTableConfiguration.html).

### Uso da SDKs AWS
<a name="metadata-tables-enable-disable-annotation-tables-sdk"></a>

Você pode usar os SDKs da AWS para habilitar ou desabilitar tabelas de anotação no Amazon S3. Para ter mais informações, consulte a [lista de SDKs compatíveis](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataAnnotationTableConfiguration.html#API_UpdateBucketMetadataAnnotationTableConfiguration_SeeAlso).