Configurar certificados SSL/TLS para conexões do Aurora DSQL - Amazon Aurora DSQL

Configurar certificados SSL/TLS para conexões do Aurora DSQL

O Aurora DSQL requer que todas as conexões usem a criptografia Transport Layer Security (TLS). Para estabelecer conexões seguras, seu sistema cliente deve confiar na Amazon Root Certificate Authority (Amazon Root CA 1). Esse certificado vem pré-instalado em vários sistemas operacionais. Esta seção oferece instruções para verificar o certificado da Amazon Root CA 1 pré-instalado em vários sistemas operacionais e orienta você pelo processo de instalação manual do certificado, caso ele ainda não esteja instalado.

Recomendamos usar o PostgreSQL versão 17.

Importante

Para ambientes de produção, recomendamos usar o modo SSL verify-full para garantir o mais alto nível de segurança de conexão. Esse modo verifica se o certificado do servidor está assinado por uma autoridade de certificação confiável e se o nome do host do servidor corresponde ao certificado.

Verificar certificados pré-instalados

Na maioria dos sistemas operacionais, o Amazon Root CA 1 já vem pré-instalado. Para confirmar, você pode seguir as etapas abaixo.

Linux (RedHat/CentOS/Fedora)

Execute os seguintes comandos no terminal:

trust list | grep "Amazon Root CA 1"

Se o certificado estiver instalado, você verá a seguinte saída:

label: Amazon Root CA 1

macOS

  1. Abra o campo de pesquisa do Spotlight (comando + espaço).

  2. Pesquise Keychain Access.

  3. Selecione System Roots em System Keychains.

  4. Pesquise Amazon Root CA 1 na lista de certificados.

Windows

nota

Devido a um problema conhecido com o cliente psql do Windows, o uso de certificados raiz do sistema (sslrootcert=system) pode retornar o seguinte erro: SSL error: unregistered scheme. Você pode seguir a seção Conectar-se pelo Windows como alternativa para se conectar ao seu cluster usando SSL.

Se o Amazon Root CA 1 não estiver instalado em seu sistema operacional, siga as etapas abaixo.

Instalar certificados

Se o certificado Amazon Root CA 1 não estiver pré-instalado em seu sistema operacional, você precisará instalá-lo manualmente para estabelecer conexões seguras com seu cluster do Aurora DSQL.

Instalação do certificado no Linux

Siga estas etapas para instalar o certificado Amazon Root CA em sistemas Linux.

  1. Baixe o certificado raiz:

    wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
  2. Copie o certificado para um armazenamento confiável.

    sudo cp ./AmazonRootCA1.pem /etc/pki/ca-trust/source/anchors/
  3. Atualize o armazenamento confiável da CA:

    sudo update-ca-trust
  4. Verifique a instalação:

    trust list | grep "Amazon Root CA 1"

Instalação do certificado no macOS

Estas etapas de instalação do certificado são opcionais. A Instalação do certificado no Linux também funciona para macOS.

  1. Baixe o certificado raiz:

    wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
  2. Adicione o certificado a System keychain:

    sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain AmazonRootCA1.pem
  3. Verifique a instalação:

    security find-certificate -a -c "Amazon Root CA 1" -p /Library/Keychains/System.keychain

Conectar-se com verificação SSL/TLS

Antes de configurar certificados SSL/TLS para conexões seguras com o cluster do Aurora DSQL, verifique se você atende aos pré-requisitos abaixo.

  • PostgreSQL versão 17 instalado

  • AWS CLI configurada com as credenciais apropriadas

  • Informações do endpoint do cluster do Aurora DSQL

Conectar-se pelo Linux

  1. Gere e defina o token de autenticação:

    export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --hostname your-cluster-endpoint)
  2. Conecte-se usando certificados do sistema (se pré-instalados):

    PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
  3. Ou conecte-se usando um certificado baixado:

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
nota

Para ter mais informações sobre as configurações do PGSSLMODE, consulte sslmode na documentação Database Connection Control Functions do PostgreSQL 17.

Conectar-se pelo macOS

  1. Gere e defina o token de autenticação:

    export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --hostname your-cluster-endpoint)
  2. Conecte-se usando certificados do sistema (se pré-instalados):

    PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
  3. Ou baixe o certificado raiz e salve-o como root.pem (se ele não estiver pré-instalado).

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint
  4. Conectar-se usando o psql:

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint

Conectar-se pelo Windows

Por meio do prompt de comando

  1. Gere um token de autenticação:

    aws dsql generate-db-connect-admin-auth-token ^ --region=your-cluster-region ^ --expires-in=3600 ^ --hostname=your-cluster-endpoint
  2. Defina a variável de ambiente de senha:

    set "PGPASSWORD=token-from-above"
  3. Defina a configuração do SSL:

    set PGSSLROOTCERT=C:\full\path\to\root.pem set PGSSLMODE=verify-full
  4. Conecte-se ao banco de dados:

    "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ^ --username admin ^ --host your-cluster-endpoint

Usando o PowerShell

  1. Gere e defina o token de autenticação:

    $env:PGPASSWORD = (aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --expires-in=3600 --hostname=your-cluster-endpoint)
  2. Defina a configuração do SSL:

    $env:PGSSLROOTCERT='C:\full\path\to\root.pem' $env:PGSSLMODE='verify-full'
  3. Conecte-se ao banco de dados:

    "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ` --username admin ` --host your-cluster-endpoint

Recursos adicionais