AWS PrivateLink para Amazon S3

Con AWS PrivateLink para Amazon S3, puede aprovisionar puntos de enlace de la VPC de la interfaz (puntos de enlace de la interfaz) en su Virtual Private Cloud (VPC). A estos puntos de enlace se puede acceder directamente desde las aplicaciones que se encuentran en las instalaciones a través de la VPN y AWS Direct Connect, o bien, en una Región de AWS diferente mediante la interconexión de VPC.

Los puntos de enlace de la interfaz se representan mediante una o más interfaces de red elásticas (elastic network interfaces, ENI) a las que se asignan direcciones IP privadas desde subredes de la VPC. Las solicitudes a Amazon S3 sobre puntos de conexión de la interfaz permanecen en la red de Amazon. Asimismo, puede acceder a los puntos de conexión de la interfaz en su VPC desde aplicaciones en las instalaciones a través de AWS Direct Connect oAWS Virtual Private Network (AWS VPN). Para obtener más información sobre cómo conectar la VPC a la red en las instalaciones, consulte la AWS Direct ConnectGuía del usuario de y la AWS Site-to-Site VPNGuía del usuario de .

Para obtener más información sobre los puntos de enlace de la interfaz, consulte Puntos de enlace de la VPC de la interfaz (AWS PrivateLink) en la Guía de AWS PrivateLink.

Tipos de puntos de enlace de la VPC para Amazon S3

Puede utilizar dos tipos de puntos de conexión de VPC para acceder a Amazon S3: puntos de conexión de la puerta de enlace y puntos de conexión de la interfaz (mediante AWS PrivateLink). Un punto de conexión de gateway es una gateway que se especifica en la tabla de enrutamiento para acceder a Amazon S3 desde su VPC a través de la red de AWS. Los puntos de conexión de la interfaz extienden la funcionalidad de los puntos de conexión de la puerta de enlace a través de direcciones IP privadas para enviar solicitudes a Amazon S3 desde su VPC, el sistema en las instalaciones u otra VPC en otra Región de AWS mediante la interconexión de VPC o AWS Transit Gateway. Para obtener más información, consulte ¿Qué es una interconexión de VPC? y Transit Gateway frente a interconexión de VPC.

Los puntos de enlace de la interfaz son compatibles con los puntos de enlace de gateway. Si tiene un punto de conexión de gateway existente en la VPC, puede utilizar ambos tipos de puntos de enlace en la misma VPC.

Puntos de enlace de gateway para Amazon S3

Puntos de enlace de interfaz para Amazon S3

En ambos casos, el tráfico de red permanece en la red de AWS.

Utilice direcciones IP públicas de Amazon S3

Utilice direcciones IP privadas de su VPC para acceder a Amazon S3

Utilizar los mismos nombres DNS de Simple Storage Service (Amazon S3)

Requerir nombres DNS de Simple Storage Service (Amazon S3) específicos de punto de conexión

No permite el acceso desde las instalaciones

Permitir el acceso desde las instalaciones

No permite el acceso desde otra Región de AWS

Permite el acceso desde una VPC en otra Región de AWS mediante el uso de emparejamiento de VPC o AWS Transit Gateway

No facturado

Facturado

Para obtener más información acerca de los puntos de enlace de gateway, consulte Puntos de enlace de la VPC de gateway en la Guía del usuario de AWS PrivateLink.

Los límites de VPC se aplican a AWS PrivateLink para Amazon S3. Para obtener más información, consulte Consideraciones de los puntos de conexión de la interfaz y Cuotas de AWS PrivateLink en la Guía de AWS PrivateLink. Además, se aplican las siguientes restricciones.

AWS PrivateLink para Amazon S3 no admite lo siguiente:

Creación de un punto de conexión de VPC

Para crear un punto de conexión de interfaz de VPC, consulte Crear un punto de conexión de VPC en la Guía de AWS PrivateLink.

Acceso a los puntos de enlace de la interfaz de Amazon S3

Cuando se crea un punto de conexión de interfaz, Amazon S3 genera dos tipos de nombres DNS de S3 específicos del punto de conexión: regional y zonal.

  • Un nombre de DNS regional incluye un ID único de punto de conexión de VPC, un identificador de servicio, la Región de AWS y vpce.amazonaws.com en su nombre. Por ejemplo, para el Id. de punto de conexión de la VPC vpce-1a2b3c4d, el nombre DNS generado podría ser similar a vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com.

  • Un nombre de DNS zonal incluye la zona de disponibilidad, por ejemplo, vpce-1a2b3c4d-5e6f-us-east-1a.s3.us-east-1.vpce.amazonaws.com. Puede utilizar esta opción si la arquitectura aísla Zonas de disponibilidad. Por ejemplo, podría usarlo para la contención de fallos o para reducir los costos de transferencia de datos regionales.

