O que são PrivateLinks?
O PrivateLinks é um serviço de rede que permite a conexão privada entre um serviço de nuvem e sua rede virtual. Essa conexão é feita sem expor seus dados à Internet pública, aumentando a segurança ao manter o tráfego de rede dentro da rede do provedor de nuvem. Ao utilizar o PrivateLinks, você pode garantir um acesso mais seguro e confiável aos recursos da nuvem, minimizando o risco de ameaças externas e reduzindo a latência ao manter o tráfego interno à rede do provedor de nuvem.
Os PrivateLinks facilitam a comunicação unidirecional, aumentando a segurança das conexões de rede ao garantir que o tráfego possa fluir apenas em uma única direção. Esse design ajuda a impedir o acesso não autorizado e a exfiltração de dados, solidificando ainda mais os benefícios de segurança do uso do PrivateLinks para redes em nuvem.
Observação: XDCR não é compatível com o Private Links no momento.
1. Faça login no console de gerenciamento do AWS
-
- Faça login em seu AWS Console de gerenciamento
- Você deverá acessar a página a seguir:

- Faça login em seu AWS Console de gerenciamento
2. Criar uma VPC no AWS
-
- Na barra de pesquisa, digite VPC:

- Você deverá acessar a página a seguir:

- Isso deve abrir o Painel de controle da VPC:
- Escolha sua região na barra preta do aplicativo. Neste exemplo, estamos usando: Leste dos EUA (N. Virgínia) - us-east-1

- Clique em Criar VPC. Isso abre uma página com suas configurações de VPC.
- Recursos para criar: Selecionar VPC e muito mais.

- Geração automática de crachás: Dê um nome à sua VPC.

Observação: Recomenda-se usar um nome significativo para que você possa identificar facilmente qual VPC é a sua mais tarde no laboratório. Neste exemplo, usamos links privados mas recomendamos o uso de um nome mais personalizado para seus testes. - Bloco CIDR IPV4: Aceitar padrão.

- Bloco CIDR IPV6: Nenhum.

- Aluguel: Padrão

- Número de AZs: 1

- Número de sub-redes públicas: 1

- Número de sub-redes privadas: 0

- Gateways NAT: 0

- Pontos de extremidade da VPC: Gateway S3

- Opções de DNS
- Recursos para criar: Selecionar VPC e muito mais.
- Verifique a visualização no lado direito da página. Quando estiver satisfeito, clique Criar VPC.

- Na barra de pesquisa, digite VPC:
3. Criar instância do AWS EC2
-
- Na barra de pesquisa, digite EC2.

- Você deve aterrissar no Painel de controle do EC2.

- Certifique-se de que que você está na região correta, como aquela em que criou sua VPC.

- Clique em Iniciar instância.

- Isso abrirá uma página com suas configurações do EC2.
- Nome: Escolha o nome (por exemplo. Testador de link privado). Da mesma forma que antes, escolha um nome mais significativo.

- Imagem do aplicativo e do sistema operacional: Amazon Linux

- Tipo de instância: t2.micro (gratuito)

- Login do par de chaves: clique em Crie um novo par de chaves.
- Configurações de rede
- Clique em Editar

- VPC: escolha a mesma VPC que você criou anteriormente. Você pode filtrar usando o nome da VPC ou a ID da VPC.

- Sub-redeEscolha a sub-rede que você criou anteriormente. Ela deve ser selecionada automaticamente, pois você criou apenas uma sub-rede para essa VPC.

- Atribuição automática de IP público: Ativar

- Grupo de segurança do firewall: Criar grupo de segurança deve ser selecionado

- Regras de grupo de segurança de entradaNo Tipo de fonte, selecione MEU IP. Isso adicionará automaticamente seu IP.

- Clique em Editar
- Configurar o armazenamento: padrão.

- Imagem do aplicativo e do sistema operacional: Amazon Linux
- Nome: Escolha o nome (por exemplo. Testador de link privado). Da mesma forma que antes, escolha um nome mais significativo.
- Verifique o resumo e clique em Iniciar instância.

