Endpoints de gateway para o Amazon S3 - Amazon Virtual Private Cloud

Endpoints de gateway para o Amazon S3

É possível acessar o Amazon S3 de sua VPC usando endpoints da VPC de gateway. Depois de criar o endpoint de gateway, é possível adicioná-lo como um destino na tabela de rotas para o tráfego destinado da VPC ao Amazon S3.

Não há cobrança adicional pelo uso de endpoints do gateway.

O Amazon S3 oferece suporte a endpoints de gateway e de interface. Com um endpoint de gateway, é possível acessar o Amazon S3 utilizando a sua VPC sem precisar de um gateway de Internet ou um dispositivo de NAT para a sua VPC, e tudo isso sem custos adicionais. No entanto, os endpoints de gateway não permitem acesso de redes on-premises, de VPCs emparelhadas em outras regiões da AWS ou por meio de um gateway de trânsito. Para esses cenários, você deve usar um endpoint de interface, o qual está disponível por um custo adicional. Para obter mais informações, consulte Tipos de endpoints da VPC para o Amazon S3 no Guia do usuário da Amazon VPC.

Considerações

  • Um endpoint de gateway só estará disponível na região em que você o criou. Crie o endpoint de gateway na mesma região que os buckets do S3.

  • Se você estiver usando os servidores DNS da Amazon, será necessário habilitar os nomes de host DNS e a resolução de DNS para sua VPC. Se você estiver usando seu próprio servidor DNS, certifique-se de que as solicitações para o Amazon S3 sejam resolvidas corretamente para os endereços IP mantidos pela AWS.

  • As regras de saída do grupo de segurança para as instâncias que acessam o Amazon S3 pelo endpoint de gateway devem permitir o tráfego no Amazon S3. Você pode referenciar o ID da lista de prefixos do Amazon S3 nas regras do grupo de segurança.

  • A ACL da rede para a sub-rede das instâncias que acessam o Amazon S3 pelo endpoint de gateway deve permitir o tráfego no Amazon S3. Você não pode referenciar as listas de prefixos nas regras de ACL da rede, mas pode obter os intervalos de endereços IP para o Amazon S3 da lista de prefixos para o Amazon S3.

  • Verifique se está usando um AWS service (Serviço da AWS) que requer acesso a um bucket do S3. Por exemplo, um serviço pode requerer acesso a buckets que contêm arquivos de log ou pode requerer que você baixe drivers ou agentes para suas instâncias do EC2. Se for esse o caso, certifique-se de que a política de endpoint permita que o recurso ou o AWS service (Serviço da AWS) acessem esses buckets usando a ação s3:GetObject.

  • Você não pode usar a condição aws:SourceIp em uma política de identidade ou uma política de bucket para solicitações ao Amazon S3 que atravessam um endpoint da VPC. Em vez disso, use a condição aws:VpcSourceIp. Como alternativa, você pode usar tabelas de rotas para controlar quais instâncias do EC2 podem acessar o Amazon S3 por meio do endpoint da VPC.

  • Os endpoints de gateway são compatíveis somente com tráfego IPv4.

  • Os endereços IPv4 de origem de instâncias nas sub-redes afetadas, tal como recebidos pelo Amazon S3, mudam de endereços IPv4 públicos para endereços IPv4 privados na VPC. Um endpoint troca as rotas de rede e desconecta as conexões TCP abertas. As conexões anteriores que usavam endereços IPv4 públicos não são retomadas. É recomendável não ter nenhuma tarefa essencial em execução ao criar ou modificar um endpoint; ou que você faça um teste para verificar se seu software consegue reconectar-se automaticamente ao Amazon S3 após a interrupção da conexão.

  • Não é possível estender conexões de endpoint para fora de uma VPC. Recursos do outro lado de uma conexão VPN, uma conexão de emparelhamento da VPC, um gateway de trânsito ou uma conexão do AWS Direct Connect na VPC não podem usar um endpoint de gateway para se comunicar com o Amazon S3.

  • Sua conta tem uma cota padrão de 20 endpoints de gateway por região, o que é ajustável. Há também um limite de 255 endpoints de gateway por VPC.

DNS privado

É possível configurar o DNS privado para otimizar os custos ao criar um endpoint de gateway e um endpoint de interface para o Amazon S3.

Route 53 Resolver

A Amazon fornece um servidor de DNS à VPC, o Route 53 Resolver. O Route 53 Resolver resolve automaticamente nomes de domínio de VPC locais e os registra em zonas hospedadas privadas. No entanto, não é possível usar o Route 53 Resolver de fora da sua VPC. O Route 53 fornece endpoints e regras de Resolver para que você possa usar o Route 53 Resolver por fora da VPC. Um endpoint do Resolver de entrada encaminha consultas de DNS da rede on-premises para o Route 53 Resolver. Um endpoint do Resolver de saída encaminha consultas de DNS do Route 53 Resolver para a rede on-premises.