Los nombres DNS S3 específicos de los puntos de enlace se pueden resolver desde el dominio DNS público de S3.

DNS privado

Las opciones de DNS privado para los puntos de conexión de la interfaz de VPC simplifican el enrutamiento del tráfico de S3 a través de los puntos de conexión de VPC y le ayudan a aprovechar la ruta de red más económica disponible para su aplicación. Puede usar las opciones de DNS privadas para dirigir el tráfico de S3 regional sin actualizar sus clientes de S3 para que usen los nombres DNS específicos de los puntos de conexión de sus interfaces ni administrar la infraestructura de DNS. Con los nombres DNS privados habilitados, las consultas de DNS de S3 regional se resuelven en las direcciones IP privadas de AWS PrivateLink para los siguientes puntos de conexión:

  • Puntos de conexión de bucket regionales (por ejemplo, s3.us-east-1.amazonaws.com)

  • Puntos de conexión de control (por ejemplo, s3-control.us-east-1.amazonaws.com)

  • Puntos de conexión de puntos de acceso (por ejemplo, s3-accesspoint.us-east-1.amazonaws.com)

Si tiene un punto de conexión de puerta de enlace en su VPC, puede dirigir automáticamente las solicitudes dentro de la VPC a través del punto de conexión de la puerta de enlace de S3 actual y las solicitudes en las instalaciones a través del punto de conexión de su interfaz. Este enfoque le permite optimizar sus costos de red mediante el uso de puntos de conexión de la puerta de enlace, que no se facturan, para el tráfico en la VPC. Sus aplicaciones en las instalaciones pueden utilizar AWS PrivateLink con la ayuda del punto de conexión de Resolver entrante. Amazon proporciona un servidor DNS, denominado Route 53 Resolver, para la VPC. Un punto de conexión de Resolver entrante reenvía las consultas de DNS desde la red local a Route 53 Resolver.

importante

Para aprovechar la ruta de red más económica al utilizar Habilitar el DNS privado solo para puntos de conexión entrantes, debe haber un punto de conexión de la puerta de enlace en la VPC. La presencia de un punto de conexión de puerta de enlace ayuda a garantizar que el tráfico en la VPC siempre se dirija a través de la red AWS privada cuando se selecciona la opción Habilitar el DNS privado solo para puntos de conexión entrantes. Debe mantener este punto de conexión de puerta de enlace mientras tenga seleccionada la opción Habilitar el DNS privado solo para puntos de conexión entrantes. Si desea eliminar el punto de conexión de puerta de enlace, primero debe desmarcar Habilitar el DNS privado solo para puntos de conexión entrantes.

Si desea actualizar un punto de conexión de interfaz existente para Habilitar el DNS privado solo para los puntos de conexión entrantes, primero debe confirmar que su VPC tenga un punto de conexión de puerta de enlace de S3. Para obtener más información sobre los puntos de conexión de la puerta de enlace y la administración de los nombres DNS privados, consulte los Puntos de conexión de VPC de la puerta de enlace y Administración de nombres de DNS, respectivamente, en la Guía de AWS PrivateLink.

La opción Habilitar el DNS privado solo para los puntos de conexión entrantes solo está disponible para los servicios que admiten puntos de conexión de la puerta de enlace.

Para obtener más información sobre la creación de un punto de conexión de VPC que utilice Habilitar el DNS privado solo para los puntos de conexión entrantes, consulte Crear un punto de conexión de la interfaz en la Guía de AWS PrivateLink.

Uso de la consola de la VPC

En la consola, tiene dos opciones: Habilitar el nombre de DNS y Habilitar el DNS privado solo para los puntos de conexión entrantes. Habilitar el nombre de DNS es una opción admitida por AWS PrivateLink. Al utilizar la opción Habilitar el nombre de DNS, puede utilizar la conectividad privada de Amazon con Amazon S3 y, al mismo tiempo, realizar solicitudes a los nombres de DNS de puntos de conexión públicos predeterminados. Cuando esta opción está habilitada, los clientes pueden aprovechar la ruta de red más económica disponible para su aplicación.

