

# Atualizar a criptografia de objetos
<a name="batch-ops-update-encryption"></a>

Você pode usar o Operações em Lote do Amazon S3 para executar operações em lote de grande escala em objetos do Amazon S3. A operação [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_UpdateObjectEncryptionOperation.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_UpdateObjectEncryptionOperation.html) do recurso Operações em Lote atualiza o tipo de criptografia do lado do servidor de um objeto do Amazon S3 com uma única solicitação. Um único trabalho da operação `UpdateObjectEncryption` pode comportar um manifesto com até 20 bilhões de objetos.

É possível usar a operação `UpdateObjectEncryption` com todas as classes de armazenamento do Amazon S3 aceitas por buckets de uso geral. É possível usar a operação `UpdateObjectEncryption` para alterar o tipo de criptografia de objetos de [criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE- S3)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingServerSideEncryption.html) para [chaves do AWS Key Management Service (AWS KMS) (SSE-KMS)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingKMSEncryption.html) ou aplicar chaves de bucket do S3. Também é possível usar a operação `UpdateObjectEncryption` para alterar a chave do KMS gerenciada pelo cliente utilizada na criptografia de seus dados e cumprir padrões personalizados de alternância de chaves.

 Ao criar um trabalho de operações em lote, é possível gerar uma lista de objetos baseada no local de origem e em critérios de filtro especificados por você. É possível usar o filtro `MatchAnyObjectEncryption` para gerar uma lista de objetos do seu bucket que você deseja atualizar e incluir no seu manifesto. A lista de objetos gerada inclui somente objetos do bucket de origem com o tipo de criptografia do lado do servidor indicado. Se você selecionar SSE-KMS, poderá, opcionalmente, filtrar ainda mais os resultados especificando um ARN de chave do KMS e o status “Chave do bucket habilitada”. Para ter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestGeneratorFilter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestGeneratorFilter.html) e [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SSEKMSFilter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SSEKMSFilter.html) na *Referência de API do Amazon S3*.

## Restrições e considerações
<a name="batch-ops-encrypt-object-restrictions"></a>

Quando você usa a operação `UpdateObjectEncryption` do recurso Operações em Lote, as seguintes restrições e considerações se aplicam:
+ A operação `UpdateObjectEncryption` não permite objetos não criptografados ou objetos criptografados com a criptografia de camada dupla do lado do servidor com AWS KMS keys (DSSE-KMS) ou chaves de criptografia fornecidas pelo cliente (SSE-C). Além disso, não é possível especificar a solicitação `UpdateObjectEncryption` para o tipo de criptografia SSE-S3.
+ É possível usar a operação `UpdateObjectEncryption` para atualizar objetos em buckets que têm o Versionamento do S3 habilitado. Para atualizar o tipo de criptografia de uma versão específica, é necessário especificar um ID de versão na solicitação `UpdateObjectEncryption`. Se você não especificar um ID de versão, a solicitação `UpdateObjectEncryption` atuará na versão atual do objeto. Para obter mais informações sobre o S3 Versioning, consulte [Reter várias versões de objetos com o Versionamento do S3](Versioning.md).
+ A operação `UpdateObjectEncryption` falha em qualquer objeto que tenha um modo de retenção do Bloqueio de Objetos do S3 ou uma retenção jurídica aplicados a ele. Se um objeto tiver um período de retenção no modo de governança ou uma retenção jurídica, primeiro será necessário remover o status de bloqueio de objetos para emitir a solicitação `UpdateObjectEncryption`. Não é possível usar a operação `UpdateObjectEncryption` com objetos que tenham um período de retenção do modo de conformidade do Bloqueio de Objetos aplicado a eles. Para obter mais informações sobre bloqueio de objetos do S3, consulte [Bloquear objetos com o Bloqueio de Objetos](object-lock.md).
+ As solicitações `UpdateObjectEncryption` em buckets de origem com replicação em tempo real habilitada não iniciarão eventos de réplica no bucket de destino. Se você quiser alterar o tipo de criptografia dos objetos nos buckets de origem e destino, será necessário iniciar solicitações `UpdateObjectEncryption` separadas nos objetos nos buckets de origem e destino.
+ Por padrão, todas as solicitações `UpdateObjectEncryption` que especificam uma chave do KMS gerenciada pelo cliente são restritas às chaves do KMS pertencentes à Conta da AWS do proprietário do bucket. Se você estiver usando o AWS Organizations, existe a possibilidade de usar AWS KMS keys pertencentes a outras contas de membro em sua organização. Para isso, entre em contato com o AWS Support para fazer essa solicitação.
+ Se você usa o recurso Replicação em Lote do S3 para replicar conjuntos de dados entre regiões e já tiver atualizado o tipo de criptografia do lado do servidor de SSE-S3 para SSE-KMS, talvez você precise de permissões adicionais. No bucket da região de origem, é necessário ter a permissão `kms:decrypt`. Em seguida, é necessário ter as permissões `kms:decrypt` e `kms:encrypt` para o bucket na região de destino.
+ Forneça um ARN completo da chave do KMS na solicitação `UpdateObjectEncryption`. Não é possível usar um nome de alias ou ARN de alias. É possível determinar o ARN completo da chave do KMS no console do AWS KMS ou usando a API `DescribeKey` do AWS KMS.
+ Para melhorar o desempenho da geração de manifestos ao usar o filtro `KmsKeyArn`, use-o com outros filtros de metadados de objeto. Por exemplo, é possível combinar `KmsKeyArn` com `MatchAnyPrefix`, `CreatedAfter` ou `MatchAnyStorageClass` ao gerar automaticamente um manifesto no recurso Operações em Lote do S3.

