Quero permitir tráfego somente de endpoints ou endereços IP específicos do Amazon Virtual Private Cloud (Amazon VPC) para meu bucket do Amazon Simple Storage Service (Amazon S3).
Resolução
Use uma política de bucket para especificar os endpoints de VPC, endereços IP privados ou endereços IP públicos que podem acessar seu bucket do S3.
Aviso: Os exemplos a seguir de políticas de bucket negam explicitamente o acesso a determinadas solicitações fora dos endpoints da VPC ou endereços IP permitidos. Avalie suas políticas de bucket para determinar se elas afetam as solicitações relacionadas ao console.
Se sua política negar acesso a todas as ações do S3, você será bloqueado do seu bucket. Antes de salvar sua política de bucket, não deixe de revisá-la. Se você se isolar do seu bucket, consulte Como faço para recuperar o acesso ao meu bucket do Amazon S3 depois de negar acidentalmente o acesso a todos?
Restrinja o acesso a endpoints de VPC específicos
Para permitir tráfego somente dos endpoints de VPC que você especificar, use a chave aws:SourceVpce em sua política de bucket. O exemplo de política de bucket a seguir nega permissões de upload para o bucket, a menos que a solicitação de upload venha dos endpoints de VPC vpce-1111111 ou vpce-2222222:
{
"Id": "VPCe",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VPCe",
"Action": "s3:PutObject",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": [
"vpce-1111111",
"vpce-2222222"
]
}
},
"Principal": "*"
}
]
}
Para usar a política anterior com a condição aws:sourceVpce, conecte um endpoint de gateway de VPC para Amazon S3 à tabela de rotas da sub-rede da instância do Amazon Elastic Compute Cloud (Amazon EC2). O endpoint deve estar na mesma região da AWS que o bucket.
Restrinja o acesso a endereços IP privados específicos
Para permitir tráfego somente dos endereços IP privados que você especificar, use a chave aws:VpcSourceIp na sua política de bucket. O exemplo de política de bucket a seguir nega permissões de upload para o bucket, a menos que a solicitação de upload venha dos endereços IP privados 10.1.1.1/32 ou 172.1.1.1/32:
{
"Id": "VpcSourceIp",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VpcSourceIp",
"Action": "s3:PutObject",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"NotIpAddress": {
"aws:VpcSourceIp": [
"10.1.1.1/32",
"172.1.1.1/32"
]
}
},
"Principal": "*"
}
]
}
Para usar a política anterior com a condição aws:VpcSourceIp, você deve anexar um endpoint de gateway de VPC para Amazon S3 à tabela de rotas da sub-rede da instância EC2. O endpoint deve estar na mesma região do bucket.
Restrinja o acesso a endereços IP públicos específicos
Para permitir tráfego somente dos endereços IP públicos que você especificar, use a chave aws:SourceIp na sua política de bucket. O exemplo de política de bucket a seguir nega permissões de upload para o bucket, a menos que a solicitação de upload venha dos endereços IP públicos 11.11.11.11/32 ou 22.22.22.22/32:
{
"Id": "SourceIP",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SourceIP",
"Action": "s3:PutObject",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"11.11.11.11/32",
"22.22.22.22/32"
]
}
},
"Principal": "*"
}
]
}
Para permitir que entidades específicas do AWS Identity and Access Management (IAM) na mesma conta da AWS acessem o bucket, inclua a chave aws:PrincipalArn no bloco Condition da sua política:
"Condition": {
"ArnNotLike": {
"aws:PrincipalArn": [
"arn:aws:iam::123456789012:role/role-name",
"arn:aws:iam::123456789012:user/user-name",
"arn:aws:iam::123456789012:root"
]
}
}
Para permitir que os usuários usem endpoints da VPC ou endereços IP para realizar ações do S3 no bucket, habilite expressamente as permissões a nível de usuário. Você pode modificar uma política do IAM ou outra declaração na política do bucket para permitir permissões em nível de usuário.