Al habilitar los nombres DNS privados en un punto de conexión de la interfaz de VPC nuevo o existente para Amazon S3, se selecciona la opción Habilitar el DNS privado solo para los puntos de conexión entrantes de forma predeterminada. Si se selecciona esta opción, las aplicaciones utilizan únicamente los puntos de conexión de la interfaz para el tráfico en las instalaciones. Este tráfico dentro de la VPC utiliza automáticamente los puntos de conexión de la puerta de enlace más económicos. También puede desmarcar la opción Habilitar el DNS privado solo para puntos de conexión entrantes para dirigir todas las solicitudes de S3 a través del punto de conexión de la interfaz.

Uso de AWS CLI

Si no especifica un valor para PrivateDnsOnlyForInboundResolverEndpoint, el valor predeterminado es true. Sin embargo, antes de que la VPC aplique la configuración, realiza una comprobación para asegurarse de que haya un punto de conexión de la puerta de enlace presente en la VPC. Si hay un punto de conexión de la puerta de enlace en la VPC, la llamada se realiza correctamente. De lo contrario, si ve el siguiente mensaje de error:

Para configurar PrivateDnsOnlyForInboundResolverEndpoint en true, la VPC vpce_id debe tener un punto de conexión de la puerta de enlace para el servicio.

Para un nuevo punto de conexión de la interfaz de la VPC

Utilice los atributos private-dns-enabled y dns-options para habilitar el DNS privado a través de la línea de comandos. La opción PrivateDnsOnlyForInboundResolverEndpoint del atributo dns-options debe estar establecida en true. Reemplace los user input placeholders con su propia información.

aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name s3-service-name \ --vpc-id client-vpc-id \ --subnet-ids client-subnet-id \ --vpc-endpoint-type Interface \ --private-dns-enabled \ --ip-address-type ip-address-type \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=true \ --security-group-ids client-sg-id

Para un punto de conexión de VPC existente

Si quiere usar un DNS privado para un punto de conexión de VPC existente, use el siguiente comando de ejemplo y reemplace user input placeholders con su información.

aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-id \ --private-dns-enabled \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=false

Si desea actualizar un punto de conexión de VPC existente para habilitar el DNS privado solo para el Resolver entrante, utilice el siguiente ejemplo y sustituya los valores de ejemplo por los suyos.

aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-id \ --private-dns-enabled \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=true

Acceder a buckets, puntos de acceso y operaciones de la API de control de Amazon S3 desde los puntos de conexión de la interfaz de S3

Puede utilizar la AWS CLI o los SDK de AWS para acceder a los buckets, los puntos de acceso de S3 y las operaciones de la API de control de Amazon S3 a través de los puntos de conexión de la interfaz de S3.

La siguiente imagen muestra la pestaña Details (Detalles) de la consola de la VPC, donde puede encontrar el nombre DNS de un punto de conexión de la VPC. En este ejemplo, el ID de punto de conexión de la VPC (vpce-id) es vpce-0e25b8cdd720f900e y el nombre DNS es *.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com.

La pestaña Detalles de la consola de VPC.

Cuando utilice el nombre de DNS para acceder a un recurso, sustituya * por el valor correspondiente. Los valores adecuados que se deben utilizar en lugar de * son los siguientes:

  • bucket

  • accesspoint

  • control

Por ejemplo, para acceder a un bucket, utilice un nombre de DNS como este:

bucket.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com

Para ver ejemplos de cómo usar los nombres de DNS para acceder a los buckets, los puntos de acceso y las operaciones de la API de control de Amazon S3, consulte las siguientes secciones de Ejemplos de AWS CLI y Ejemplos del SDK de AWS.

Para obtener más información acerca de cómo ver los nombres de DNS específicos de los puntos de conexión, consulte Visualización de la configuración de los nombres de DNS privados de servicio de los puntos de conexión en la Guía del usuario de VPC.

Utilice los parámetros --region y --endpoint-url para acceder a los buckets de S3, los puntos de acceso S3 o las operaciones de la API de control de Amazon S3 a través de los puntos de conexión de la interfaz de S3 en los comandos AWS CLI.

Ejemplo: utilizar una URL del punto de conexión para enumerar objetos en su bucket

En el siguiente ejemplo, reemplace el nombre del bucket my-bucket, la región us-east-1 y el nombre de DNS del ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información.