- Após alguns segundos, você verá que a instância foi iniciada com sucesso. Observe o ID da instância do EC2. Neste exemplo: i-0d78dab1f00d85746. Clique no ID da instância do EC2.

- Na barra de pesquisa, digite EC2.
4. Instalar a ferramenta AWS CLI
-
- Para usar a ferramenta AWS CLI, siga as instruções abaixo A documentação.
- Você deve receber credenciais temporárias.
-
- Para configurar a ferramenta AWS CLI, basta copiar a Opção 1, Credenciais de curto prazo para definir as variáveis de ambiente do AWS e cole-o em seu terminal. (O exemplo abaixo é um exemplo - cole suas próprias credenciais).
|
1 2 3 |
$ export AWS_ACCESS_KEY_ID="XXXXXXXXXXXXXXXXXXXXX" $ export AWS_SECRET_ACCESS_KEY="XXXXXXXXXXXXXXXXXXXXXX" $ export AWS_SESSION_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX” |
5. Criar um banco de dados Capella
-
- Faça login na Capella com seu e-mail corporativo e credenciais.
- Em seu projeto, crie um banco de dados com a seguinte configuração:
-
- Quando o banco de dados estiver Saudável, implementar amostra de viagem balde:
B. Spágina 1
Nesta seção, você aprenderá a:
|
1. Ativar ponto de extremidade privado
-
- Em seu banco de dados Capella, abra o arquivo Configurações navegue até a página Ponto de extremidade privado e clique Ativar ponto de extremidade privado.

- Essa ação geralmente leva cerca de 10 minutos para ativar o Private Endpoint.

- Quando estiver pronto, você verá que o DNS do Private Endpoint está agora disponível na interface do usuário do Capella. Observe também que os pontos de extremidade privados são cobrados por hora para os pontos de extremidade privados do AWS para esse banco de dados até que você desative essa opção.

- Em seu banco de dados Capella, abra o arquivo Configurações navegue até a página Ponto de extremidade privado e clique Ativar ponto de extremidade privado.
2. Adicionar ponto de extremidade privado
3. Criar ponto de extremidade VPC no AWS a partir da CLI
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
(base) nishant.bhatia@macbook ~ % aws ec2 create-vpc-endpoint --vpc-id vpc-076a939ba49ce9ab6 --region us-east-1 --service-name com.amazonaws.vpce.us-east-1.vpce-svc-0b4d23fccabd9ea08 --vpc-endpoint-type Interface --subnet-ids subnet-08245a74b701954ca { "VpcEndpoint": { "VpcEndpointId": "<strong>vpce-01dfcbabe2bef175e</strong>", "VpcEndpointType": "Interface", "VpcId": "vpc-076a939ba49ce9ab6", "ServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-0b4d23fccabd9ea08", "State": "pendingAcceptance", "RouteTableIds": [], "SubnetIds": [ "subnet-08245a74b701954ca" ], "Groups": [ { "GroupId": "sg-0231c72bc71c7753c", "GroupName": "default" } ], "IpAddressType": "ipv4", "DnsOptions": { "DnsRecordIpType": "ipv4" }, "PrivateDnsEnabled": false, "RequesterManaged": false, "NetworkInterfaceIds": [ "eni-0cdc0c23ab3760c13" ], "DnsEntries": [ { "DnsName": "vpce-01dfcbabe1bef165e-vq1r3b0l.vpce-svc-0b5d22fccabd9ea08.us-east-1.vpce.amazonaws.com", "HostedZoneId": "Z7HUB22XULQXV" }, { "DnsName": "vpce-01dfcbabe1aef175e-vq1r3b0l-us-east-1a.vpce-svc-0b5d23fccaad9ea08.us-east-1.vpce.amazonaws.com", "HostedZoneId": "Z7HUB22UULQYV" } ], "CreationTimestamp": "2024-01-04T16:29:47.138Z", "OwnerId": "306776352488" } } |
4. Conexão completa
C. Estágio 2
Nesta seção, você aprenderá a:
|
1. Ativar o DNS privado no AWS
-
- Navegue até o Painel de controle da VPC, clique em Pontos finais no menu à esquerda e em seu nome de VPC. Você verá pelo menos dois pontos de extremidade:
- O ponto de extremidade S3 criado pelo AWS
- Um endpoint sem nome, criado pelo comando CLI