Quando você configura o endpoint da interface para o Amazon S3 para usar DNS privado somente para o endpoint do Resolver de entrada, criamos um endpoint do Resolver de entrada. O endpoint do Resolver de entrada resolve consultas de DNS para o Amazon S3 dos endereços IP on-premises para os endereços IP privados do endpoint da interface. Também adicionamos registros ALIAS do Route 53 Resolver à zona hospedada pública do Amazon S3 para que as consultas de DNS da sua VPC sejam resolvidas para os endereços IP públicos do Amazon S3, que roteia o tráfego para o endpoint do gateway.

DNS privado

Se você configurar o DNS privado para seu endpoint da interface para o Amazon S3, mas não configurar o DNS privado somente para o endpoint do Resolver de entrada, as solicitações da sua on-premises e da sua VPC usarão o endpoint da interface para acessar o Amazon S3. Portanto, você paga para usar o endpoint da interface para tráfego da VPC, em vez de usar o endpoint do gateway sem custo adicional.

Roteamento de solicitações do Amazon S3 com os dois tipos de endpoint.
DNS privado somente para o endpoint do Resolver de entrada

Se você configurar o DNS privado somente para o endpoint do Resolver de entrada, as solicitações da sua rede on-premises usarão o endpoint da interface para acessar o Amazon S3 e as solicitações da sua VPC usarão o endpoint do gateway para acessar o Amazon S3. Portanto, você otimiza seus custos, pois paga para usar o endpoint da interface somente para tráfego que não pode usar o endpoint do gateway.

Roteamento de solicitações do Amazon S3 com DNS privado e um endpoint do Resolver de entrada.
Configurar o DNS privado

É possível configurar o DNS privado para um endpoint de interface para o Amazon S3 ao criá-lo ou depois de criá-lo. Para obter mais informações, consulte Criar um VPC endpoint (configurar durante a criação) ou Habilitar nomes DNS privados (configurar após a criação).

Criar um endpoint do gateway

Use o seguinte procedimento para criar um endpoint de gateway que se conecte ao Amazon S3.

Para criar um endpoint do gateway usando o console
  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Endpoints.

  3. Escolha Criar endpoint.

  4. Em Service category (Categoria de serviço), escolha Serviços da AWS.

  5. Em Services (Serviços), adicione o filtro Type = Gateway (Tipo: gateway) e selecione com.amazonaws.region.s3.

  6. Em VPC, selecione a VPC na qual deseja criar o endpoint.

  7. Em Route tables (Tabelas de rotas), selecione as tabelas de rotas a serem usadas pelo endpoint. Adicionamos automaticamente uma rota que aponta o tráfego destinado ao serviço para a interface de rede do endpoint.

  8. Em Policy (Política), selecione Full access (Acesso total) para permitir todas as operações de todas as entidades principais em todos os recursos no endpoint da VPC. Ou então selecione Custom (Personalizar) para anexar uma política de endpoint da VPC que controle as permissões das entidades principais para realizar ações em recursos sobre o endpoint da VPC.

  9. (Opcional) Para adicionar uma tag, escolha Adicionar nova tag e insira a chave e o valor da tag.

  10. Escolha Criar endpoint.

Para criar um endpoint de gateway usando a linha de comando

Controlar acesso usando políticas de bucket

Você pode usar políticas de bucket para controlar o acesso a buckets de endpoints, VPCs, intervalos de endereço IP e Contas da AWS específicas. Estes exemplos supõem que também exista uma declaração de política que permita o acesso necessário para os seus casos de uso.

exemplo Exemplo: restringir o acesso a um endpoint específico

Você pode criar uma política de bucket que restrinja o acesso a um endpoint da VPC específico usando a chave de condição aws:sourceVpce. A seguinte política negará acesso ao bucket especificado usando as ações especificadas, a menos que o endpoint de gateway especificado seja usado. Observe que essa política bloqueia o acesso ao bucket especificado usando as ações especificadas por meio do AWS Management Console.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-VPCE", "Effect": "Deny", "Principal": "*", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"], "Resource": ["arn:aws:s3:::bucket_name", "arn:aws:s3:::bucket_name/*"], "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1a2b3c4d" } } } ] }
exemplo Exemplo: restringir o acesso a uma VPC específica

Você pode criar uma política de bucket que restrinja o acesso a VPCs específicas usando a chave de condição aws:sourceVpc. Isso será útil se houver vários endpoints configurados na mesma VPC. A seguinte política nega acesso ao bucket especificado usando as ações especificadas, a menos que a solicitação venha da VPC especificada. Observe que essa política bloqueia o acesso ao bucket especificado usando as ações especificadas por meio do AWS Management Console.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-VPC", "Effect": "Deny", "Principal": "*", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"], "Resource": ["arn:aws:s3:::example_bucket", "arn:aws:s3:::example_bucket/*"], "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-111bbb22" } } } ] }
exemplo Exemplo: restringir o acesso a um intervalo de endereços IP específico

Você pode criar uma política que restrinja o acesso a intervalos de endereços IP específicos usando a chave de condição aws:VpcSourceIp. A seguinte política nega acesso ao bucket especificado usando as ações especificadas, a menos que a solicitação venha do endereço IP especificado. Observe que essa política bloqueia o acesso ao bucket especificado usando as ações especificadas por meio do AWS Management Console.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-VPC-CIDR", "Effect": "Deny", "Principal": "*", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"], "Resource": ["arn:aws:s3:::bucket_name", "arn:aws:s3:::bucket_name/*"], "Condition": { "NotIpAddress": { "aws:VpcSourceIp": "172.31.0.0/16" } } } ] }
exemplo Exemplo: restringir o acesso a buckets em uma Conta da AWS específica

Você pode criar uma política de bucket que restrinja o acesso a buckets do S3 em uma Conta da AWS específica usando a chave de condição s3:ResourceAccount. A seguinte política nega acesso aos buckets do S3 usando as ações especificadas, a menos que sejam de propriedade da Conta da AWS especificada.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-bucket-in-specific-account", "Effect": "Deny", "Principal": "*", "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"], "Resource": "arn:aws:s3:::*", "Condition": { "StringNotEquals": { "s3:ResourceAccount": "111122223333" } } } ] }

Associar tabela de rotas

Você pode alterar tabelas de rotas associadas ao endpoint de gateway. Quando você associa uma tabela de rotas, adicionamos automaticamente uma rota que aponta o tráfego destinado ao serviço para a interface de rede do endpoint. Quando você desassocia uma tabela de rotas, removemos automaticamente a rota do endpoint da tabela de rotas.

Para associar tabelas de rotas usando o console
  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Endpoints.

  3. Selecione o endpoint de gateway.

  4. Escolha Actions, Manage route tables.

  5. Selecione ou cancele a seleção das tabelas de rotas, conforme necessário.

  6. Escolha Modify route tables (Modificar tabelas de rotas).

Para associar tabelas de rotas usando a linha de comando

Editar a política de endpoints da VPC

É possível editar a política de endpoint para um endpoint de gateway, que controla o acesso ao Amazon S3 da VPC até o endpoint. A política padrão permite acesso total. Para ter mais informações, consulte Políticas de endpoint.

Para alterar a política de endpoint usando o console
  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Endpoints.

  3. Selecione o endpoint de gateway.

  4. Escolha Actions (Ações), Manage policy (Gerenciar política).

  5. Escolha Full Access (Acesso total) para permitir acesso total ao serviço ou escolha Custom (Personalizado) e anexe uma política personalizada.

  6. Escolha Salvar.

Veja a seguir exemplos de políticas de endpoint para acessar o Amazon S3.

exemplo Exemplo: restringir acesso a um bucket específico

Você pode criar uma política que restrinja o acesso a somente alguns buckets do S3. Isso será útil se houver outros Serviços da AWS em sua VPC que usem buckets do S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-bucket", "Effect": "Allow", "Principal": "*", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket_name", "arn:aws:s3:::bucket_name/*" ] } ] }
exemplo Exemplo: restringir acesso a um perfil do IAM específico

Você pode criar uma política que restrinja o acesso a perfil do IAM específico. É necessário usar aws:PrincipalArn para conceder acesso a uma entidade principal.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-IAM-role", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": "arn:aws:iam::111122223333:role/role_name" } } } ] }
exemplo Exemplo: restringir o acesso a usuários em uma conta específica

Você pode criar uma política que restrinja o acesso a uma conta específica.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-callers-from-specific-account", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": "111122223333" } } } ] }

Excluir um endpoint de gateway

Quando não precisar mais de um endpoint de gateway, você poderá excluí-lo. Quando você exclui um endpoint de gateway, removemos a rota do endpoint das tabelas de rotas da sub-rede.

Não é possível excluir um endpoint de gateway quando o DNS privado está habilitado.

Para excluir um endpoint de gateway do cliente usando o console
  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Endpoints.

  3. Selecione o endpoint de gateway.

  4. Escolha Actions (Ações), Delete VPC endpoints (Excluir endpoints da VPC).

  5. Quando a confirmação for solicitada, insira delete.

  6. Escolha Excluir.

Para excluir um endpoint de gateway do cliente usando a linha de comando