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 |
$ exportação AWS_ACCESS_KEY_ID="XXXXXXXXXXXXXXXXXXXXXXXXXXX" $ exportação AWS_SECRET_ACCESS_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXX" $ exportação AWS_SESSION_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" |
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 criar-vpc-ponto final --vpc-id vpc-076a939ba49ce9ab6 --região nós-leste-1 --serviço-nome com.amazonaws.vpce.nós-leste-1.vpce-serviço-0b4d23fccabd9ea08 --vpc-ponto final-tipo Interface --sub-rede-IDs sub-rede-08245a74b701954ca { "VpcEndpoint": { "VpcEndpointId": "<strong>vpce-01dfcbabe2bef175e<\/strong>", "VpcEndpointType": "Interface", "VpcId": "vpc-076a939ba49ce9ab6", "ServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-0b4d23fccabd9ea08", "Estado": "pendingAcceptance", "RouteTableIds": [], "SubnetIds": [ "subnet-08245a74b701954ca" ], "Grupos": [ { "GroupId": "sg-0231c72bc71c7753c", "GroupName": "default" } ], "IpAddressType": "ipv4", "DnsOptions": { "DnsRecordIpType": "ipv4" }, "PrivateDnsEnabled": falso, "RequesterManaged": falso, "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 NishantNVirgínia.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-usuário@ec2-18-212-116-71.computar-1.amazonaws.com nishant.bhatia@JGWXHT4VFM downloads % ssh -i "NishantNVirginia.pem" ec2-usuário@ec2-18-212-126-71.computar-1.amazonaws.com O autenticidade de hospedeiro 'ec2-18-212-126-71.compute-1.amazonaws.com (18.212.126.71)' pode't ser estabelecido. A impressão digital da chave ED25519 é SHA256:RJorms+Tb2vpQxACTE7gcafmFpeP6xQSm3/Ny0WZYJg. Essa chave não é conhecida por nenhum outro nome Tem certeza de que deseja continuar a conexão (sim/não/[impressão digital])? sim Aviso: Adicionado permanentemente 'ec2-18-212-116-71.computar-1.amazonaws.com' (ED25519) à lista de hosts conhecidos. , #_ ~\_ #####_ 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 atualização sudo yum instalar gcc gcc-c++ git python3-desenvolvimento python3-tubulação openssl-desenvolvimento sudo yum instalar openssl-desenvolvimento sudo yum instalar openssl python3 -m tubulação instalar couchbase |
-
- Para a biblioteca, você também pode executar o seguinte comando.
1 2 3 |
sudo yum instalar openssl11 1TP5Não há problema se isso não for executado, pois a biblioteca é adicionada no 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 |
saída |
-
- 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/desenvolvimento privado-raiz-certificado.txt link privado-certificado.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" link privado-certificado.pem ec2-usuário@ec2-18-212-126-71.computar-1.amazonaws.com:/casa/ec2-usuário |
-
- 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 |
importação sistema de couchbase.agrupamento importação Aglomerado de couchbase.opções importação ClusterOptions de couchbase.autenticação importação PasswordAuthenticator agrupamento = Aglomerado('couchbases://o3zak2eyqhmw2tq.pl.cloud.couchbase.com', ClusterOptions(PasswordAuthenticator("privatelinkcapella","Couchbase123$",cert_path="/home/ec2-user/privatelink-cert.pem"))) balde = agrupamento.balde('amostra de viagem') coleção = balde.escopo('inventário').coleção("companhia aérea) tentar: resultado = coleção.obter('airline_10') impressão(resultado.content_as[ditado]) exceto: impressão("exception:", sistema.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" exemplo.py ec2-usuário@ec2-18-212-126-71.computar-1.amazonaws.com:/casa/ec2-usuário |
-
- Faça o SSH em sua instância do EC2 novamente.
-
1ssh -i "NishantNVirginia.pem" ec2-usuário@ec2-18-212-126-71.computar-1.amazonaws.com
- Verifique se o arquivo acme-cert.pem e o arquivo example.py estão lá.
1 2 |
[ec2-usuário@ip-10-0-12-174 ~]$ ls exemplo.py link privado-certificado.pem |
-
- Execute seu script Python. Você deverá obter o documento JSON companhia aérea_10.
1 2 3 |
[ec2-usuário@ip-10-0-12-174 ~]$ python3 exemplo.py {'id': 10, 'tipo': "companhia aérea, "nome: '40-Mile Air' (40 milhas aéreas), 'iata': 'Q5', 'icao': 'MLA', 'indicativo': "MILE-AIR, "país: "Estados Unidos} |
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-usuário@ip-10-0-12-173 ~]$ enrolar -u capela de conexão privada:Couchbase123$ --dados-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", "assinatura": {"*":"*"}, "resultados": [ {"companhia aérea":{"id":10,"tipo":"companhia aérea","name" (nome):"40 milhas aéreas","iata":"Q5","icao":"MLA","indicativo":"MILE-AIR","país":"Estados Unidos"}} ], "status": "sucesso", "métricas": {"elapsedTime" (tempo decorrido): "7.410508ms","executionTime": "7.367052ms","resultCount": 1,"resultSize": 132,"serviceLoad": 6,"usedMemory": 127}, "profile" (perfil): {"phaseTimes": {"autorizar":"1.134491ms","fetch" (buscar):"1.662602ms","instanciar":"758.586µs","parse" (analisar):"321.378µs","plano":"147.303µs","primaryScan":"3.249994ms","projeto":"2.5µs","executar":"6.129593ms","stream" (fluxo):"6.55µs"},"phaseCounts": {"fetch" (buscar):1,"primaryScan":1},"phaseOperators": {"autorizar":1,"fetch" (buscar):1,"primaryScan":1,"projeto":1,"stream" (fluxo):1},"requestTime": "2024-01-04T17:48:45.956Z","servicingHost": "svc-dqis-node-002.o3zak2eyqhmw2tq.cloud.couchbase.com:8091","executionTimings": {"#operator":"Authorize" (Autorizar),"#stats":{"#phaseSwitches":4,"execTime":"3.122µs","servTime":"1.131369ms"},"privilégios":{"Lista":[{"Alvo":"default:travel-sample.inventory.airline","Priv":7,"Adereços":0}]},"~child":{"#operator":"Sequência","#stats":{"#phaseSwitches":1,"execTime":"8.805µs"},"~crianças":[{"#operator":"PrimaryScan3","#stats":{"#itemsOut":1,"#phaseSwitches":7,"execTime":"16,575µs","kernTime":"3.142µs","servTime":"3.233419ms"},"bucket" (balde):"amostra de viagem","índice":"def_inventory_airline_primary","index_projection":{"primary_key":verdadeiro},"espaço-chave":"companhia aérea","limite":"1","namespace":"default","escopo":"inventário","usando":"gsi"},{"#operator":"Buscar","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":10,"execTime":"17.868µs","kernTime":"3.264724ms","servTime":"1.644734ms","usedMemory":127},"bucket" (balde):"amostra de viagem","espaço-chave":"companhia aérea","namespace":"default","escopo":"inventário"},{"#operator":"InitialProject" (Projeto inicial),"#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":8,"execTime":"132,805µs","kernTime":"4.943451ms","estado":"em execução"},"discard_original":verdadeiro,"result_terms":[{"expr":"self","estrela":verdadeiro}]},{"#operator":"Limite","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":4,"execTime":"2.823µs","kernTime":"1.265µs","usedMemory":127},"expr":"1"},{"#operator":"Fluxo","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":6,"execTime":"6.55µs","kernTime":"4.956921ms"}}]},"~versões":["7.2.3-N1QL","7.2.3-6705-enterprise"]}}, "controles": {"scan_consistency": "unbounded" (ilimitado),"use_cbo": "true" (verdadeiro),"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.