Os recursos de gerenciamento de acesso do S3 permitem configurar regras de acesso de forma flexível para diferentes cenários. Abaixo estão alguns exemplos úteis de configuração de políticas de bucket do S3.
Para proteger a transmissão de dados, você pode restringir o acesso ao bucket apenas a conexões HTTPS. Isso impede tentativas de acesso usando requisições HTTP não seguras, reduzindo o risco de comprometimento dos dados.
Crie um arquivo de política chamado ssl.json:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::<bucket_name>/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
}
]
}
Aplique a política usando o seguinte comando:
aws s3api put-bucket-policy --bucket <bucket_name> --policy file://ssl.json --endpoint-url https://s3.hmstorage.net
Agora, qualquer requisição HTTP retornará um erro 403.
Para aumentar a segurança, você pode limitar o acesso ao bucket a endereços IP específicos. Isso é útil para proteger dados contra acesso externo não autorizado.
Crie um arquivo de política chamado ip.json:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::<bucket_name>/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"<IP_address>"
]
}
}
}
]
}
Aplique a política usando o seguinte comando:
aws s3api put-bucket-policy --bucket <bucket_name> --policy file://ip.json --endpoint-url https://s3.hmstorage.net
Se você precisar fornecer acesso a objetos específicos em um bucket, como arquivos dentro de um determinado prefixo, use a política a seguir. Isso é ideal para buckets privados quando você quer permitir acesso apenas a dados específicos.
Crie um arquivo de política chamado prefix.json:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<bucket_name>/html/*"
}
]
}
Aplique a política usando o seguinte comando:
aws s3api put-bucket-policy --bucket <bucket_name> --policy file://prefix.json --endpoint-url https://s3.hmstorage.net
Agora, todos os arquivos sob o prefixo /html estarão acessíveis para leitura.