aws s3 ls s3://my-bucket/ --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com

Ejemplo: utilizar una URL del punto de conexión para enumerar objetos de un punto de acceso

  • Método 1: usar el nombre de recurso de Amazon (ARN) del punto de acceso con el punto de conexión del punto de acceso

    Reemplace el ARN us-east-1:123456789012:accesspoint/accesspointexamplename, la región us-east-1 y el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información.

    aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:123456789012:accesspoint/accesspointexamplename --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com

    Si no puede ejecutar el comando correctamente, actualice su AWS CLI a la versión más reciente e inténtelo de nuevo. Para obtener más información sobre la instalación de actualización, consulte Instalación o actualización de la versión más reciente de AWS CLI en la Guía del usuario de AWS Command Line Interface.

  • Método 2: usar el alias del punto de acceso con el punto de conexión del bucket regional

    En el siguiente ejemplo, reemplace el alias del punto de acceso accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias, la región us-east-1 y el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información.

    aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  • Método 3: usar el alias del punto de acceso con el punto de conexión del punto de acceso

    En primer lugar, para crear un punto de conexión de S3 con el bucket incluido como parte del nombre de host, defina el estilo de direccionamiento hacia virtual para que lo utilice aws s3api. Para obtener más información sobre AWS configure, consulte Opciones de los archivos de configuración y credenciales en la Guía del usuario de AWS Command Line Interface.

    aws configure set default.s3.addressing_style virtual

    En el siguiente ejemplo, reemplace el alias del punto de acceso accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias, la región us-east-1 y el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información. Para obtener más información acerca de los alias de punto de acceso, consulte Uso de un alias de estilo de bucket para su punto de acceso de bucket de S3.

    aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
Ejemplo: utilizar una URL del punto de conexión para enumerar trabajos con una operación de la API de control de S3

En el siguiente ejemplo, reemplace la región us-east-1, el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com y el ID de cuenta 12345678 con su información.

aws s3control --region us-east-1 --endpoint-url https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com list-jobs --account-id 12345678

Para acceder a los buckets de S3, los puntos de acceso de S3 o las operaciones de la API de control de Amazon S3 a través de los puntos de conexión de la interfaz de S3 al utilizar los SDK de AWS, actualice sus SDK a la versión más actual. A continuación, configure sus clientes para que utilicen una URL de punto de conexión para acceder a un bucket, un punto de acceso o a operaciones de la API de control de Amazon S3 a través de los puntos de conexión de la interfaz de S3.

SDK for Python (Boto3)
Ejemplo: utilizar una URL de punto de conexión para acceder a un bucket de S3

En el siguiente ejemplo, reemplace la región us-east-1 y el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información.