Para obter mais informações sobre o `UpdateObjectEncryption`, consulte [Atualizar a criptografia do lado do servidor para dados existentes](update-sse-encryption.md).

## Permissões obrigatórias
<a name="batch-ops-required-permissions"></a>

Para realizar a operação `UpdateObjectEncryption`, adicione a política do AWS Identity and Access Management (IAM) a seguir à sua entidade principal do IAM (usuário, perfil ou grupo). Para usar essa política, substitua {{`{{amzn-s3-demo-bucket}}`}} pelo nome do bucket que contém os objetos para os quais você deseja atualizar a criptografia. Substitua `{{amzn-s3-demo-manifest-bucket}}` pelo nome do bucket que contém seu manifesto e substitua `{{amzn-s3-demo-completion-report-bucket}}` pelo nome do bucket onde você deseja armazenar o relatório de conclusão.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3BatchOperationsUpdateEncryption",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:PutObject",
                "s3:UpdateObjectEncryption"
            ],
            "Resource": [
                 "arn:aws:s3:::{{amzn-s3-demo-bucket-target}}"
                "arn:aws:s3:::{{amzn-s3-demo-bucket-target}}-target/*"
            ]
        },
        {
            "Sid": "S3BatchOperationsPolicyForManifestFile",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::{{amzn-s3-demo-bucket-manifest}}/*"
            ]
        },
        {
            "Sid": "S3BatchOperationsPolicyForCompletionReport",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::{{amzn-s3-demo-bucket-completion-report}}/*"
            ]
        },
        {
            "Sid": "S3BatchOperationsPolicyManifestGeneration",
            "Effect": "Allow",
            "Action": [
                "s3:PutInventoryConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::{{amzn-s3-demo-bucket-target}}"
            ]
        },
        {
            "Sid": "AllowKMSOperationsForS3BatchOperations",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:Encrypt",
                "kms:ReEncrypt*"
            ],
            "Resource": [                "arn:aws:kms:{{us-east-1}}:111122223333:key/{{01234567-89ab-cdef-0123-456789abcdef}}"
            ]
        }
    ]
}
```

Para ter informações sobre a política de confiança e a política de permissões que devem ser anexadas ao perfil do IAM que a entidade principal de serviço do recurso Operações em Lote do S3 assume para executar trabalhos de operações em lote em seu nome, consulte [Conceder permissões para operações em lote](batch-ops-iam-role-policies.md) e [Atualizar a criptografia de objetos](batch-ops-iam-role-policies.md#batch-ops-update-encryption-policies).