

# Proteção de dados no Amazon Aurora DSQL
<a name="data-protection"></a>

O [Modelo de Responsabilidade Compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) aplica a proteção de dados no Amazon Aurora DSQL. Conforme descrito nesse modelo, a AWS é responsável por proteger a infraestrutura global que executa toda a Nuvem AWS. Você é responsável por manter o controle sobre o conteúdo hospedado nessa infraestrutura. Você também é responsável pelas tarefas de configuração e gerenciamento de segurança dos que usa. Para saber mais sobre a privacidade de dados, consulte as [Data Privacy FAQ](https://aws.amazon.com/compliance/data-privacy-faq/). Para obter mais informações sobre a proteção de dados na Europa, consulte o artigo do blog [ Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) no *Blog de segurança da *.

Para fins de proteção de dados, é recomendável que você proteja as credenciais e configure usuários individuais com o Centro de Identidade do AWS IAM ou o AWS Identity and Access Management. Dessa maneira, cada usuário receberá apenas as permissões necessárias para cumprir suas obrigações de trabalho. Recomendamos também que você proteja seus dados das seguintes formas:
+ Use uma autenticação multifator (MFA) com cada conta.
+ Use SSL/TLS para se comunicar com os recursos da . Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Configure os logs de API e atividade do usuário com AWS CloudTrail. Para ter informações sobre como usar trilhas para capturar atividades, consulte [Working with trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) no *Guia do usuário do AWS CloudTrail*.
+ Use as soluções de criptografia, bem como todos os controles de segurança padrão nos Serviços da AWS.
+ Use serviços gerenciados de segurança avançada, como o Amazon Macie, que ajuda a localizar e proteger dados sensíveis armazenados no Amazon S3.

É altamente recomendável que nunca sejam colocadas informações confidenciais ou sensíveis, como endereços de e-mail de clientes, em tags ou campos de formato livre, como um campo **Nome**. Isso inclui trabalhar com ou outros serviços usando o console, a API, a AWS CLI ou os SDKs da AWS. Quaisquer dados inseridos em tags ou em campos de texto de formato livre usados para nomes podem ser usados para logs de faturamento ou de diagnóstico. Se você fornecer um URL para um servidor externo, é fortemente recomendável que não sejam incluídas informações de credenciais no URL para validar a solicitação nesse servidor.



## Criptografia de dados
<a name="data-encryption"></a>

O Amazon Aurora DSQL oferece uma infraestrutura de armazenamento resiliente projetada para armazenamento de dados essenciais e primários. Os dados são armazenados de maneira redundante em vários dispositivos de diversas instalações em uma região do Aurora DSQL.

### Criptografia em trânsito
<a name="encryption-transit"></a>

Por padrão, a criptografia em trânsito é configurada para você. O Aurora DSQL usa TLS para criptografar todo tráfego entre o cliente SQL e o Aurora DSQL.

Criptografia e assinatura de dados em trânsito entre os clientes da AWS CLI, do SDK ou da API e os endpoints do Aurora DSQL:
+ O Aurora DSQL fornece endpoints HTTPS para criptografar dados em trânsito. 
+ Para proteger a integridade das solicitações de API para o Aurora DSQL, as chamadas de API devem ser assinadas pelo autor da chamada. As chamadas são assinadas por um certificado X.509 ou pela chave de acesso secreta AWS de acordo com o Processo de assinatura do Signature versão 4 (Sigv4). Para obter mais informações, consulte [Processo de assinatura do Signature versão 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) na *Referência geral da AWS.*
+  Use a AWS CLI ou um dos AWS SDKs para fazer solicitações à AWS. Essas ferramentas autenticam automaticamente as solicitações para você com a chave de acesso especificada na configuração das ferramentas. 

#### Conformidade com os FIPS
<a name="fips-compliance"></a>

Os endpoints de plano de dados do Aurora DSQL (endpoints de cluster usados para conexões de banco de dados) usam módulos criptográficos validados pelo FIPS 140-2 por padrão. Não são necessários endpoints FIPS separados para conexões de cluster.

Para operações de ambiente de gerenciamento, o Aurora DSQL fornece endpoints FIPS exclusivos em regiões aceitas. Para acessar mais informações sobre endpoints FIPS do ambiente de gerenciamento, consulte [Aurora DSQL endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/dsql.html), na *Referência geral da AWS*.

Sobre a criptografia em repouso, consulte [Criptografia em repouso no Aurora DSQL](data-encryption.md#encryption-at-rest).

### Privacidade do tráfego entre redes
<a name="inter-network-traffic-privacy"></a>

As conexões são protegidas entre o Aurora DSQL e as aplicações on-premises e entre o Aurora DSQL e outros recursos da AWS na mesma Região da AWS.

Você tem duas opções de conectividade entre sua rede privada e a AWS: 
+ Uma conexão AWS Site-to-Site VPN. Para ter mais informações, consulte [O que é o AWS Site-to-Site VPN?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)
+ Uma conexão Direct Connect. Para ter mais informações, consulte [O que é o Direct Connect?](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)

Você obtém acesso ao Aurora DSQL pela rede usando operações de API publicadas pela AWS. Os clientes devem oferecer compatibilidade com:
+ Transport Layer Security (TLS). Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Conjuntos de criptografia com perfect forward secrecy (PFS) como DHE (Ephemeral Diffie-Hellman) ou ECDHE (Ephemeral Elliptic Curve Diffie-Hellman). A maioria dos sistemas modernos, como Java 7 e versões posteriores, comporta esses modos.

## Proteção de dados em regiões testemunhas
<a name="witness-regions"></a>

Quando você cria um cluster multirregional, uma região testemunha ajuda a permitir a recuperação automática de falhas participando da replicação síncrona de transações criptografadas. Se um cluster emparelhado ficar indisponível, a região testemunha permanecerá disponível para validar e processar gravações no banco de dados, garantindo que não haja perda de disponibilidade. 

As regiões testemunhas protegem seus dados por meio desses recursos de design:
+ A região testemunha recebe e armazena somente logs de transações criptografadas. Ela não hospeda, armazena nem transmite suas chaves de criptografia.
+ A região testemunha se concentra exclusivamente em registrar transações de gravação e funções de quórum. Por padrão, ela não consegue ler seus dados.
+ A região testemunha opera sem endpoints de conexão de cluster ou processadores de consulta. Isso impede o acesso ao banco de dados do usuário.

Para obter mais informações sobre as regiões testemunhas, consulte [Configurar clusters multirregionais](configuring-multi-region-clusters.md).

# Configurar certificados SSL/TLS para conexões do Aurora DSQL
<a name="configure-root-certificates"></a><a name="ssl-certificate-overview"></a>

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
<a name="verify-installed-certificates"></a>

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)
<a name="verify-linux"></a>

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
<a name="verify-macos"></a>

1. Abra o campo de pesquisa do Spotlight (**comando** \$1 **espaço**).

1. Pesquise **Keychain Access**.

1. Selecione **System Roots** em **System Keychains**.

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

### Windows
<a name="verify-windows"></a>

**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](#connect-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
<a name="install-certificates"></a>

 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
<a name="install-linux"></a>

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
   ```

1. Copie o certificado para um armazenamento confiável.

   ```
   sudo cp ./AmazonRootCA1.pem /etc/pki/ca-trust/source/anchors/
   ```

1. Atualize o armazenamento confiável da CA:

   ```
   sudo update-ca-trust
   ```

1. Verifique a instalação:

   ```
   trust list | grep "Amazon Root CA 1"
   ```

### Instalação do certificado no macOS
<a name="install-macos"></a>

Estas etapas de instalação do certificado são opcionais. A [Instalação do certificado no Linux](#install-linux) também funciona para macOS.

1. Baixe o certificado raiz:

   ```
   wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. Adicione o certificado a System keychain:

   ```
   sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain AmazonRootCA1.pem
   ```

1. 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
<a name="connect-using-certificates"></a>

 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
<a name="connect-linux"></a>

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)
   ```

1. Conecte-se usando certificados do sistema (se pré-instalados):

   ```
   PGSSLROOTCERT=system \
   PGSSLMODE=verify-full \
   psql --dbname postgres \
   --username admin \
   --host your-cluster-endpoint
   ```

1. 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](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE) na documentação [Database Connection Control Functions](https://www.postgresql.org/docs/current/libpq-connect.html) do PostgreSQL 17. 

### Conectar-se pelo macOS
<a name="connect-macos"></a>

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)
   ```

1. Conecte-se usando certificados do sistema (se pré-instalados):

   ```
   PGSSLROOTCERT=system \
   PGSSLMODE=verify-full \
   psql --dbname postgres \
   --username admin \
   --host your-cluster-endpoint
   ```

1. 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
   ```

1. 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
<a name="connect-windows"></a>

#### Por meio do prompt de comando
<a name="windows-command-prompt"></a>

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
   ```

1. Defina a variável de ambiente de senha:

   ```
   set "PGPASSWORD=token-from-above"
   ```

1. Defina a configuração do SSL:

   ```
   set PGSSLROOTCERT=C:\full\path\to\root.pem
   set PGSSLMODE=verify-full
   ```

1. 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
<a name="windows-powershell"></a>

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)
   ```

1. Defina a configuração do SSL:

   ```
   $env:PGSSLROOTCERT='C:\full\path\to\root.pem'
   $env:PGSSLMODE='verify-full'
   ```

1. Conecte-se ao banco de dados:

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

## Recursos adicionais
<a name="additional-resources"></a>
+  [Documentação do SSL do PostgreSQL](https://www.postgresql.org/docs/current/libpq-ssl.html) 
+  [Amazon Trust Services](https://www.amazontrust.com/repository/) 