AWS S3: Criar política de proteção por IP ou Domínio

As políticas proverão uma camada de proteção de acordo com as configurações especificadas. 

Publicado em

É muito comum um Bucket na AWS S3 ter restrições de acesso específicas, afinal, nem tudo deve ter acesso público. Em alguns casos é possível criar uma URL pré-assinada, que fornece uma nova URL pública com tempo de expiração.

A seguir a gente vai ver como criar regras para restrição de recursos via IP e domínio. Ambos os casos podem ter infinitas utilidades, como permitir que apenas um serviços faça solicitação a recursos ou liberar um PDF apenas a usuários de um site.

Primeiramente, acesse o Bucket que você deseja criar a nova regra, por fim, clique na aba Permission. Agora você deve rolar a página até encontrar a seção Política do Bucket (Policy Bucket) e clicar no botão editar.

Restrição ao Bucket S3 na AWS.
Restrição ao Bucket S3 na AWS.

Restrição ao S3 por range de IP

Agora você deve entrar com o JSON fornecido abaixo, alterando os campos listados para as suas configurações.

  • Id - (Identificador) Um identificador opcional para a sua política;
  • Sid - (Statement ID) é usado para atribuir um identificador exclusivo a uma declaração dentro da política. Cada declaração (Statement) em uma política precisa ter um Sid único. O Sid é útil quando você deseja referenciar ou modificar uma declaração específica em uma política;
  • Resource - Forneça o Arn do seu Bucket;
  • aws:SourceIp - Um array com range de IP. Caso necessário você pode colocar um ou vários.
{
	"Version": "2012-10-17",
	"Id": "Policy1700226459732",
	"Statement": [
		{
			"Sid": "Stmt1700226438722",
			"Effect": "Allow",
			"Principal": "*",
			"Action": "s3:*",
			"Resource": "arn:aws:s3:::YOUR_BUCKET_HERE/*",
			"Condition": {
				"IpAddress": {
					"aws:SourceIp": [
						"173.245.48.0/20",
						"103.21.244.0/22"
					]
				}
			}
		}
	]
}

Restrição ao S3 a nível de domínio

Por outro lado, a gente também pode fazer restrições a nível de domínio, ou seja, o recurso vai estar disponível apenas dentro do nosso site. Acessos direto ao recurso serão negados.

Seguindo o mesmo passo anterior, edite e insira a política abaixo, alterando os campos necessários.

Actions - Quais são as ações que poderão ser executadas;
Resource - Forneça o Arn do seu Bucket;
StringLike/aws:Referer - Um array contendo um ou vários domínios autorizados.

{
    "Version": "2012-10-17",
    "Id": "HTTPS Policy allow",
    "Statement": [
        {
            "Sid": "Allow get requests originating from www.satellasoft.com.",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::video-player-test-satellasoft/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "https://satellasoft.com"
                    ]
                }
            }
        }
    ]
}

Para aplicar a regra acima, em alguns casos pode ser necessário revisar as políticas do Bucket.

Bloquear acesso público.
Bloquear acesso público.

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção

Todos os nossos cursos em promoção

Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção