AWS PrivateLink para S3 on Outposts - Amazon Simple Storage Service

AWS PrivateLink para S3 on Outposts

O S3 no Outposts é compatível com o AWS PrivateLink, que fornece acesso direto de gerenciamento ao armazenamento do S3 no Outposts por meio de um endpoint privado na rede privada virtual. Isso permite que você simplifique a arquitetura de rede interna e realize operações de gerenciamento no armazenamento de objetos do Outposts usando endereços IP privados na nuvem privada virtual (VPC). Usar o AWS PrivateLink elimina a necessidade de usar endereços IP públicos ou servidores proxy.

Com o AWS PrivateLink para o Amazon S3 no Outposts, você pode provisionar endpoints da VPC de interface na nuvem privada virtual (VPC) para acessar as APIs de gerenciamento de bucket e gerenciamento de endpoint do S3 no Outposts. Os endpoints da VPC de interface são diretamente acessíveis por aplicações implantadas na VPC ou no ambiente on-premises por meio da rede privada virtual (VPN) ou do AWS Direct Connect. Você pode acessar as APIs de gerenciamento de buckets e endpoints por meio do AWS PrivateLink. O AWS PrivateLink não é compatível com operações de transferência de dados da API, como GET, PUT e APIs semelhantes. Essas operações já são transferidas de forma privada por meio da configuração do ponto de acesso e do endpoint do S3 no Outposts. Para ter mais informações, consulte Redes para S3 on Outposts.

Os endpoints de interface são representados por uma ou mais interfaces de rede elástica (ENIs) que recebem endereços IP privados de sub-redes em sua VPC. As solicitações realizadas para endpoints de interface para o S3 on Outposts são encaminhadas automaticamente para as APIs de gerenciamento de buckets e endpoints do S3 on Outposts na rede da AWS. Você também pode acessar endpoints de interface em sua VPC via aplicações on-premises por meio do AWS Direct Connect ou da AWS Virtual Private Network (AWS VPN). Para obter mais informações sobre como conectar sua VPC à rede on-premises, consulte o Guia do usuário do AWS Direct Connect e o Guia do usuário do AWS Site-to-Site VPN.

Os endpoints de interface encaminham as solicitações para APIs de gerenciamento de buckets e endpoints do S3 on Outposts pela rede da AWS e por meio do AWS PrivateLink, conforme ilustrado no diagrama a seguir.

O diagrama de fluxo de dados mostra como os endpoints de interface encaminham as solicitações para APIs de gerenciamento de buckets e endpoints do S3 no Outposts.

Para obter informações gerais sobre endpoints de interface, consulte Endpoints da VPC de interface (AWS PrivateLink) no Manual do AWS PrivateLink.

Quando você acessa as APIs de gerenciamento de buckets e endpoints do S3 on Outposts por meio de AWS PrivateLink, há limitações da VPC. Para obter mais informações, consulte Propriedades e limitações de endpoints de interface e Cotas do AWS PrivateLink no Guia do usuário do AWS PrivateLink.

Além disso, o AWS PrivateLink não oferece compatibilidade com:

Acessar endpoints da interface do S3 on Outposts

Para acessar APIs de gerenciamento de buckets e endpoints do S3 on Outposts usando o AWS PrivateLink, você deve atualizar as aplicações para usar nomes de DNS específicos de endpoint. Quando você cria um endpoint de interface, o AWS PrivateLink gera dois tipos de nome do S3 on Outposts específicos do endpoint: regional e por zona.

  • Nomes de DNS regionais: incluem um ID de endpoint da VPC exclusivo, um identificador de serviço, a Região da AWS e vpce.amazonaws.com; por exemplo, vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com.

  • Nomes de DNS por zona: incluem um ID de endpoint da VPC exclusivo, a zona de disponibilidade, um identificador de serviço, a Região da AWS e vpce.amazonaws.com; por exemplo, vpce-1a2b3c4d-5e6f-us-east-1a.s3-outposts.us-east-1.vpce.amazonaws.com. Você pode usar essa opção se sua arquitetura isola zonas de disponibilidade. Por exemplo, você pode usar nomes DNS por zona para contenção de falhas ou para reduzir os custos da transferência de dados regional.

Importante

Os endpoints da interface do S3 no Outposts são resolvidos pelo domínio DNS público. O S3 no Outposts não é compatível com DNS privado. Use o parâmetro --endpoint-url para todas as APIs de gerenciamento de buckets e endpoints.

Use os parâmetros --region e --endpoint-url para acessar as APIs de gerenciamento de buckets e endpoints por meio de endpoints de interface do S3 on Outposts.

exemplo : usar o URL do endpoint para listar buckets com a API de controle do S3

No exemplo a seguir, substitua a região us-east-1, o URL do endpoint da VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com e o ID da conta 111122223333 pelas informações apropriadas.

aws s3control list-regional-buckets --region us-east-1 --endpoint-url https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com --account-id 111122223333

Atualize seus SDKs para a versão mais recente e configure seus clientes para usar um URL de endpoint a fim de acessar a API de controle para endpoints de interface do S3 on Outposts. Para obter mais informações, consulte Exemplos de AWS SDK para AWS PrivateLink.