- Abra o Endpoint não nomeado (neste caso vpce-01dfcbabe1bef175e) e do Ações com a mesma ID que a fornecida na lista de Endpoints da Interface de Ponto de Extremidade Privado Capella. Selecione Modificar o nome DNS privado.

- Verificar Habilitar para esse ponto de extremidade e clique Salvar alterações.

- Navegue até o Painel de controle da VPC, clique em Pontos finais no menu à esquerda e em seu nome de VPC. Você verá pelo menos dois pontos de extremidade:
2. Editar regras de entrada para o ponto de extremidade privado no AWS
-
- Primeiro, vamos obter o bloco CIDR de sua VPC.
- Clique em Suas VPCs no painel do VPC
- Filtre pelo nome da VPC.

- No painel principal inferior, observe o IPV4 CIDR. Deveria ser 10.0.0.0/16

- Vamos agora obter o grupo de segurança do endpoint
- Clique em Pontos finais no painel do VPC
- Filtre pelo nome da VPC. Você verá pelo menos 2:
- Escolha o ponto de extremidade sem nome
- Na parte inferior do painel, navegue até a guia Security Groups (Grupos de segurança)

- Clique no botão ID do grupo Vincular e localizar Regra de entrada. Haverá uma regra de entrada que será escolhida por padrão. Clique em Editar regras de entrada.

- Clique em Adicionar regra
- Primeiro, vamos obter o bloco CIDR de sua VPC.
3. Editar a ACL de rede para o ponto de extremidade privado no AWS
D. Teste o endpoint privado com um aplicativo
Nesta seção, você aprenderá a:
|
1. Adicionar pré-requisitos do Capella Security
-
- Em seu banco de dados Capella, crie Credenciais de Banco de Dados. Exemplo: privatelinkcapella/Couchbase123$
- No Capella, copie o endpoint privado. Neste exemplo, ele é o3bak2eyqhmw2tq.pl.cloud.couchbase.com

- Na Capella Configurações de seu banco de dados, abra a página Certificado de segurança e faça o download do certificado.

- Você deve receber um privatelinkdev-root-certificate.txt ou similar, dependendo do nome do seu banco de dados.

