Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/

Usar um endpoint privado VPC (prévia)

Nesta página

  • Antes de começar
  • Adicionar um endpoint privado
  • Adicionar um endpoint geral
  • Adicionar um endpoint de sincronização
  • Alterar restrições de acesso
  • Os endpoints privados ignoram as listas de acesso IP
  • Versões do SDK suportadas
  • Limitações de endpoints privados

Você pode usar um endpoint privado para acessar o Atlas App Services de dentro da sua virtual private cloud (VPC). Esta é uma conexão privada com o Atlas App Services que não Go pela Internet pública. As solicitações de fora da sua VPC retornam um erro 404 .

Os endpoints privados estão disponíveis somente para aplicativos do Atlas App Services distribuídos localmente em uma região do Amazon Web Services. Eles se conectam ao seu Amazon Web Services VPC usando AWS PrivateLink. Para saber mais, consulte O que é AWS PrivateLink? na Amazon Web Services documentação do .

Existem dois tipos de endpoints privados do App Services:

  • Geral: endpoints que usam services.cloud.mongodb.com para solicitações HTTP do cliente.

  • Sincronização: endpoints que usam o services.cloud.mongodb.com para sincronizar conexões WebSocket.

Importante

Os HTTPS endpointspersonalizados e os endpoints da API de dados não são permitidos em endpoints privados.

Reúna as seguintes informações:

  • Sua de , que você pode encontrar VPC ID no Amazon Web Services VPC painel da Amazon Web Services CLI do ou executando o describe-vpcs comando no .

  • Suas IDs de sub -rede, que você pode encontrar no painel da do VPC Amazon Web Services ou executando o describe-subnets comando no Amazon Web Services CLI.

Configure uma zona hospedada privada para sua VPC. Você precisa da sua ID da VPC para isso. Usar ModifyVpcAttribute para definir os seguintes atributos da VPC como verdadeiros:

  • EnableDnsHostnames

  • EnableDnsSupport

Você também deve instalar e autenticar o Amazon Web Services CLI.

Você pode adicionar um novo endpoint geral ou endpoint de sincronização com a interface do usuário do App Services ou a API de administração.

1
  1. Na interface do usuário do App Services, navegue até App Settings e clique na guia Private Endpoints .

  2. Clique em Add Private Endpoint e, em seguida, clique em General.

  3. Adicione sua ID de VPC e ID de sub-rede (lista separada por vírgulas) em seus campos separados e clique em Next.

  4. Copie o VPC Interface Endpoint Command gerado . O comando deve ser semelhante a este:

    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. Em seu terminal, execute o comando do gerado Amazon Web Services CLI para criar um VPC endpoint .

2

Agora que você criou o ponto de conexão da interface em sua VPC, é necessário adicioná-lo ao seu aplicativo.

  1. Encontre o do VPC endpoint ID na saída do CLI comando executado na etapa anterior ou na tela de detalhes do endpoint do Amazon Web Services VPC dashboard. Este valor começa com vpce-.

  2. Copie o ID do seu novo endpoint VPC e cole-o no campo Your VPC Endpoint ID na interface do usuário do App Services e clique em Next.

  3. Se este for o primeiro endpoint privado que você está criando, você verá um botão que pode ser usado para restringir ou abrir todo o acesso de solicitações fora da sua conexão PrivateLink. Por padrão, o Atlas App Services bloqueia todas as solicitações vindas de fora da sua conexão PrivateLink. Esta configuração se aplica a este endpoint e a todos os endpoints adicionais que você criar. Consulte alterar restrições de acesso para obter mais informações.

  4. Clique em Finish Endpoint Creation.

1
  1. Ligue para o endpoint List VPC Private Endpoint Services .

  2. Filtre o objeto de resposta para encontrar a entrada da região de sistema do seu aplicativo e o tipo de endpoint que você deseja criar.

    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. Obtenha o campo service_name da entrada desejada na etapa anterior.

  4. Crie um VPC endpoint usando o Amazon Web Services CLI create-vpc-endpoint comando. Você precisa de um nome de serviço de endpoint do App Services, VPC ID de , IDs de sub-rede e Amazon Web Services região de implantação . O comando deve ser semelhante a este:

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

Agora que você criou o ponto de conexão da interface em sua VPC, é necessário adicioná-lo ao seu aplicativo.

  1. Encontre o do VPC endpoint ID na saída do CLI comando executado na etapa anterior ou na tela de detalhes do endpoint do Amazon Web Services VPC dashboard. Este valor começa com vpce-.

  2. Quando tiver o ID do endpoint VPC, chame Criar um endpoint privado de VPC com o ID do endpoint, a região de implantação da nuvem e o tipo de endpoint. Por exemplo, 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 endpoint de sincronização deve ser emparelhado com um endpoint geral.

