Gerenciar e conectar-se com clusters do Amazon Aurora DSQL usando o AWS PrivateLink
Com o AWS PrivateLink para Amazon Aurora DSQL, é possível provisionar endpoints da Amazon VPC de interface (endpoints de interface) em sua Amazon Virtual Private Cloud. Esses endpoints podem ser acessados diretamente por meio da Amazon VPC e do AWS Direct Connect pelas aplicações que estão no ambiente on-premises ou por emparelhamento da Amazon VPC pelas aplicações que estão em uma Região da AWS diferente. Usando endpoints de interface e o AWS PrivateLink, é possível simplificar a conectividade de rede privada das aplicações com o Aurora DSQL.
As aplicações dentro da Amazon VPC podem acessar o Aurora DSQL usando endpoints de interface da Amazon VPC sem exigir endereços IP públicos.
Os endpoints de interface são representados por uma ou mais interfaces de rede elástica (ENIs) que recebem endereços IP privados de sub-redes na Amazon VPC. As solicitações ao Aurora DSQL por meio de endpoints de interface permanecem na AWS. Para ter mais informações sobre como conectar a Amazon VPC à rede on-premises, consulte o Guia do usuário do AWS Direct Connect e o Guia do usuário do AWS Site-to-Site VPN.
Para ter mais informações sobre como criar endpoints de interface, consulte Access an AWS service using an interface Amazon VPC endpoint no Guia do usuário do AWS PrivateLink.
Tipos de endpoint da Amazon VPC para o Aurora DSQL
O Aurora DSQL exige dois tipos diferentes de endpoint do AWS PrivateLink.
-
Endpoint de gerenciamento: esse endpoint é usado para operações administrativas, como
get
,create
,update
,delete
elist
, em clusters do Aurora DSQL. Consulte Gerenciar clusters do Aurora DSQL usando o AWS PrivateLink. -
Endpoint de conexão: esse endpoint é usado para estabelecer conexão com clusters do Aurora DSQL por meio de clientes PostgreSQL. Consulte Conectar-se com clusters do Aurora DSQL usando o AWS PrivateLink.
Considerações ao usar o AWS PrivateLink para o Aurora DSQL
As considerações sobre a Amazon VPC se aplicam ao AWS PrivateLink para o Aurora DSQL. Para ter mais informações, consulte Access an AWS service using an interface VPC endpoint e AWS PrivateLink quotas no “Guia do AWS PrivateLink”.
Gerenciar clusters do Aurora DSQL usando o AWS PrivateLink
Você pode usar a AWS Command Line Interface ou os kits de desenvolvimento de software (SDKs) da AWS para gerenciar clusters do Aurora DSQL por meio de endpoints de interface do Aurora DSQL.
Criar um Amazon VPC endpoint
Para criar um endpoint de interface da Amazon VPC, consulte Create an Amazon VPC endpoint no “Guia do AWS PrivateLink”.
aws ec2 create-vpc-endpoint \ --region
region
\ --service-name com.amazonaws.region
.dsql \ --vpc-idyour-vpc-id
\ --subnet-idsyour-subnet-id
\ --vpc-endpoint-type Interface \ --security-group-idsclient-sg-id
\
Para usar o nome de DNS regional padrão para solicitações de API do Aurora DSQL, não desabilite o DNS privado ao criar o endpoint de interface do Aurora DSQL. Quando o DNS privado estiver habilitado, as solicitações ao serviço Aurora DSQL dentro da Amazon VPC serão automaticamente resolvidas para o endereço IP privado do endpoint da Amazon VPC, em vez do nome de DNS público. Quando o DNS privado estiver habilitado, as solicitações do Aurora DSQL feitas na Amazon VPC serão automaticamente resolvidas para seu endpoint da Amazon VPC.
Se o DNS privado não estiver habilitado, use os parâmetros --region
e --endpoint-url
com comandos da AWS CLI para gerenciar clusters do Aurora DSQL por meio dos endpoints de interface do Aurora DSQL.
Listar clusters usando um URL de endpoint
No exemplo a seguir, substitua a Região da AWS us-east-1
e o nome de DNS do ID vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com
do endpoint da VPC por suas próprias informações.
aws dsql --region
us-east-1
--endpoint-url https://vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com
list-clusters
Operações de API
Consulte a Referência de API do Aurora DSQL para ver a documentação sobre gerenciamento de recursos no Aurora DSQL.
Gerenciar políticas de endpoint
Ao testar e configurar minuciosamente as políticas de endpoint da Amazon VPC, você pode ajudar a garantir que o cluster do Aurora DSQL seja seguro, compatível e alinhado com os requisitos específicos de controle de acesso e governança da sua organização.
Exemplo: política de acesso completo ao Aurora DSQL
A política a seguir concede acesso completo a todas as ações e recursos do Aurora DSQL por meio do endpoint especificado da Amazon VPC.
aws ec2 modify-vpc-endpoint \ --vpc-endpoint-id vpce-xxxxxxxxxxxxxxxxx \ --region region \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "dsql:*", "Resource": "*" } ] }'
Exemplo: política de acesso restrito ao Aurora DSQL
A política a seguir só permite estas ações do Aurora DSQL.
-
CreateCluster
-
GetCluster
-
ListClusters
Todas as outras ações do Aurora DSQL são negadas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "dsql:CreateCluster", "dsql:GetCluster", "dsql:ListClusters" ], "Resource": "*" } ] }
Conectar-se com clusters do Aurora DSQL usando o AWS PrivateLink
Depois que o endpoint do AWS PrivateLink estiver configurado e ativo, você poderá se conectar ao cluster do Aurora DSQL usando um cliente PostgreSQL. As instruções de conexão abaixo descrevem as etapas para criar o nome de host adequado para conexão por meio do endpoint do AWS PrivateLink.
Configurar um endpoint de conexão do AWS PrivateLink
Etapa 1: obter o nome do serviço para o cluster
Ao criar um endpoint do AWS PrivateLink para se conectar ao cluster, primeiro é necessário buscar o nome do serviço específico do cluster.
Etapa 2: criar o endpoint da Amazon VPC
Usando o nome do serviço obtido na etapa anterior, crie um endpoint da Amazon VPC.
Importante
As instruções de conexão abaixo só funcionam para conexão com clusters quando o DNS privado está habilitado. Não use o sinalizador --no-private-dns-enabled
ao criar o endpoint, pois isso impedirá que as instruções de conexão abaixo funcionem corretamente. Se você desabilitar o DNS privado, precisará criar seu próprio registro de DNS privado curinga que aponte para o endpoint criado.
Conectar-se a um cluster do Aurora DSQL usando um endpoint de conexão do AWS PrivateLink
Depois que o endpoint do AWS PrivateLink estiver configurado e ativo (verifique se State
está available
), você pode se conectar ao cluster do Aurora DSQL usando um cliente PostgreSQL. Para ter instruções sobre como usar os SDKs da AWS, siga os guias em Programming with Aurora DSQL. Você deve alterar o endpoint do cluster para que corresponda ao formato do nome do host.
Criar o nome do host
O nome do host para conexão por meio do AWS PrivateLink é diferente do nome do host de DNS público. Você precisa criá-lo usando os componentes a seguir.
-
Your-cluster-id
-
O identificador do serviço do nome do serviço. Por exemplo:
dsql-fnh4
-
A Região da AWS
Use o seguinte formato:
.cluster-id
.service-identifier
.region
.on.aws
Exemplo: conectar-se usando o PostgreSQL
# Set environment variables export CLUSTERID=
your-cluster-id
export REGION=us-east-1 export SERVICE_IDENTIFIER=dsql-fnh4 # This should match the identifier in your service name # Construct the hostname export HOSTNAME="$CLUSTERID.$SERVICE_IDENTIFIER.$REGION.on.aws" # Generate authentication token export PGPASSWORD=$(aws dsql --region $REGION generate-db-connect-admin-auth-token --hostname $HOSTNAME) # Connect using psql psql -d postgres -h $HOSTNAME -U admin
Solução de problemas com o AWS PrivateLink
Problemas e soluções comuns
A tabela a seguir lista problemas e soluções comuns relacionados ao AWS PrivateLink com o Aurora DSQL.
Problema | Possível causa | Solução |
---|---|---|
Tempo limite da conexão |
Grupo de segurança não configurado corretamente |
Use o Amazon VPC Reachability Analyzer para garantir que sua configuração de rede permita tráfego na porta 5432. |
Falha na resolução de DNS |
DNS privado não habilitado |
Verifique se o endpoint da Amazon VPC foi criado com o DNS privado habilitado. |
Falha na autenticação |
Credenciais incorretas ou token expirado |
Gere um novo token de autenticação e verifique o nome de usuário. |
Nome do serviço não encontrado |
ID do cluster incorreto |
Verifique novamente o ID do cluster e a Região da AWS ao buscar o nome do serviço. |
Recursos relacionados
Para obter mais informações, consulte os seguintes recursos: