Quero que meu bucket do Amazon Simple Storage Service (Amazon S3) armazene somente objetos criptografados por uma chave do AWS Key Management Service (AWS KMS) da minha conta da AWS. Como posso ter certeza de que somente esses objetos podem ser carregados para o meu bucket?
Breve descrição
Use a criptografia padrão do Amazon S3 para garantir que os objetos carregados sem cabeçalhos de criptografia (como x-amz-server-side-encryption e x-amz-server-side-encryption-aws-kms-key-id) sejam criptografados pelo AWS KMS antes de serem armazenados no seu bucket do S3. Em seguida, use a política de bucket para garantir que objetos com outra configuração de criptografia (AES-256) não possam ser carregados e que os objetos carregados com a criptografia do AWS KMS contenham um ID de chave da sua conta da AWS.
Observação: Para fazer upload de um objeto criptografado por uma chave do AWS KMS, a chave e o bucket do S3 devem estar na mesma região da AWS.
Resolução
Criptografia padrão do Amazon S3
Siga estas etapas para definir a criptografia padrão do Amazon S3 do seu bucket para o AWS KMS usando o console do Amazon S3:
- Abra o console do Amazon S3.
- Selecione o bucket que você deseja usar para objetos criptografados pelo AWS KMS.
- Selecione a exibição Propriedades.
- Clique em Criptografia padrão e selecione AWS-KMS.
- Selecione Salvar.
Observação: Para habilitar a criptografia padrão do Amazon S3 usando a API REST, a AWS Command Line Interface (AWS CLI) ou um AWS SDK, consulte Configurar a criptografia padrão.
Política de bucket
Siga estas etapas para configurar sua política de bucket para negar solicitações de upload que usem outra configuração de criptografia (AES-256) ou que usem a criptografia do AWS KMS, mas contenham um ID de chave que não seja da sua conta da AWS:
- Abra o console do Amazon S3.
- Selecione o bucket que você deseja usar para objetos criptografados pelo AWS KMS.
- Selecione a visualização de Permissões.
- Selecione Política do bucket.
- Insira uma política de bucket semelhante à seguinte:
Observação: Substitua samplebucketname pelo nome do seu bucket e substitua us-east-1:111122223333 pela região da AWS e seu ID de conta da AWS corretos.
{
"Version": "2012-10-17",
"Id": "PutObjPolicy",
"Statement": [
{
"Sid": "DenySSE-S3",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::samplebucketname/*",
"Condition": {
"StringEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
},
{
"Sid": "RequireKMSEncryption",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::samplebucketname/*",
"Condition": {
"StringNotLikeIfExists": {
"s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
}
}
}
]
}
Informações relacionadas
Como o Amazon Simple Storage Service (Amazon S3) usa o AWS KMS