1
  1. Na interface do usuário do App Services, navegue até App Settings e clique na guia Private Endpoints .

  2. Clique em Add Private Endpoint e, em seguida, clique em Sync.

  3. Adicione sua ID de VPC e ID de sub-rede (lista separada por vírgulas) em seus campos separados e clique em Next.

  4. Copie o VPC Interface Endpoint Command gerado . O comando deve ser semelhante a este:

    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. Em seu terminal, execute o comando do gerado Amazon Web Services CLI para criar um VPC endpoint .

  6. Você também deve criar um endpoint geral usando o comando que o App Services gera.

2

Agora que você criou os pontos de conexão da interface na VPC, é necessário adicioná-los ao aplicativo.

  1. Encontre as IDs de endpoint daVPC de sincronização e gerais na saída dos comandos CLI executados na etapa anterior ou na tela de detalhes do endpoint do dashboard da VPC do Amazon Web Services. Este valor começa com vpce-.

  2. Copie suas novas IDs de endpoint VPC e cole-as em seu respectivo campo Your VPC Endpoint ID na interface do usuário do App Services e clique em Next.

  3. Se este for o primeiro endpoint privado que você está criando, você verá um botão que pode ser usado para restringir ou abrir todo o acesso de solicitações fora da sua conexão PrivateLink. Por padrão, o Atlas App Services bloqueia todas as solicitações vindas de fora da sua conexão PrivateLink. Esta configuração se aplica a este endpoint e a todos os endpoints adicionais que você criar. Consulte alterar restrições de acesso para obter mais informações.

  4. Você também deve criar um endpoint privado geral seguindo as etapas para criar um endpoint privado geral nesta página.

  5. Clique em Finish Endpoint Creation.

1
  1. Ligue para o endpoint List VPC Private Endpoint Services .

  2. Filtre o objeto de resposta para encontrar a entrada da região de sistema do seu aplicativo e o tipo de endpoint que você deseja criar.

    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. Obtenha o campo service_name da entrada desejada na etapa anterior.

  4. Crie um VPC endpoint usando o Amazon Web Services CLI create-vpc-endpoint comando. Você precisa de um nome de serviço de endpoint do App Services, VPC ID de , IDs de sub-rede e Amazon Web Services região de implantação . O comando deve ser semelhante a este:

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

Agora que você criou o ponto de conexão da interface em sua VPC, é necessário adicioná-lo ao seu aplicativo.

  1. Encontre o do endpoint da de sincronização na saída dos comandos da que você executou na etapa anterior ou na tela VPC de detalhes do endpoint do ID CLI Amazon Web Services VPC dashboard da do . Este valor começa com vpce-.

  2. Crie um endpoint privado de sincronização chamando Create a VPC Private Endpoint com seu ID de endpoint, região de implantação na nuvem e tipo de endpoint. Por exemplo, 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": "sync",
    "comment": "Optional: add a comment describing the endpoint."
    }'
  3. Você também deve criar um endpoint privado geral seguindo as etapas para criar um endpoint privado geral nesta página.

Por padrão, todos os endpoints privados lidam apenas com solicitações internas. Você pode optar por abrir o acesso de todas as solicitações fora da sua conexão do PrivateLink.

Importante

Essa configuração é global para todos os seus endpoints.

Você pode alternar essa configuração de três maneiras:

  • Na UI, na lista de endpoints na guia Private Endpoints , clique no botão Restrict Access .

  • Na interface do usuário, ao criar seu primeiro endpoint privado, você tem a opção de alternar essa configuração na etapa Modify Your VPC Private DNS .

  • Na API de administração, chame o método Alternar solicitações não VPC com um valor booleano (true para remover a restrição padrão ou false para restabelecê-la.)

Ao habilitar endpoints privados, você ainda pode habilitar o acesso ao seu aplicação App Services usando outros métodos, como adicionar IPs públicos a listas de acesso IP.

Os IPs privados não precisam ser adicionados às listas de acesso IP, pois as solicitações por meio de endpoints privados ignoram as listas de acesso IP.

Os Atlas Device SDKs podem acessar seus endpoints Gerais e de Sincronização. No entanto, eles devem usar uma versão que ofereça suporte ao novo domínio.

  • Você não pode usar Endpoints Privados com aplicativos implantados globalmente ou aplicativos locais implantados no Azure ou GCP.

  • Você não pode usar conexões públicas de internet para acessar seu aplicativo se tiver um endpoint privado habilitado. Todas as solicitações devem passar pelo Private Endpoint.

  • Se você alterar seu modelo de sistema, deverá criar novos endpoints privados para a nova região do aplicativo.

  • Não é possível usar endpoints privados e permitir conexões pelo protocolo de conexão do MongoDB simultaneamente. Se um estiver habilitado, você não poderá habilitar o outro.

  • Por padrão, os endpoints privados lidam apenas com solicitações originadas da sua VPC. Você pode configurar seu aplicativo para também aceitar solicitações da Internet pública. Para saber como, consulte Alterar restrições de acesso.

  • Todas as solicitações de saída , como um trigger do App Services que chama uma API externa, Go pela Internet pública.

Voltar

Gerenciar o acesso do desenvolvedor