Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Secure Your App

Use a VPC Private Endpoint (Preview)

Puede usar un punto de conexión privado para acceder a Atlas App Services desde su nube virtual privada (VPC). Se trata de una conexión privada a Atlas App Services que no se conecta a través de la red pública de internet. Las solicitudes externas a su VPC devuelven un... 404 error.

Los puntos de conexión privados solo están disponibles para las aplicaciones de Atlas App Services implementadas localmente en una región de AWS. Se conectan a su VPC de AWS mediante AWS PrivateLink. Para obtener más información, consulte ¿Qué es AWS PrivateLink? en la documentación de AWS.

Hay dos tipos de puntos finales privados de App Services:

  • General: Puntos finales que utilizan services.cloud.mongodb.com para solicitudes HTTP del cliente.

  • Sync: Endpoints that use services.cloud.mongodb.com for Sync WebSocket connections.

Importante

Los puntos finales HTTPS personalizados y los puntos finales de API de datos no son compatibles con puntos finales privados.

Reúne la siguiente información:

Configure una zona alojada privada para su VPC. Necesita su ID de VPC para esto. Utilice ModifyVpcAttribute para establecer los siguientes atributos de VPC como verdaderos:

  • EnableDnsHostnames

  • EnableDnsSupport

También debe instalar y autenticar la AWS CLI.

You can add a new General Endpoint or Sync Endpoint with the App Services UI or the Admin API.

1
  1. En la interfaz de usuario de App Services, navegue hasta App Settings, luego haga clic en la pestaña Private Endpoints.

  2. Hacer clic en Add Private Endpoint, luego hacer clic en General.

  3. Agregue su ID de VPC y las ID de subred (lista separada por comas) en sus campos separados, luego haga clic en Next.

  4. Copia el VPC Interface Endpoint Command generado. El comando debería ser similar a esto:

    aws ec2 create-vpc-endpoint \
    --vpc-endpoint-type Interface
    --service-name <App Services Endpoint Service Name> \
    --vpc-id <your-vpc-id> \
    --region <your-aws-deployment-region> \
    --subnet-ids <your-subnet-ids>
  5. En tu terminal, ejecuta el comando AWS CLI generado para crear un Endpoint de VPC.

2

Ahora que has creado el endpoint de la interfaz en tu VPC, necesitas agregarlo a tu aplicación.

  1. Busque el ID del punto de conexión de la VPC, ya sea en la salida del comando CLI que ejecutó en el paso anterior o en la pantalla de detalles del punto de conexión del panel de AWS VPC. Este valor empieza vpce- por.

  2. Copy your new VPC Endpoint's ID and paste it into the Your VPC Endpoint ID field in the App Services UI, then click Next.

  3. Si este es el primer nodo privado que creas, verás un cambio que puedes usar para restringir o abrir el acceso desde solicitudes fuera de tu conexión PrivateLink. Por defecto, aplicación Services bloquea todas las solicitudes provenientes del exterior de tu conexión PrivateLink. Esta configuración se aplica a este endpoint y a todos los endpoints adicionales que crees. Consulta cambiar restricciones de acceso para más información.

  4. Haga clic en Finish Endpoint Creation.

1
  1. Llame al punto final de servicios de punto final privado de VPC de lista.

  2. Filtra el objeto de respuesta para encontrar la entrada correspondiente a la región de implementación de tu aplicación y al tipo de endpoint que deseas crear.

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoint_service_infos \
    -H "Authorization: Bearer <access_token>"
    [
    {
    "cloud_provider_region": "aws-us-east-1",
    "service_name": "com.amazonaws.vpce.us-east-1.vpce-svc-0718bec2c0bdeab5c",
    "endpoint_type": "general"
    },
    ...
    ]
  3. Get the service_name field from the desired entry in the previous step.

  4. Crea un VPC Endpoint utilizando el AWS CLI create-vpc-endpoint comando. Necesitas un nombre de servicio de endpoint de App Services, ID de VPC, ID de subredes y región de implementación de AWS. El comando debería parecerse a lo siguiente:

aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface
--service-name <App Services Endpoint Service Name> \
--vpc-id <your-vpc-id> \
--region <your-aws-deployment-region> \
--subnet-ids <your-subnet-ids>
2

Ahora que has creado el endpoint de la interfaz en tu VPC, necesitas agregarlo a tu aplicación.

  1. Busque el ID del punto de conexión de la VPC, ya sea en la salida del comando CLI que ejecutó en el paso anterior o en la pantalla de detalles del punto de conexión del panel de AWS VPC. Este valor empieza vpce- por.

  2. Cuando tengas el ID de tu endpoint VPC, llama a Crear un endpoint privado de VPC con el ID del endpoint, la región de **implementación** en la nube y el tipo de endpoint. Por ejemplo, usando aws-us-east-1:

curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoints \
-X POST \
-H "Authorization: Bearer <accessToken>" \
-H "Content-Type: application/json" \
-d '{
"cloud_provider_region": "<your-cloud-deployment-region>",
"cloud_provider_endpoint_id": "<your-vpc-endpoint-id>",
"endpoint_type": "general",
"comment": "Optional: add a comment describing the endpoint."
}'

Cada punto final de sincronización debe estar emparejado con un punto final general.

1
  1. In the App Services UI, navigate to App Settings and then click the Private Endpoints tab.

  2. Hacer clic en Add Private Endpoint, luego hacer clic en Sync.

  3. Agregue su ID de VPC y las ID de subred (lista separada por comas) en sus campos separados, luego haga clic en Next.

  4. Copia el VPC Interface Endpoint Command generado. El comando debería ser similar a esto:

    aws ec2 create-vpc-endpoint \
    --vpc-endpoint-type Interface
    --service-name <App Services Endpoint Service Name> \
    --vpc-id <your-vpc-id> \
    --region <your-aws-deployment-region> \
    --subnet-ids <your-subnet-ids>
  5. En tu terminal, ejecuta el comando AWS CLI generado para crear un Endpoint de VPC.

  6. También debes crear un endpoint general usando el comando que generan los Servicios de aplicación.

