Proteger dados em trânsito com criptografia
O Amazon S3 aceita os protocolos HTTP e HTTPS para transmissão de dados. O HTTP transmite dados em texto simples, enquanto o HTTPS adiciona uma camada de segurança ao criptografar dados usando o Transport Layer Security (TLS). O TLS oferece proteção contra espionagem, adulteração de dados e ataques man-in-the-middle. Embora o tráfego HTTP seja aceito, a maioria das implementações usa criptografia em trânsito com HTTPS e TLS para proteger os dados enquanto eles trafegam entre os clientes e o Amazon S3.
Suporte a TLS 1.2 e TLS 1.3
O Amazon S3 é compatível com o TLS 1.2 e o TLS 1.3 para conexões HTTPS em todos os endpoints de API para todas as Regiões da AWS. O S3 negocia automaticamente a proteção mais forte do TLS permitida pelo software-cliente e pelo endpoint do S3 que você está acessando. Como as ferramentas atuais (2014 ou posteriores) da AWS, inclusive os SDKs da AWS, e a AWS CLI, são automaticamente padronizadas para o TLS 1.3, não é necessária nenhuma ação de sua parte. Você pode substituir essa negociação automática por meio das configurações do cliente para especificar uma versão do TLS se precisar de compatibilidade com versões anteriores do TLS 1.2. Ao usar o TLS 1.3, você tem a opção de configurar a troca de chaves híbrida pós-quântica (ML-KEM) para fazer solicitações pós-quânticas ao Amazon S3. Para obter mais informações, consulte Configurar o TLS híbrido pós-quântico para seu cliente.
nota
O TLS 1.3 é compatível com todos os endpoints do S3, exceto no AWS PrivateLink para Amazon S3 e nos pontos de acesso multirregionais.
Monitorar o uso de TLS
É possível usar os logs de acesso ao servidor do Amazon S3 ou o AWS CloudTrail para monitorar solicitações aos buckets do Amazon S3. Ambas as opções de registro em log registram a versão do TLS e a suíte de cifras usada em cada solicitação.
-
Logs de acesso ao servidor do Amazon S3: o registro em log de acesso ao servidor oferece registros detalhados das solicitações feitas a um bucket. Por exemplo, as informações do log de acesso podem ser úteis em auditorias de segurança e acesso. Para obter mais informações, consulte Formato dos logs de acesso ao servidor do Amazon S3.
-
AWS CloudTrail: o AWS CloudTrail é um serviço que fornece um registro das ações realizadas por um usuário, perfil ou serviço da AWS. O CloudTrail captura todas as chamadas de API para o Amazon S3 como eventos. Para obter mais informações, consulte Eventos do CloudTrail no Amazon S3.
Aplicar a criptografia em trânsito
É uma prática recomendada de segurança impor a criptografia de dados em trânsito para o Amazon S3. É possível impor a comunicação somente por HTTPS ou o uso de uma versão específica do TLS por meio de vários mecanismos de política. Isso inclui políticas baseadas em recurso do IAM para buckets do S3 (políticas de bucket), políticas de controle de serviços (SCPs), políticas de controle de recursos (RCPs) e políticas de endpoint da VPC.
Exemplos de política de bucket para aplicar a criptografia em trânsito
É possível usar a chave de condição s3:TlsVersion do S3 para restringir o acesso aos buckets do Amazon S3 com base na versão do TLS usada pelo cliente. Para obter mais informações, consulte Exemplo 6: exigir uma versão mínima do TLS.
exemplo de política de bucket que impõe o TLS 1.3 usando a chave de condição S3:TlsVersion
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInsecureConnections", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Condition": { "NumericLessThan": { "s3:TlsVersion": "1.3" } } } ] }amzn-s3-demo-bucket1
É possível usar a chave de condição global aws:SecureTransport em sua política de bucket do S3 para verificar se a solicitação foi enviada por HTTPS (TLS). Diferentemente do exemplo anterior, essa condição não verifica uma versão específica do TLS. Para obter mais informações, consulte Restringir o acesso somente a solicitações HTTPS.
exemplo de política de bucket que impõe HTTPS usando a chave de condição aws:SecureTransport
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RestrictToTLSRequestsOnly", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }amzn-s3-demo-bucket1
Exemplo de política com base em chaves e mais exemplos
É possível usar os dois tipos de chave de condição dos exemplos anteriores em uma política. Para ter mais informações e conhecer abordagens adicionais de imposição, consulte o artigo Enforcing encryption in transit with TLS1.2 or higher with Amazon S3