Configurar políticas de bucket


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.

Restringir acesso apenas a HTTPS
Copiar link

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.

  1. 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"
                }
            }
        }
    ]
}
  1. 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.

Restringir acesso por endereços IP
Copiar link

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.

  1. 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>"
                    ]
                }
            }
        }
    ]
}
  1. 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

Conceder acesso a um prefixo específico
Copiar link

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.

  1. 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/*"
        }
    ]
}
  1. 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.