2

Ahora que creaste los endpoints de la interfaz en tu VPC, debes agregarlos a tu aplicación.

  1. Busque los ID de los puntos de conexión de sincronización y generales de VPC, ya sea en la salida de los comandos de la CLI que ejecutó en el paso anterior o en la pantalla de detalles del punto de conexión del panel de AWS VPC. Este valor empieza vpce- por.

  2. Copia tus nuevos IDs de Endpoint VPC y pégalos en su respectivo campo Your VPC Endpoint ID en la Interfaz de usuario Realm, luego haz clic en Next.

  3. Si este es el primer nodo privado que creas, verás un cambio que puedes usar para restringir o abrir el acceso desde solicitudes fuera de tu conexión PrivateLink. Por defecto, aplicación Services bloquea todas las solicitudes provenientes del exterior de tu conexión PrivateLink. Esta configuración se aplica a este endpoint y a todos los endpoints adicionales que crees. Consulta cambiar restricciones de acceso para más información.

  4. También debe crear un punto final privado general siguiendo los pasos para crear un punto final privado general en esta página.

  5. Haga clic en Finish Endpoint Creation.

1
  1. Llame al punto final de servicios de punto final privado de VPC de lista.

  2. Filtra el objeto de respuesta para encontrar la entrada correspondiente a la región de implementación de tu aplicación y al tipo de endpoint que deseas crear.

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoint_service_infos \
    -H "Authorization: Bearer <access_token>"
    [
    {
    "cloud_provider_region": "aws-us-east-1",
    "service_name": "com.amazonaws.vpce.us-east-1.vpce-svc-0718bec2c0bdeab5c",
    "endpoint_type": "sync"
    },
    ...
    ]
  3. Get the service_name field from the desired entry in the previous step.

  4. Crea un VPC Endpoint utilizando el AWS CLI create-vpc-endpoint comando. Necesitas un nombre de servicio de endpoint de App Services, ID de VPC, ID de subredes y región de implementación de AWS. El comando debería parecerse a lo siguiente:

aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface
--service-name <App Services Endpoint Service Name> \
--vpc-id <your-vpc-id> \
--region <your-aws-deployment-region> \
--subnet-ids <your-subnet-ids>
2

Ahora que has creado el endpoint de la interfaz en tu VPC, necesitas agregarlo a tu aplicación.

  1. Encuentra el ID de punto final VPC sincronizar, ya sea en la salida de los comandos CLI que ejecutaste en el paso anterior o en la pantalla de detalles del punto final en el tablero de AWS VPC. Este valor se inicia con vpce-.

  2. Cree un punto de conexión privado de sincronización llamando a "Crear un punto de conexión privado de VPC" con su ID de punto de conexión, región de implementación en la nube y tipo de punto de conexión. Por ejemplo,aws-us-east-1 usando:

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoints \
    -X POST \
    -H "Authorization: Bearer <accessToken>" \
    -H "Content-Type: application/json" \
    -d '{
    "cloud_provider_region": "<your-cloud-deployment-region>",
    "cloud_provider_endpoint_id": "<your-vpc-endpoint-id>",
    "endpoint_type": "sync",
    "comment": "Optional: add a comment describing the endpoint."
    }'
  3. También debe crear un punto final privado general siguiendo los pasos para crear un punto final privado general en esta página.

De forma predeterminada, todos los puntos de conexión privados solo gestionan solicitudes internas. Puede optar por permitir el acceso a todas las solicitudes externas a su conexión PrivateLink.

Importante

Esta configuración es global para todos sus puntos finales.

Puede alternar esta configuración de tres maneras:

  • En la interfaz de usuario, desde la lista de endpoints en la pestaña Private Endpoints, haz clic en el botón Restrict Access.

  • En la interfaz de usuario, al crear su primer punto final privado, tiene la opción de alternar esta configuración en el paso Modify Your VPC Private DNS.

  • En la API de administración, llama a Alternar solicitudes que no sean VPC con un valor booleano (true para remover la restricción por defecto, o false para restablecerla).

Cuando habilite los nodos privados, aún puede habilitar el acceso a su aplicación App Services utilizando otros métodos, como agregando IP públicas a listas de acceso IP.

No es necesario agregar direcciones IP privadas a las listas de acceso de IP, ya que las solicitudes a través de puntos finales privados ignoran las listas de acceso de IP.

The Atlas Device SDKs can access your General and Sync endpoints. However, they must use a version that supports the new domain.

  • No puedes usar nodos privados con apps desplegadas de manera global o apps locales desplegadas en Azure o GCP.

  • No puedes usar conexiones públicas a internet para acceder a tu aplicación si tienes habilitado un punto de conexión privado. Todas las solicitudes deben pasar por él.

  • If you change your deployment model, then you must create new Private Endpoints for the App's new region.

  • No se pueden usar puntos de conexión privados y permitir conexiones mediante el protocolo de conexión MongoDB simultáneamente. Si uno está habilitado, no se puede habilitar el otro.

  • Por defecto, los nodos privados sólo gestionan solicitudes que se originan dentro de tu VPC. Puedes configurar tu aplicación para aceptar solicitudes también desde internet público. Para aprender cómo, consulta Cambiar restricciones de acceso.

  • Todas las solicitudes salientes, como un activador de App Services que llama a una API externa, pasan por Internet público.

Volver

Administrar el acceso de los desarrolladores

En esta página