s3_client = session.client( service_name='s3', region_name='us-east-1', endpoint_url='https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
Ejemplo: utilizar una URL de punto de conexión para acceder a un punto de acceso S3

En el siguiente ejemplo, reemplace la región us-east-1 y el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información.

ap_client = session.client( service_name='s3', region_name='us-east-1', endpoint_url='https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
Ejemplo: utilizar una URL de punto de conexión para acceder a la API de control S3

En el siguiente ejemplo, reemplace la región us-east-1 y el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información.

control_client = session.client( service_name='s3control', region_name='us-east-1', endpoint_url='https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
SDK for Java 1.x
Ejemplo: utilizar una URL de punto de conexión para acceder a un bucket de S3

En el siguiente ejemplo, reemplace el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información.

// bucket client final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); List<Bucket> buckets = s3.listBuckets();
Ejemplo: utilizar una URL de punto de conexión para acceder a un punto de acceso S3

En el siguiente ejemplo, reemplace el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com y el ARN us-east-1:123456789012:accesspoint/prod con su información.

// accesspoint client final AmazonS3 s3accesspoint = AmazonS3ClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); ObjectListing objects = s3accesspoint.listObjects("arn:aws:s3:us-east-1:123456789012:accesspoint/prod");
Ejemplo: utilizar una URL de punto de conexión para acceder a una operación de la API de control de Amazon S3

En el siguiente ejemplo, reemplace el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com con su información.

// control client final AWSS3Control s3control = AWSS3ControlClient.builder().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); final ListJobsResult jobs = s3control.listJobs(new ListJobsRequest());
SDK for Java 2.x
Ejemplo: utilizar una URL de punto de conexión para acceder a un bucket de S3

En el siguiente ejemplo, reemplace el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com y la región Region.US_EAST_1 con su información.

// bucket client Region region = Region.US_EAST_1; s3Client = S3Client.builder().region(region) .endpointOverride(URI.create("https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com")) .build()
Ejemplo: utilizar una URL de punto de conexión para acceder a un punto de acceso S3

En el siguiente ejemplo, reemplace el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com y la región Region.US_EAST_1 con su información.

// accesspoint client Region region = Region.US_EAST_1; s3Client = S3Client.builder().region(region) .endpointOverride(URI.create("https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com")) .build()
Ejemplo: utilizar una URL de punto de conexión para acceder a la API de control S3

En el siguiente ejemplo, reemplace el ID de punto de conexión de VPC vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com y la región Region.US_EAST_1 con su información.

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

Actualización de una configuración DNS en las instalaciones

Al utilizar nombres DNS específicos de puntos de enlace para acceder a los puntos de enlace de la interfaz de Amazon S3, no es necesario actualizar la resolución DNS local. Puede resolver el nombre DNS específico del punto de conexión con la dirección IP privada del punto de conexión de la interfaz desde el dominio DNS público de Amazon S3.

Uso de puntos de enlace de interfaz para acceder a Amazon S3 sin un punto de conexión de gateway o una gateway de Internet en la VPC

Los puntos de enlace de interfaz de su VPC pueden dirigir tanto las aplicaciones en VPC como las aplicaciones locales a Amazon S3 a través de la red de Amazon, como se muestra en el siguiente diagrama.

Diagrama de flujo de datos en el que se muestra el acceso a Amazon S3 mediante un punto de conexión de la interfaz y AWS PrivateLink.

En el siguiente diagrama se ilustra lo siguiente:

  • Su red en las instalaciones utiliza AWS Direct Connect o AWS VPN para conectarse a la VPC A.

  • Las aplicaciones locales y en la VPC A utilizan nombres DNS específicos de punto de conexión para acceder a Amazon S3 a través del punto de conexión de la interfaz S3.

  • Las aplicaciones en las instalaciones envían datos al punto de conexión de la interfaz en la VPC a través de AWS Direct Connect (o AWS VPN). AWS PrivateLink transfiere los datos desde el punto de conexión de la interfaz hasta Amazon S3 a través de la red de AWS.

  • Las aplicaciones en la VPC también envían tráfico al punto de conexión de la interfaz. AWS PrivateLink transfiere los datos desde el punto de conexión de la interfaz a Amazon S3 a través de la red de AWS.

Uso de puntos de enlace de gateway y puntos de enlace de interfaz juntos en la misma VPC para acceder a Amazon S3

Puede crear puntos de enlace de interfaz y conservar el punto de conexión de gateway existente en la misma VPC, como se muestra en el siguiente diagrama. De este modo, permite que las aplicaciones de la VPC continúen accediendo a Amazon S3 a través del punto de conexión de la puerta de enlace, lo que no se factura. En ese caso, solo las aplicaciones en las instalaciones utilizarían puntos de conexión de la interfaz para acceder a Amazon S3. A fin de acceder a Amazon S3 de esta manera, debe actualizar las aplicaciones en las instalaciones para utilizar nombres de DNS específicos de puntos de conexión para Amazon S3.

Diagrama de flujo de datos en el que se muestra el acceso a Amazon S3 mediante puntos de conexión de la puerta de enlace y los puntos de conexión de la interfaz.

En el siguiente diagrama se ilustra lo siguiente:

  • Las aplicaciones en las instalaciones utilizan nombres de DNS específicos de cada punto de conexión para enviar datos al punto de conexión de la interfaz dentro de la VPC a través de AWS Direct Connect (o AWS VPN). AWS PrivateLink transfiere los datos desde el punto de conexión de la interfaz hasta Amazon S3 a través de la red de AWS.

  • Mediante el uso de nombres regionales predeterminados de Amazon S3, las aplicaciones en VPC envían datos al punto de conexión de gateway que se conecta a Amazon S3 a través de la red de AWS.

Para obtener más información acerca de los puntos de enlace de gateway, consulte Puntos de enlace de la VPC de gateway en la Guía del usuario de VPC.

Creación de una política de puntos de enlace de la VPC para Amazon S3

Puede asociar una política de puntos de enlace con su punto de conexión de la VPC que controla el acceso a Amazon S3. La política especifica la siguiente información:

  • La entidad principal de AWS Identity and Access Management (IAM) que puede realizar acciones

  • Las acciones que se pueden realizar

  • Los recursos en los que se pueden llevar a cabo las acciones

También puede utilizar las políticas de bucket de Amazon S3 para restringir el acceso a buckets específicos desde un punto de conexión de VPC específico utilizando la condición aws:sourceVpce de su política de bucket. En los siguientes ejemplos se muestran políticas que restringen el acceso a un bucket o a un punto de conexión.

Puede crear una política de puntos de conexión que restrinja el acceso únicamente a buckets específicos de Amazon S3. Este tipo de política es útil si tiene otros Servicios de AWS en su VPC que utilicen buckets. La siguiente política de bucket restringe el acceso únicamente a example-s3-bucket1. Para utilizar esta política de puntos de conexión, sustituya example-s3-bucket1 por el nombre de su bucket.

{ "Version": "2012-10-17", "Id": "Policy1415115909151", "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::example-s3-bucket1", "arn:aws:s3:::example-s3-bucket1/*"] } ] }