SDK for Python (Boto3)
exemplo : use um URL de endpoint para acessar a API de controle do S3

No exemplo a seguir, substitua a região us-east-1 e o URL de endpoint da VPC vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com por informações apropriadas.

control_client = session.client( service_name='s3control', region_name='us-east-1', endpoint_url='https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com' )

Para obter mais informações, consulte AWS PrivateLink para Amazon S3 no Guia do desenvolvedor do Boto3.

SDK for Java 2.x
exemplo : use um URL de endpoint para acessar a API de controle do S3

No exemplo a seguir, substitua o URL do endpoint da VPC vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com e a região Region.US_EAST_1 por informações apropriadas.

// control client Region region = Region.US_EAST_1; s3ControlClient = S3ControlClient.builder().region(region) .endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com")) .build()

Para obter mais informações, consulte S3ControlClient na Referência de APIs do AWS SDK for Java.

Atualizar uma configuração de DNS on-premises

Ao usar nomes de DNS específicos do endpoint para acessar os endpoints de interface para as APIs de gerenciamento de buckets e endpoints do S3 on Outposts, você não precisa atualizar seu resolvedor de DNS on-premises. Você pode resolver o nome de DNS específico do endpoint com o endereço IP privado do endpoint de interface do domínio DNS público do S3 on Outposts.

Criar um endpoint da VPC para o S3 on Outposts

Para criar um endpoint da VPC de interface para S3 em Outposts, consulte Criar um endpoint da VPC no Guia do AWS PrivateLink.

Criar políticas de bucket e políticas de endpoint da VPC para S3 on Outposts

É possível anexar uma política de endpoint ao endpoint da VPC que controla o acesso ao S3 on Outposts. Você também pode usar a condição aws:sourceVpce em políticas de bucket do S3 on Outposts para restringir o acesso a buckets específicos de determinado endpoint da VPC. Com as políticas de endpoint da VPC, você pode controlar o acesso às APIs de gerenciamento de buckets e endpoints do S3 on Outposts. Com as políticas de bucket, você pode controlar o acesso às APIs de gerenciamento de buckets do S3 on Outposts. No entanto, você não pode gerenciar o acesso a ações de objeto para o S3 on Outposts usando aws:sourceVpce.

As políticas de acesso para o S3 on Outposts especificam as seguintes informações:

  • A entidade principal do AWS Identity and Access Management (IAM) para a qual as ações são permitidas ou negadas.

  • As ações de controle do S3 permitidas ou negadas.

  • Os recursos do S3 on Outposts nos quais as ações são permitidas ou negadas.

Os exemplos a seguir mostram políticas que restringem o acesso a um bucket ou a um endpoint. Para obter mais informações sobre conectividade de VPC, consulte Network-to-VPC connectivity options (Opções de conectividade entre rede e VPC) no whitepaper da AWS Amazon Virtual Private Cloud Connectivity Options (Opções de conectividade do Amazon Virtual Private Cloud).

Importante
  • Ao aplicar as políticas de exemplo para endpoints da VPC descritas nesta seção, talvez você bloqueie o acesso ao bucket acidentalmente. As permissões de bucket que limitam o acesso do bucket às conexões originadas de seu endpoint da VPC podem bloquear todas as conexões ao bucket. Para obter informações sobre como corrigir esse problema, consulte Minha política de bucket tem o ID da VPC ou do endpoint da VPC incorreto. Como corrigir a política para que eu possa acessar o bucket? na Central de conhecimento do AWS Support.

  • Antes de usar a política de bucket de exemplo a seguir, substitua o ID do endpoint da VPC por um valor apropriado para o caso de uso. Caso contrário, não será possível acessar o bucket.

  • Se a política permitir apenas o acesso a um bucket do S3 on Outposts por meio de um endpoint da VPC específico, ela desativará o acesso do console para esse bucket porque as solicitações do console não se originam do endpoint da VPC especificado.

Você pode criar uma política de endpoint que restrinja o acesso apenas a buckets específicos do S3 on Outposts. A política a seguir restringe o acesso à ação GetBucketPolicy somente ao example-outpost-bucket. Para usar essa política, substitua os valores de exemplo por seus próprios valores.

{ "Version": "2012-10-17", "Id": "Policy1415115909151", "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": {"AWS":"111122223333"}, "Action": "s3-outposts:GetBucketPolicy", "Effect": "Allow", "Resource": "arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket" } ] }

A política de bucket do S3 on Outposts a seguir nega acesso a GetBucketPolicy no bucket do example-outpost-bucket por meio do endpoint da VPC vpce-1a2b3c4d.

A condição aws:sourceVpce especifica o endpoint e não requer um nome do recurso da Amazon (ARN) para o recurso de endpoint da VPC, apenas o ID do endpoint. Para usar essa política, substitua os valores de exemplo por seus próprios valores.

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Deny-access-to-specific-VPCE", "Principal": {"AWS":"111122223333"}, "Action": "s3-outposts:GetBucketPolicy", "Effect": "Deny", "Resource": "arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket", "Condition": { "StringEquals": {"aws:sourceVpce": "vpce-1a2b3c4d"} } } ] }