Como usar criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C) - Amazon Simple Storage Service

Como usar criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C)

A criptografia de servidor envolve a proteção de dados em repouso. A criptografia no lado do servidor criptografa somente os dados de objeto, não os metadados de objeto. É possível usar a criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C) em buckets de uso geral para criptografar seus dados com suas próprias chaves de criptografia. Com a chave de criptografia que você fornece como parte de sua solicitação, o Amazon S3 gerencia a criptografia de dados ao gravar em discos, e a descriptografia dos dados quando você acessa seus objetos. Portanto, você não precisa manter um código para executar a criptografia e a descriptografia de dados. A única coisa que você precisa fazer é gerenciar as chaves de criptografia fornecidas.

A maioria dos casos de uso modernos no Amazon S3 não usa mais o SSE-C porque esse tipo de criptografia não tem a flexibilidade da criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) ou da criptografia do lado do servidor com chaves do AWS KMS (SSE-KMS). Como o SSE-C exige que você forneça a chave de criptografia toda vez que interage com seus dados criptografados por SSE-C, é impossível compartilhar a chave SSE-C com outros usuários, perfis ou serviços da AWS que leem dados dos seus buckets do S3 para operar com seus dados. Devido ao amplo suporte ao SSE-KMS na AWS, a maioria das workloads modernas não usa a criptografia SSE-C porque ela não tem a flexibilidade do SSE-KMS. Para saber mais sobre o SSE-KMS, consulte Usar criptografia do lado do servidor com o AWS KMS (SSE-KMS).

Se você quiser evitar que a criptografia SSE-C seja usada para objetos gravados em seu bucket, é possível bloquear a criptografia SSE-C ao alterar a configuração de criptografia padrão do bucket. Quando o SSE-C é bloqueado para um bucket de uso geral, qualquer solicitação PutObject, CopyObject, PostObject, de multipart upload ou de replicação que especificar a criptografia SSE-C será rejeitada com o erro HTTP 403 AccessDenied. Para saber mais sobre como bloquear o SSE-C, consulte Bloquear ou desbloquear o SSE-C para um bucket de uso geral.

Não há cobranças adicionais pelo uso de SSE-C. No entanto, as solicitações para configurar e usar SSE-C incorrem em cobranças padrão de solicitação do Amazon S3. Para obter mais informações sobre preços, consulte Preços do Amazon S3.

Importante

A partir de abril de 2026, a AWS desabilitará a criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C) para todos os buckets novos. Além disso, a criptografia SSE-C será desabilitada para todos os buckets existentes em Contas da AWS que não tenham dados criptografados por SSE-C. Com essas mudanças, as poucas aplicações que precisam da criptografia SSE-C deverão habilitar deliberadamente o uso do SSE-C por meio da API PutBucketEncryption após a criação do bucket. Nesses casos, talvez seja necessário atualizar scripts de automação, modelos do CloudFormation ou outras ferramentas de configuração de infraestrutura para definir essas configurações. Para ter mais informações, consulte a publicação do Blog do AWS Storage.

Considerações antes de usar o SSE-C

  • O S3 nunca armazena a chave de criptografia quando se usa o SSE-C. Você deve fornecer a chave de criptografia sempre que quiser que alguém baixe seus dados criptografados por SSE-C no S3.

    • Você gerencia um mapeamento cuja chave de criptografia foi usada para criptografar objetos. Você é responsável por acompanhar a chave de criptografia que forneceu para um objeto. Isso também significa que, se você perder a chave de criptografia, perderá o objeto.

    • Como gerencia chaves de criptografia no lado do cliente, você gerencia todas as proteções adicionais, como a alternância de chave, no lado do cliente.

    • Esse esquema pode dificultar o compartilhamento da chave SSE-C com outros usuários, perfis ou serviços da AWS que você possa operar com seus dados. Devido ao amplo suporte ao SSE-KMS na AWS, a maioria das workloads modernas não usa o SSE-C porque ele não tem a flexibilidade do SSE-KMS. Para saber mais sobre o SSE-KMS, consulte Usar criptografia do lado do servidor com o AWS KMS (SSE-KMS).

    • Isso significa que objetos criptografados com SSE-C não podem ser descriptografados nativamente pelos serviços gerenciados da AWS.

  • É necessário usar HTTPS ao especificar cabeçalhos SSE-C em suas solicitações.

    • O Amazon S3 rejeitará todas as solicitações feitas por HTTP ao usar SSE-C. Por questões de segurança, recomendamos considerar que todas as chaves enviadas erroneamente por HTTP estão comprometidas. Descarte a chave e alterne conforme apropriado.

  • Se o bucket tiver o versionamento habilitado, cada versão de objeto carregada poderá ter sua própria chave de criptografia. Você é responsável por acompanhar a chave de criptografia usada para uma versão de objeto.

  • Não é possível usar o SSE-C no console do Amazon S3. Não é possível usar o console do Amazon S3 para fazer upload de um objeto e especificar a criptografia SSE-C. Também não é possível usar o console para atualizar (por exemplo, alterar a classe de armazenamento ou adicionar metadados) um objeto armazenado com o SSE-C.