Nesta página, descrevemos como usar a Secure Socket Layer (SSL), agora Transport Layer Security (TLS), no seu aplicativo para criptografar conexões com instâncias do Cloud SQL.
Visão geral
O Cloud SQL aceita conexão a uma instância usando o protocolo SSL/TLS. As conexões SSL/TLS oferecem uma camada de segurança criptografando dados em trânsito entre o cliente e o banco de dados na instância do Cloud SQL. Opcionalmente, sua conexão SSL/TLS pode realizar a verificação de identidade do servidor validando o certificado do servidor instalado na instância do Cloud SQL e a verificação de identidade do cliente validando o certificado do cliente instalado no cliente.
Certificados do servidor
Quando você cria uma instância, o Cloud SQL cria e instala automaticamente um certificado de servidor assinado por uma autoridade certificadora (CA). É possível fazer o download do certificado da AC na máquina host do cliente e usá-lo para verificar a identidade da AC e do servidor do Cloud SQL. Opcionalmente, você pode escolher o tipo de AC que o Cloud SQL usa para assinar o certificado do servidor.
Hierarquias de autoridades certificadoras (AC)
Esta seção descreve os três tipos de autoridades certificadoras (CA) do servidor que você pode escolher para suas instâncias do Cloud SQL. Você tem três opções:
- AC por instância: com essa opção, uma AC interna dedicada
a cada instância do Cloud SQL assina o
certificado do servidor para essa instância.
O Cloud SQL cria e gerencia essas ACs. Para escolher a AC por instância,
especifique
GOOGLE_MANAGED_INTERNAL_CA
para a configuraçãoserverCaMode
(API Cloud SQL Admin) ou a flag--server-ca-mode
(gcloud CLI) ao criar a instância. Se você deixar a configuração ou a flag sem especificação ao criar uma instância, essa opção será o valor padrão da instância. AC compartilhada: com essa opção, é usada uma hierarquia de ACs que consiste em uma AC raiz e ACs de servidor subordinadas. As ACs de servidor subordinadas em uma região assinam os certificados do servidor e são compartilhadas entre as instâncias da região. O Cloud SQL hospeda e gerencia a AC raiz e as ACs de servidores subordinadas no Google Cloud Certificate Authority Service (serviço de AC). O Cloud SQL também processa a alternância de ACs raiz e ACs de servidores subordinados e disponibiliza links disponíveis publicamente para os pacotes de certificados de AC para download. Para escolher uma AC compartilhada, especifique
GOOGLE_MANAGED_CAS_CA
para a configuraçãoserverCaMode
(API Cloud SQL Admin) ou a flag--server-ca-mode
(gcloud CLI) ao criar a instância.A opção de AC compartilhada está em Visualização.
AC gerenciada pelo cliente: com essa opção, você cria e gerencia sua própria hierarquia de ACs. Escolha essa opção se você quiser gerenciar suas próprias ACs e certificados. Para escolher a AC compartilhada, é necessário criar um pool de ACs e uma AC no serviço de AC. No Cloud SQL, especifique o pool de AC e
CUSTOMER_MANAGED_CAS_CA
para a configuraçãoserverCaMode
(API Cloud SQL Admin) ou o flag--server-ca-mode
(gcloud CLI) ao criar a instância.A opção de AC gerenciada pelo cliente está em Pré-lançamento.
Depois de criar uma instância, é possível conferir qual hierarquia de AC está configurada para
uma instância do Cloud SQL usando o comando gcloud sql instances describe
.
Para mais informações, consulte Acessar informações da instância.
A tabela a seguir compara as três opções de hierarquia de ACs.
Recurso | AC por instância | AC compartilhada | AC gerenciada pelo cliente |
---|---|---|---|
Estrutura de AC | Autoridade certificadora separada para cada instância | CA raiz e CAs subordinadas compartilhadas entre instâncias na mesma região | Hierarquia de ACs que você cria e gerencia |
Atributos criptográficos | Chave RSA de 2048 bits com algoritmo SHA256 | Algoritmo de assinatura digital de curva elíptica (ECDSA) com chave de 256 bits e algoritmo SHA384 | Algoritmo de assinatura digital de curva elíptica (ECDSA) com chave de 256 bits e algoritmo SHA384 |
Período de validade do certificado digital | 10 anos | 25 anos para a AC raiz e 10 anos para as ACs subordinadas | Configurável * |
Período de validade do certificado do servidor | 10 anos | 1 ano | 1 ano** |
Rotação de AC iniciada pelo usuário? | Sim | Não. A rotação de CA é gerenciada pelo Cloud SQL. | Sim |
Rotação de certificado do servidor iniciada pelo usuário? | Sim | Sim | Sim |
Âncora de confiança da AC para conexões TLS | A AC exclusiva por instância é a âncora de confiança da instância correspondente. | A AC raiz e as ACs subordinadas são as âncoras de confiança de todas as instâncias em uma determinada região. | As ACs que você cria e gerencia são as âncoras de confiança. |
Verificação de identidade do servidor | A verificação da AC verifica a identidade do servidor, já que cada instância tem uma AC exclusiva. | A verificação do nome do host e da AC é necessária para a verificação de identidade do servidor, já que as ACs do servidor são compartilhadas entre instâncias. | Embora a AC não possa ser compartilhada entre instâncias, é recomendável verificar o nome do host junto com a AC. |
Campo "Nome alternativo do assunto" (SAN, na sigla em inglês) em certificados de servidor | O campo SAN contém o nome do host (nome DNS da instância) apenas para instâncias ativadas com o Private Service Connect. O nome do host pode ser usado para verificação de identidade do servidor. Se você estiver se conectando a uma instância do Cloud SQL usando o nome DNS como nome de host, será necessário configurar a resolução de DNS. | O campo SAN contém o nome do host (nome DNS da instância) para todos os tipos de instâncias. O nome do host pode ser usado para a verificação de identidade do servidor. Se você estiver se conectando a uma instância do Cloud SQL usando o nome DNS como nome de host, será necessário configurar a resolução de DNS. | O campo SAN contém o nome do host (nome DNS da instância) para todos os tipos de instâncias. O nome do host pode ser usado para a verificação de identidade do servidor. |
* Para a opção de AC gerenciada pelo cliente, o período de validade padrão de um certificado de AC no serviço de AC é de 10 anos. Você tem a opção de configurar um período de validade diferente para seus certificados de AC. Um período de validade mais curto para a AC pode exigir rotações mais frequentes e um período de validade menor que um ano pode afetar o período de validade dos certificados do servidor. Para mais informações, consulte Gerenciar a rotação de ACs.
** Para a opção de AC gerenciada pelo cliente, o período de validade padrão de um certificado do servidor é de um ano. No entanto, se você configurar um período de validade menor que um ano para o certificado da AC, o certificado do servidor terá um período de validade menor. Para mais informações sobre como configurar o período de validade do certificado de AC na criação, consulte Configurações do certificado de AC e Criar uma AC raiz.
AC por instância hospedado pelo Cloud SQL
A hierarquia de ACs por instância é a configuração padrão do modo de AC do servidor quando você cria uma instância usando a gcloud CLI, a API Cloud SQL Admin ou o Terraform.
O Cloud SQL cria uma nova AC de servidor autoassinada para cada
instância quando você a cria.
Para usar essa configuração,
configure serverCaMode
como GOOGLE_MANAGED_INTERNAL_CA
ao criar a instância.
É possível deixar a configuração serverCaMode
sem especificação usando a API Cloud SQL Admin ou a gcloud CLI,
ou selecionar a opção Autoridade certificadora interna do Google no
console do Google Cloud.
O diagrama a seguir mostra a hierarquia de ACs por instância.
ACs compartilhadas hospedadas pelo serviço de AC
A hierarquia de AC compartilhada é a configuração padrão do modo de AC do servidor quando você cria uma instância usando o console do Google Cloud.
Esse modo de AC do servidor consiste em uma AC raiz e ACs de servidor subordinadas em cada região. As ACs de servidor subordinadas emitem certificados de servidor e são compartilhadas entre as instâncias na região. O Cloud SQL processa a rotação das ACs de servidor regionais compartilhadas e disponibiliza links públicos para fazer o download dos pacotes de certificados de AC.
É possível configurar uma instância para usar uma hierarquia de AC do servidor em que as ACs
emissoras são compartilhadas entre as instâncias na mesma região. Para usar essa configuração,
configure serverCaMode
como GOOGLE_MANAGED_CAS_CA
ao criar a instância.
O diagrama a seguir mostra a hierarquia da AC compartilhada.
ACs gerenciadas pelo cliente
Esse modo de CA do servidor permite que você configure sua própria hierarquia de CA no CA Service.
Para usar a opção de AC gerenciada pelo cliente
no Cloud SQL, crie um pool de ACs na mesma região
das suas instâncias do Cloud SQL. Em seguida, crie pelo menos uma AC.
Ao criar a instância do Cloud SQL, especifique o ID do pool de ACs no campo serverCaPool
e configure o campo serverCaMode
com o valor CUSTOMER_MANAGED_CAS_CA
.
O serviço de AC fornece uma AC do pool de ACs e
usa essa AC para emitir o certificado do servidor para a instância.
Ao criar ACs no serviço, é possível criar uma AC raiz ou subordinada, dependendo do caso de uso. Por exemplo, você pode criar uma AC subordinada se planeja configurar uma hierarquia de AC raiz ou encadear até uma AC externa.
Selecione a opção de AC gerenciada pelo cliente somente se você quiser gerenciar suas próprias ACs e certificados. Para mais informações, consulte Usar uma AC gerenciada pelo cliente. A opção de AC gerenciada pelo cliente está em Pré-lançamento.
Como funciona a rotação de certificados do servidor
O Cloud SQL oferece maneiras de alternar o certificado do servidor para que um novo seja criado antes que o antigo expire.
Para instâncias que usam as hierarquias de AC por instância, AC compartilhada ou AC gerenciada pelo cliente, cerca de três meses antes do vencimento do certificado do servidor em uma instância do Cloud SQL, os proprietários do projeto recebem um e-mail do Cloud SQL informando que o processo de mudança do certificado foi iniciado para aquela instância. O e-mail inclui o nome da instância e informa que o Cloud SQL adicionou um novo certificado do servidor ao projeto. O certificado do servidor continua funcionando normalmente. Na verdade, a instância tem dois certificados do servidor durante esse período.
O comando de rotação de certificado do servidor a ser usado depende se você está usando um certificado do servidor emitido por uma AC por instância ou um certificado do servidor emitido pela AC compartilhada ou gerenciada pelo cliente.
Antes que o certificado do servidor atual expire, faça o download do novo arquivo server-ca.pem
,
que contém as informações do certificado de servidor atual e do
novo. Para que seus clientes do SQL Server usem o novo arquivo, ele deve ser
copiado em todas as máquinas host do cliente SQL Server, substituindo
o arquivo atual.
Depois que todos os clientes do SQL Server forem atualizados, envie um comando de rotação (para ACs por instância) ou comando de rotação (para ACs compartilhadas ou gerenciadas pelo cliente) para a instância do Cloud SQL para que ela use o novo certificado do servidor. Depois disso, o certificado antigo não será mais reconhecido e somente o novo poderá ser usado.
Vencimento do certificado SSL
Para instâncias do Cloud SQL que usam ACs por instância
(serverCaMode
está definido como GOOGLE_MANAGED_INTERNAL_CA
),
os certificados SSL têm um
período de validade de 10 anos. Antes que esses certificados
venham a expirar, faça a rotação do certificado de CA do servidor.
Para instâncias que usam ACs compartilhadas
(serverCaMode
está definido como GOOGLE_MANAGED_CAS_CA
) (Visualização),
o período de validade dos certificados do servidor é de 1 ano.
Antes do vencimento, faça uma rotação de certificados do servidor.
O certificado da autoridade certificadora (AC) raiz
tem um período de validade de 25 anos, e o certificado de AC compartilhado
subordinado tem um período de validade de 10 anos.
O Cloud SQL lida com a rotação delas.
Se você estiver usando uma AC gerenciada pelo cliente (serverCaMode
está definida como CUSTOMER_MANAGED_CAS_CA
)(pré-lançamento),
é possível realizar a rotação de certificados da AC girando as ACs no
pool de ACs criado. O período de validade de uma AC geralmente é de 10 anos,
mas você pode configurar um período de validade mais curto para sua AC no serviço de AC.
Para fazer a rotação das ACs, use o processo de rotação de AC no serviço de AC. Para mais informações, consulte Gerenciar a rotação de ACs.
Se um cliente estiver configurado para verificar a AC ou o nome do host no certificado do servidor, as conexões desse cliente com instâncias do Cloud SQL com certificados de servidor expirados vão falhar. Para evitar interrupções nas conexões do cliente, alterne o certificado do servidor antes que ele expire.
Seja qual for o modo de servidor da AC por instância, da AC compartilhada ou da AC gerenciada pelo cliente, é possível redefinir a configuração SSL da instância do Cloud SQL a qualquer momento.
A seguir
Configure o SSL/TLS na instância do Cloud SQL.
Saiba mais sobre como a criptografia é gerenciada no Google Cloud.
- Saiba mais sobre como o SQLServer usa conexões criptografadas.
- Gerencie o SSL/TLS na sua instância do Cloud SQL.