Puede crear una política de punto de conexión que restrinja el acceso solo a los buckets de S3 de una Cuenta de AWS específica. Para evitar que los clientes de su VPC accedan a los buckets que no posee, utilice la siguiente instrucción en su política de puntos de conexión. En el siguiente ejemplo de instrucción, se crea una política que restringe el acceso a los recursos pertenecientes a un único ID de Cuenta de AWS, 111122223333.

{ "Statement": [ { "Sid": "Access-to-bucket-in-specific-account-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Deny", "Resource": "arn:aws:s3:::*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": "111122223333" } } } ] }
nota

Puede utilizar la clave Cuenta de AWS o aws:ResourceAccount en la política de IAM para especificar el ID de s3:ResourceAccount del recurso al que se va a acceder. Sin embargo, debe tener en cuenta que algunos Servicios de AWS dependen del acceso a buckets administrados por AWS. Por lo tanto, es posible que el uso de la clave aws:ResourceAccount o s3:ResourceAccount de la política de IAM también afecte al acceso a estos recursos.

Ejemplo: restringir el acceso a un punto de conexión de la VPC específico en la política de bucket de S3

La siguiente política de bucket de Amazon S3 permite el acceso a un bucket específico, example-s3-bucket2, solo desde un punto de conexión de VPC vpce-1a2b3c4d. La política deniega todo el acceso al bucket si el punto de conexión especificado no se está utilizando. La condición aws:sourceVpce especifica el punto de conexión y no requiere un nombre de recurso de Amazon (ARN) para el recurso de punto de conexión de VPC, solo el ID de punto de conexión. Para utilizar esta política de buckets, sustituya example-s3-bucket2 y vpce-1a2b3c4d por el nombre del bucket y el punto de conexión.

importante
  • Al aplicar las siguientes políticas de bucket de Amazon S3 para restringir el acceso únicamente a determinados puntos de conexión de VPC, puede bloquear el acceso al bucket de forma inintencionada. Las políticas de bucket pensadas para limitar específicamente el acceso del bucket a las conexiones procedentes de su punto de conexión de VPC pueden bloquear todas las conexiones al bucket. Para obtener información acerca de cómo corregir este problema, consulte Mi política de bucket tiene una VPC o un ID de punto de conexión de la VPC incorrectos. ¿Cómo puedo corregir la política de modo que pueda tener acceso al bucket? en el Centro de conocimientos de AWS Support.

  • Antes de utilizar la política de ejemplo siguiente, reemplace el ID del punto de conexión de la VPC por un valor adecuado para su caso de uso. De lo contrario, no podrá acceder a su bucket.

  • Esta política deshabilita el acceso a la consola al bucket especificado, ya que las solicitudes de consola no se originan en el punto de conexión de la VPC especificado.

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::example-s3-bucket2", "arn:aws:s3:::example-s3-bucket2/*"], "Condition": {"StringNotEquals": {"aws:sourceVpce": "vpce-1a2b3c4d"}} } ] }

Para obtener más ejemplos de políticas, consulte Puntos de enlace para Amazon S3 en la Guía del usuario de VPC.

Para obtener más información acerca de la conectividad de VPC, consulte Opciones de conectividad de red a VPC en el documento técnico de AWSOpciones de conectividad de Amazon Virtual Private Cloud.