Meus clientes usam versões anteriores do TLS. Ao acessar o conteúdo dos buckets do Amazon Simple Storage Service (Amazon S3), quero impor o uso de uma versão recente do TLS.
Resolução
Observação: O Amazon S3 exige a versão 1.2 ou posterior do TLS e é o padrão para endpoints da API do S3. Para aplicar uma versão superior do protocolo de criptografia, como o TLS 1.3 ou posterior, os exemplos neste artigo ainda se aplicam.
Use uma política baseada em recursos anexada ao bucket para impor o uso do TLS 1.2 ou posterior para todas as conexões com os seus buckets do S3.
Para anexar uma política de bucket que exija as versões 1.2 ou posteriores do TLS, realize as seguintes etapas:
-
Abra o console do Amazon S3.
-
Selecione o bucket na lista.
-
Escolha a guia Permissões.
-
Em Política de bucket, escolha Editar.
-
Adicione uma política para negar o acesso aos protocolos de criptografia que você deseja evitar. Por exemplo, use a política a seguir para negar todas as solicitações HTTPS que usam versões TLS anteriores à 1.2:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EnforceTLSv12orHigher",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:*"
],
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::DOC_EXAMPLE_BUCKET/*",
"arn:aws:s3:::DOC_EXAMPLE_BUCKET"
],
"Condition": {
"NumericLessThan": {
"s3:TlsVersion": 1.2
}
}
}
]
}
Essa política impõe HTTPS para aumentar a segurança dos dados em trânsito.
Se a sua workload exigir tráfego HTTP para o Amazon S3, use a política a seguir. Essa política permite tráfego HTTP e bloqueia o tráfego HTTPS de versões do TLS anteriores à 1.2:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "UpdateTLSv12",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::DOC_EXAMPLE_BUCKET/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "true"
},
"NumericLessThan": {
"s3:TlsVersion": "1.2"
}
}
}
]
}
Revise seus protocolos de criptografia para o S3
Para testar a nova política, execute o seguinte exemplo de comando curl para fazer solicitações HTTPS usando um protocolo legado específico:
curl https://${BUCKET_NAME}.s3.us-east-1.amazonaws.com/image.png -v --tlsv1.0 --tls-max 1.0
Como o Amazon S3 detecta que sua solicitação não usa a versão 1.2 ou posterior do TLS, o comando curl retorna Acesso negado.
Observação: por padrão, o curl envia uma solicitação anônima. Se seu bucket for privado, você receberá um erro 403 Access Denied para qualquer versão do TLS. Ao testar com curl, gere um URL pré-assinado do Amazon S3 para obter acesso aos seus objetos privados.
É uma prática recomendada usar o AWS CloudTrail Lake para identificar conexões de versões mais antigas do TLS com endpoints de serviço da AWS. É possível configurar o armazenamento de dados de eventos do CloudTrail Lake para capturar eventos de gerenciamento ou de dados.