Esta página descreve como configurar um sistema de nomes de domínio (DNS) personalizado para sua instância do Cloud SQL.
Visão geral
É possível configurar uma instância do Cloud SQL para que seus aplicativos possam se conectar usando um nome DNS personalizado gerenciado pela sua organização. Se você quiser usar um nome DNS personalizado para se conectar a uma instância do Cloud SQL em vez de um endereço IP, configure um nome alternativo do assunto (SAN, na sigla em inglês) personalizado. É possível configurar um SAN personalizado ao criar ou atualizar uma instância.
Quando você adiciona um nome de DNS personalizado como uma configuração de SAN personalizada à sua instância,
o Cloud SQL insere o nome de DNS personalizado
no campo SAN do certificado do servidor da instância. Essa personalização
permite que você use o nome DNS personalizado com a validação de nome de host de forma segura.
É possível adicionar uma lista separada por vírgulas de até três nomes de DNS personalizados à
configuração SAN personalizada. Por motivos de segurança, é possível usar uma configuração SAN personalizada
apenas para instâncias que você
configurar com CUSTOMER_MANAGED_CAS_CA
como o modo de AC do servidor.
Depois de configurar o nome DNS personalizado para sua instância, você pode usar esse nome para conectar seus clientes de banco de dados ou aplicativos, incluindo conectores de linguagem do Cloud SQL e o proxy de autenticação do Cloud SQL.
Fluxo de trabalho
Para configurar um nome DNS personalizado para uma instância, faça o seguinte:
- Crie uma instância configurada com uma AC gerenciada pelo cliente.
- Adicione valores de SAN personalizados à instância. Os valores SAN personalizados são inseridos no campo SAN do certificado do servidor da instância.
- Determine o endereço IP da instância.
- Crie registros DNS personalizados para sua instância.
- Conecte-se à instância usando o nome DNS personalizado.
Antes de começar
Antes de configurar um nome DNS personalizado para sua instância, verifique se você tem os papéis e as permissões necessários.
Se você estiver criando uma nova instância do Cloud SQL, para usar o SAN personalizado, a instância também precisará usar uma autoridade certificadora (AC) gerenciada pelo cliente para o modo de AC do servidor.
Criar uma instância com valores SAN personalizados
Para criar uma instância com valores SAN personalizados, use o seguinte comando gcloud sql instances create
:
gcloud
gcloud sql instances create "INSTANCE_NAME" \ --database-version=DATABASE_VERSION \ --project=PROJECT_ID \ --region=REGION \ --server-ca-mode=CUSTOMER_MANAGED_CAS_CA \ --server-ca-pool=projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID --custom-subject-alternative-names=CUSTOM_DNS_NAME
Faça as seguintes substituições:
INSTANCE_NAME
pelo nome da instância do Cloud SQL que você quer criar.DATABASE_VERSION
com oenum
da versão da instância do Cloud SQL que você quer criar. A opção de AC gerenciada pelo cliente tem suporte apenas no MySQL 8.0.30 e versões mais recentes.PROJECT_ID
com o ID do projeto em que você planeja criar as instâncias do Cloud SQL.PROJECT_ID_CAS
pelo ID do projeto em que você criou o CA_POOL_ID. Esse projeto pode ser o mesmo ou diferente de onde você quer criar a instância do Cloud SQL.REGION
pela região em que você criou o pool de ACs. É necessário criar a instância na mesma região do pool de ACs.CA_POOL_ID
pelo ID do pool de ACs que você criou.CUSTOM_DNS_NAME
com até três nomes de DNS personalizados separados por vírgulas sem espaços entre os valores. Por exemplo,develop.example.com,test.example.com,production.example.com
.
Adicionar ou atualizar valores de SAN personalizados para uma instância
Para adicionar ou atualizar valores de SAN personalizados em uma instância, faça o seguinte:
gcloud
gcloud sql instances patch INSTANCE_NAME \ --custom-subject-alternative-names=CUSTOM_DNS_NAME
Faça as seguintes substituições:
INSTANCE_NAME
pelo nome da instância do Cloud SQL que você quer atualizar.CUSTOM_DNS_NAME
com até três nomes de DNS personalizados, separados por vírgulas sem espaços entre os valores. Por exemplo,develop.example.com,new-test.example.com,production.example.com
.
Limpar todos os valores de SAN personalizados de uma instância
Para limpar todos os valores de SAN personalizados de uma instância, faça o seguinte:
gcloud
gcloud sql instances patch INSTANCE_NAME \ --clear-custom-subject-alternative-names
Substitua INSTANCE_NAME
pelo nome da instância do Cloud SQL
que você quer atualizar.
Criar registros DNS personalizados
Antes de se conectar à instância usando o nome DNS personalizado com seus clientes e aplicativos, configure o mapeamento entre o nome DNS e o endereço IP. Esse mapeamento é conhecido como resolução de DNS. Se você estiver se conectando de forma particular, crie o registro DNS em uma zona DNS particular na rede Virtual Private Cloud (VPC) correspondente.
Para criar registros DNS personalizados para sua instância, faça o seguinte:
Extraia o endereço IP da sua instância. Execute este comando:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Faça as seguintes substituições:
- INSTANCE_NAME: o nome da instância do Cloud SQL
- PROJECT_ID: o ID ou número do projeto do Google Cloud projeto que contém a instância
Na resposta, procure o campo
ipAddresses:
.Exemplo:
ipAddresses: - ipAddress: 192.0.2.4 type: PRIVATE
É possível recuperar o endereço IP particular de uma instância configurada para o Acesso a serviços particulares, o Private Service Connect ou ambos.
Adicione dois registros DNS a uma zona DNS usada pelo seu aplicativo. É possível usar um servidor DNS gerenciado por você ou a zona privada do Cloud DNS usada pelo aplicativo.
- Crie um registro
A
para o endereço IP da instância - Crie um registro
TXT
com o nome da conexão da instância.
Os clientes de banco de dados padrão usam o registro
A
para procurar o endereço IP e fazer a conexão. Os conectores de linguagem do Cloud SQL e o proxy do Cloud SQL Auth usam o registroTXT
para procurar o nome da conexão da instância.Por exemplo, a string de conexão da sua instância é
my-project:region:my-instance
, mas você quer se conectar usando o nome DNSprod-db.mycompany.example.com
. Se o endereço IP da instância na rede da sua empresa for192.0.2.4
, crie os seguintes registros DNS:Record type: A Name: prod-db.mycompany.example.com Value: 192.0.2.4 TTL: 600 Record type: TXT Name: prod-db.mycompany.example.com Value: my-project:region:my-instance TTL: 600
- Crie um registro
Conectar-se a uma instância usando um nome DNS personalizado
Ao se conectar a uma instância do Cloud SQL para MySQL, configure o nome DNS personalizado como o nome do host e ative a verificação de identidade do servidor no cliente. Por exemplo, ao usar o cliente MySQL, especifique a flag--ssl-mode=VERIFY_IDENTITY
Se você estiver se conectando a uma instância privada do Cloud SQL de uma rede externa, configure a instância do Cloud SQL e a rede de nuvem privada virtual (VPC) para permitir conexões externas e permitir que o Cloud DNS se comunique com sistemas locais. Para mais informações sobre essa configuração, consulte Conectar de uma fonte externa e Configurar o DNS para sistemas locais.
Limitações
- Não é possível adicionar mais de três nomes de DNS como valores SAN personalizados ao certificado do servidor de uma instância do Cloud SQL.
- O comprimento máximo de um nome de DNS que pode ser adicionado ao certificado como um valor SAN personalizado para uma instância é de 253 caracteres.
- Os nomes de DNS adicionados ao certificado de uma instância não podem ter
caracteres curinga (
*
) ou pontos finais. Por exemplo,test.example.com.
não é permitido. - Os nomes DNS precisam ser válidos, conforme especificado pela RFC 1034.
- É possível especificar valores de SAN personalizados apenas para instâncias
CUSTOMER_MANAGED_CAS_CA
.
A seguir
- Gerencie o SSL/TLS na instância do Cloud SQL.
- Saiba mais sobre como a criptografia é processada no Google Cloud.
- Conecte-se à instância do Cloud SQL usando certificados SSL/TLS.
- Saiba mais sobre como o MySQL usa SSL/TLS.