Use o Secret Manager para manipular segredos no Cloud SQL,Use o Secret Manager para manipular segredos no Cloud SQL,Use o Secret Manager para manipular segredos no Cloud SQL,Use o Secret Manager para manipular segredos no Cloud SQL

Visão geral

Gerenciar suas informações confidenciais corretamente é essencial para criar um fluxo de trabalho de desenvolvimento seguro. Para o Cloud SQL, recomendamos que você armazene suas informações confidenciais como segredos criados no Gerenciador de Segredos . Segredos incluem chaves de API, senhas, informações confidenciais ou credenciais que você pode usar para acessar um sistema confidencial.

O Gerenciador de Segredos oferece praticidade e melhora a segurança. Você também pode aplicar controle de versão aos seus segredos e compartilhá-los com sua equipe. Para saber mais sobre como compartilhar segredos com sua equipe, consulte Controle de acesso (IAM) .

Esta página descreve quatro casos de uso para usar o Secret Manager para gerenciar segredos com o Cloud SQL:

Antes de começar

Antes de começar a usar o Secret Manager para manipular segredos no Cloud SQL:

Nomes de usuários e senhas

Usar o Secret Manager para armazenar os nomes de usuário e senhas das suas contas de usuário do Cloud SQL como segredos é uma maneira segura e confiável de gerenciar essas informações confidenciais.

Primeiro, você precisa criar um usuário no Cloud SQL. Para criá-lo, você precisa fornecer um nome de usuário e uma senha. Para obter mais informações sobre como criar um usuário no Cloud SQL, consulte Criar e gerenciar usuários .

Após a criação do usuário, crie um segredo no Gerenciador de Segredos para armazenar o nome de usuário e a senha. Isso garante que essas informações confidenciais não sejam perdidas. Para obter mais informações sobre como criar e acessar segredos no Gerenciador de Segredos, consulte Criação e acesso a segredos .

Instâncias do Cloud SQL

Ao se conectar à sua instância do Cloud SQL, você pode usar o Secret Manager para gerenciar segredos e criar um fluxo de trabalho de desenvolvimento seguro.

Comece conectando-se à sua instância do Cloud SQL a partir do seu computador local. Depois que a instância estiver em execução, use variáveis ​​de ambiente para se conectar a ela. Alguns valores associados às variáveis ​​são mais confidenciais, como o nome da conexão da instância. Para cada valor, você pode criar um segredo no Gerenciador de Segredos para armazenar e gerenciar essas informações. Para saber mais sobre como usar variáveis ​​de ambiente para se conectar à sua instância do Cloud SQL, consulte Configurar e executar aplicativo de exemplo .

Você pode recuperar o nome da conexão da instância armazenado como um segredo diretamente do Gerenciador de Segredos. Isso proporciona um fluxo de trabalho flexível que pode ajudar sua equipe a compartilhar essas informações confidenciais entre vários aplicativos e gerenciá-las de um local centralizado. Para obter mais informações sobre como recuperar segredos do Gerenciador de Segredos, consulte Criar um segredo com o Gerenciador de Segredos .

Um aplicativo precisa das informações contidas nos segredos para ser iniciado. Essas informações incluem os valores associados às variáveis ​​de ambiente usadas para se conectar ao aplicativo. Seu aplicativo acessa os segredos ao ser iniciado e, em seguida, os utiliza para configurar uma conexão com o Cloud SQL. Se algum segredo relevante for atualizado no Gerenciador de Segredos, talvez seja necessário reiniciar o aplicativo.

Certificados SSL/TLS

Se você se conectar a uma instância do Cloud SQL usando um endereço IP público ou privado, deverá usar um certificado TLS (Transport Layer Security), que protege os dados durante a transmissão. Cada certificado TLS inclui um certificado de chave pública e uma chave privada. Para obter mais informações sobre como configurar certificados TLS, consulte Configurar certificados SSL/TLS .

Você pode salvar o certificado TLS, o certificado de chave pública e a chave privada como segredos para mantê-los seguros e compartilhá-los com sua equipe. Para obter mais informações sobre como criar e acessar segredos, consulte Criar um segredo com o Gerenciador de Segredos . Para obter mais informações sobre como compartilhar segredos, consulte Controle de acesso (IAM) .

Cenários de recuperação de desastres

Se uma instância primária no Cloud SQL falhar, você poderá promover uma réplica de leitura para a instância primária. Depois que a réplica de leitura se tornar a instância primária, você deverá atualizar o nome da conexão da instância para refletir essa promoção. Se o nome da conexão da instância estiver armazenado em um segredo, você deverá atualizar o segredo com o nome da nova instância primária. Para obter mais informações, consulte Editar um segredo .

Uma maneira de usar o Secret Manager para failovers é armazenar o nome da sua instância primária em um segredo e, em seguida, configurar seu conector do Cloud SQL para ser atualizado sempre que o segredo for atualizado.

Você pode usar o seguinte script wrapper bash com o proxy de autenticação do Cloud SQL para detectar quando o valor do nome de conexão da instância é atualizado e, em seguida, reiniciar o proxy com o novo valor:

#!/bin/bash

SECRET_ID="my-secret-id" # TODO(developer): replace this value
REFRESH_INTERVAL=5
PORT=5432                # TODO(developer): change this port as needed

# Get the latest version of the secret and start the proxy
INSTANCE=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
cloud_sql_proxy -instances="$INSTANCE"=tcp:"$PORT" &
PID=$!

# Every 5s, get the latest version of the secret. If it's changed, restart the
# proxy with the new value.
while true; do
    sleep $REFRESH_INTERVAL
    NEW=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
    if [ "$INSTANCE" != "$NEW" ]; then
        INSTANCE=$NEW
        kill $PID
        wait $PID
        cloud_sql_proxy -instances="$INSTANCE"=tcp:"$PORT" &
        PID=$!
    fi
done

Para obter mais informações sobre como criar e acessar um segredo que contém o nome da conexão da instância da réplica primária, consulte Criar um segredo com o Gerenciador de Segredos . Para obter mais informações sobre como usar o proxy de autenticação do Cloud SQL, consulte Conectar-se ao Cloud SQL usando o proxy de autenticação do Cloud SQL .

O que vem a seguir

  • Você pode integrar o Secret Manager com outros Google Cloudprodutos como o Cloud Run.
  • Para saber como integrar o Secret Manager ao seu ambiente de desenvolvimento, veja os vários exemplos disponíveis na página Todos os exemplos de código do Secret Manager .