Usar um endpoint privado VPC (prévia)
Nesta página
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.
Antes de começar
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.
Adicionar um endpoint privado
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.
Adicionar um endpoint geral
Criar um endpoint de interface VPC
Na interface do usuário do App Services, navegue até App Settings e clique na guia Private Endpoints .
Clique em Add Private Endpoint e, em seguida, clique em General.
Adicione sua ID de VPC e ID de sub-rede (lista separada por vírgulas) em seus campos separados e clique em Next.
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> Em seu terminal, execute o comando do gerado Amazon Web Services CLI para criar um VPC endpoint .
Adicione o endpoint privado ao seu aplicativo
Agora que você criou o ponto de conexão da interface em sua VPC, é necessário adicioná-lo ao seu aplicativo.
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-
.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.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.
Clique em Finish Endpoint Creation.
Criar um endpoint de interface VPC
Ligue para o endpoint List VPC Private Endpoint Services .
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" }, ... ] Obtenha o campo
service_name
da entrada desejada na etapa anterior.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>
Adicione o endpoint privado ao seu aplicativo
Agora que você criou o ponto de conexão da interface em sua VPC, é necessário adicioná-lo ao seu aplicativo.
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-
.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." }'
Adicionar um endpoint de sincronização
Cada endpoint de sincronização deve ser emparelhado com um endpoint geral.
Criar um endpoint de interface VPC
Na interface do usuário do App Services, navegue até App Settings e clique na guia Private Endpoints .
Clique em Add Private Endpoint e, em seguida, clique em Sync.
Adicione sua ID de VPC e ID de sub-rede (lista separada por vírgulas) em seus campos separados e clique em Next.
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> Em seu terminal, execute o comando do gerado Amazon Web Services CLI para criar um VPC endpoint .
Você também deve criar um endpoint geral usando o comando que o App Services gera.
Adicione os endpoints privados à sua aplicação
Agora que você criou os pontos de conexão da interface na VPC, é necessário adicioná-los ao aplicativo.
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-
.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.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.
Você também deve criar um endpoint privado geral seguindo as etapas para criar um endpoint privado geral nesta página.
Clique em Finish Endpoint Creation.
Criar um endpoint de interface VPC
Ligue para o endpoint List VPC Private Endpoint Services .
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" }, ... ] Obtenha o campo
service_name
da entrada desejada na etapa anterior.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>
Adicione o endpoint privado ao seu aplicativo
Agora que você criou o ponto de conexão da interface em sua VPC, é necessário adicioná-lo ao seu aplicativo.
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-
.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." }' Você também deve criar um endpoint privado geral seguindo as etapas para criar um endpoint privado geral nesta página.
Alterar restrições de acesso
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 oufalse
para restabelecê-la.)
Os endpoints privados ignoram as listas de acesso IP
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.
Versões do SDK suportadas
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.
Limitações de endpoints privados
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.