2. Instale o Python em sua instância do AWS EC2
-
- Vamos agora fazer o SSH na instância do EC2.
- Vamos agora nos conectar à instância a partir do seu laptop.
- Clique em Cliente SSH Clique em Tab e siga as instruções para garantir que sua chave privada esteja acessível em seu terminal e não possa ser visualizada publicamente.
- Clique em Cliente SSH Clique em Tab e siga as instruções para garantir que sua chave privada esteja acessível em seu terminal e não possa ser visualizada publicamente.
|
1 |
chmod 400 NishantNVirginia.pem |
-
-
- Localizar o ssh Exemplo na parte inferior e execute-o em seu terminal.
-
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ ssh -i "NishantNVirginia.pem" ec2-user@ec2-18-212-116-71.compute-1.amazonaws.com nishant.bhatia@JGWXHT4VFM downloads % ssh -i "NishantNVirginia.pem" ec2-user@ec2-18-212-126-71.compute-1.amazonaws.com The authenticity of host 'ec2-18-212-126-71.compute-1.amazonaws.com (18.212.126.71)' can't be established. ED25519 key fingerprint is SHA256:RJorms+Tb2vpQxACTE7gcafmFpeP6xQSm3/Ny0WZYJg. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'ec2-18-212-116-71.compute-1.amazonaws.com' (ED25519) to the list of known hosts. , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \####| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' |
-
- Vamos agora instalar o Python SDK na instância. Observação: a instalação a seguir é composta de 3 comandos. Certifique-se de executar cada um desses comandos separadamente em seu terminal. Cada comando também solicitará interativamente a confirmação da instalação do pacote.
|
1 2 3 4 5 |
sudo yum update sudo yum install gcc gcc-c++ git python3-devel python3-pip openssl-devel sudo yum install openssl-devel sudo yum install openssl python3 -m pip install couchbase |
-
- Para a biblioteca, você também pode executar o seguinte comando.
|
1 2 3 |
sudo yum install openssl11 #it’s okay if this does not execute as the lib are added in openssl-devel |
3. Teste um aplicativo python conectado ao Capella Private Endpoint
-
- Saia do ssh para voltar ao seu laptop local ou abra uma nova janela do shell
|
1 |
exit |
-
- Renomeie o certificado .txt da Capella Security que você baixou anteriormente como privatelink-cert.pem. Substitua o nome do certificado raiz pelo seu próprio.
-
-
1mv Downloads/privatelinkdev-root-certificate.txt privatelink-cert.pem
- Vamos copiar privatelink-cert.pem em sua instância do EC2. No comando abaixo:
- Substitua o nome do certificado pelo seu próprio nome.
- Substitua o arquivo de par de chaves pelo arquivo que você usou para criar sua VPC.
- Substitua o nome ec2 pelo seu próprio nome (reutilize o mesmo que o fornecido no exemplo do cliente SSH).
- Execute o comando.
Observe que o comando scp a seguir é um comando único comando.
-
|
1 2 3 |
cd downloads chmod 400 "NishantNVirginia.pem" scp -i "NishantNVirginia.pem" privatelink-cert.pem ec2-user@ec2-18-212-126-71.compute-1.amazonaws.com:/home/ec2-user |
-
- Copie o seguinte código python simples em seu IDE preferido.
- Substitua o endpoint privado por aquele que você criou anteriormente
- Substitua as credenciais pelas credenciais do banco de dados Capella que você criou anteriormente
- Substitua o privatelink-cert.pem pelo nome do seu certificado.
- Salve o arquivo como example.py.
- Copie o seguinte código python simples em seu IDE preferido.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import sys from couchbase.cluster import Cluster from couchbase.options import ClusterOptions from couchbase.auth import PasswordAuthenticator cluster = Cluster('couchbases://o3zak2eyqhmw2tq.pl.cloud.couchbase.com', ClusterOptions(PasswordAuthenticator("privatelinkcapella","Couchbase123$",cert_path="/home/ec2-user/privatelink-cert.pem"))) bucket = cluster.bucket('travel-sample') collection = bucket.scope('inventory').collection('airline') try: result = collection.get('airline_10') print(result.content_as[dict]) except: print("exception:", sys.exc_info()[0]) |
-
- Copiar o example.py em sua instância ec2. Da mesma forma que anteriormente, substitua o certificado pelo seu próprio, bem como o nome ec2 pelo seu próprio.
|
1 |
scp -i "NishantNVirginia.pem" example.py ec2-user@ec2-18-212-126-71.compute-1.amazonaws.com:/home/ec2-user |
-
- Faça o SSH em sua instância do EC2 novamente.
-
1ssh -i "NishantNVirginia.pem" ec2-user@ec2-18-212-126-71.compute-1.amazonaws.com
- Verifique se o arquivo acme-cert.pem e o arquivo example.py estão lá.
|
1 2 |
[ec2-user@ip-10-0-12-174 ~]$ ls example.py privatelink-cert.pem |
-
- Execute seu script Python. Você deverá obter o documento JSON companhia aérea_10.
|
1 2 3 |
[ec2-user@ip-10-0-12-174 ~]$ python3 example.py {'id': 10, 'type': 'airline', 'name': '40-Mile Air', 'iata': 'Q5', 'icao': 'MLA', 'callsign': 'MILE-AIR', 'country': 'United States'} |
4. Teste os comandos curl que se conectam ao Capella Private Endpoint
-
- Ainda na instância do EC2, tente fazer uma consulta SQL++ usando as APIs REST do servidor. Substitua o endpoint privado pelo seu.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[ec2-user@ip-10-0-12-173 ~]$ curl -u privatelinkcapella:Couchbase123$ --data-urlencode "statement=select * from `travel-sample`.inventory.airline limit 1;" https://o3zak3eyqhmw2tq.pl.cloud.couchbase.com:18093/query/service --insecure { "requestID": "9c201945-9252-4a14-806a-6ed948faa3e4", "signature": {"*":"*"}, "results": [ {"airline":{"id":10,"type":"airline","name":"40-Mile Air","iata":"Q5","icao":"MLA","callsign":"MILE-AIR","country":"United States"}} ], "status": "success", "metrics": {"elapsedTime": "7.410508ms","executionTime": "7.367052ms","resultCount": 1,"resultSize": 132,"serviceLoad": 6,"usedMemory": 127}, "profile": {"phaseTimes": {"authorize":"1.134491ms","fetch":"1.662602ms","instantiate":"758.586µs","parse":"321.378µs","plan":"147.303µs","primaryScan":"3.249994ms","project":"2.5µs","run":"6.129593ms","stream":"6.55µs"},"phaseCounts": {"fetch":1,"primaryScan":1},"phaseOperators": {"authorize":1,"fetch":1,"primaryScan":1,"project":1,"stream":1},"requestTime": "2024-01-04T17:48:45.956Z","servicingHost": "svc-dqis-node-002.o3zak2eyqhmw2tq.cloud.couchbase.com:8091","executionTimings": {"#operator":"Authorize","#stats":{"#phaseSwitches":4,"execTime":"3.122µs","servTime":"1.131369ms"},"privileges":{"List":[{"Target":"default:travel-sample.inventory.airline","Priv":7,"Props":0}]},"~child":{"#operator":"Sequence","#stats":{"#phaseSwitches":1,"execTime":"8.805µs"},"~children":[{"#operator":"PrimaryScan3","#stats":{"#itemsOut":1,"#phaseSwitches":7,"execTime":"16.575µs","kernTime":"3.142µs","servTime":"3.233419ms"},"bucket":"travel-sample","index":"def_inventory_airline_primary","index_projection":{"primary_key":true},"keyspace":"airline","limit":"1","namespace":"default","scope":"inventory","using":"gsi"},{"#operator":"Fetch","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":10,"execTime":"17.868µs","kernTime":"3.264724ms","servTime":"1.644734ms","usedMemory":127},"bucket":"travel-sample","keyspace":"airline","namespace":"default","scope":"inventory"},{"#operator":"InitialProject","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":8,"execTime":"132.805µs","kernTime":"4.943451ms","state":"running"},"discard_original":true,"result_terms":[{"expr":"self","star":true}]},{"#operator":"Limit","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":4,"execTime":"2.823µs","kernTime":"1.265µs","usedMemory":127},"expr":"1"},{"#operator":"Stream","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":6,"execTime":"6.55µs","kernTime":"4.956921ms"}}]},"~versions":["7.2.3-N1QL","7.2.3-6705-enterprise"]}}, "controls": {"scan_consistency": "unbounded","use_cbo": "true","n1ql_feat_ctrl": "76","stmtType": "SELECT"} } |
-
- Ainda na instância do EC2, tente um Consulta de análise usando as APIs REST do servidor.
|
Agora você estabeleceu uma conexão privada entre seu AWS VPC e o Couchbase Capella usando um link privado!
Conclusão
A implementação do AWS Private Link para o Couchbase Capella é fundamental para aumentar a segurança e a confiabilidade da sua comunicação de dados. Ao estabelecer uma conexão privada entre seu VPC e o Couchbase Capella, você isola efetivamente o tráfego da Internet pública, reduzindo o risco de exposição a possíveis ameaças. Essa abordagem garante que os dados permaneçam dentro dos limites de sua rede segura, utilizando a infraestrutura robusta do AWS para manter a baixa latência e a alta taxa de transferência. O AWS Private Link fornece apenas comunicação unidirecional, garantindo que os dados fluam com segurança de seus recursos para o Couchbase Capella sem nenhum caminho reverso. Isso torna o AWS Private Link uma solução altamente segura e eficiente para conectividade de banco de dados de nível empresarial.




























