A integração do Cloud SQL para SQL Server com o Microsoft Entra ID oferece gestão de identidade e acesso (IAM) centralizada para as suas bases de dados através do seu inquilino do Microsoft Entra ID existente.
Esta integração oferece as seguintes vantagens:
Autenticação centralizada. Permite que os utilizadores e as aplicações iniciem sessão nas respetivas instâncias do Cloud SQL para SQL Server através das respetivas identidades do Microsoft Entra ID existentes sem introduzir novamente uma palavra-passe. Esta capacidade elimina a necessidade de gerir palavras-passe e inícios de sessão específicos do SQL Server separados.
Segurança melhorada. Ajuda a aplicar as políticas de segurança existentes da sua organização, como a autenticação multifator (MFA) e as regras de acesso condicional (CA), ao nível da base de dados.
Gestão de Utilizadores simplificada. Quando a conta do Microsoft Entra ID de um utilizador é desativada ou removida, o acesso do utilizador à base de dados é revogado automaticamente. Esta capacidade ajuda a simplificar a desvinculação e as revisões de acesso.
Pré-requisitos para a integração
Para usar a integração do Cloud SQL para SQL Server com o Microsoft Entra ID, a sua instância tem de cumprir os seguintes requisitos:
Tem de ter uma instância do SQL Server 2022 existente ou criar uma nova.
A autenticação do Microsoft Entra ID só é suportada no SQL Server 2022. Não está disponível no SQL Server 2017 nem no SQL Server 2019.
Ative a autenticação do Microsoft Entra ID.
Antes de ativar a autenticação do Microsoft Entra ID, conclua os seguintes passos no portal do Azure:
- Encontre o ID do inquilino do Microsoft Entra.
Crie um novo registo de aplicação no Microsoft Entra ID.
O Cloud SQL para SQL Server usa esta aplicação para comunicar com o seu ID do inquilino do Microsoft Entra. Quando criar a aplicação, tome nota do ID da aplicação ou do cliente.
Conceda autorizações à aplicação para ler dados de diretórios:
- Selecione o registo da aplicação que acabou de criar e, de seguida, clique em Autorizações da API.
- Selecione Adicionar uma autorização > Microsoft Graph > Autorizações da aplicação.
- Conceda um dos seguintes conjuntos de autorizações:
- Opção 1.
- Directory.Read.All
- Opção 2. Oferece autorizações mais específicas.
- Application.Read.All
- Group.Read.All
- User.Read.All
- Opção 1.
- Conceda consentimento do administrador ao nível do inquilino para permitir que a aplicação use estas autorizações.
Conetividade de rede
O Microsoft Entra ID é um serviço público que usa pontos finais públicos para autenticação. Para que a autenticação do Microsoft Entra ID funcione corretamente, a sua instância do Cloud SQL tem de conseguir estabelecer ligações de saída a estes pontos finais públicos. As secções seguintes abordam os passos seguintes com base na configuração de conetividade de rede da sua instância:
Instâncias com um IP público
Se a sua instância do Cloud SQL estiver configurada com um endereço IP público, tem acesso de saída integrado à Internet.
Embora não seja necessária nenhuma configuração de rede adicional para que a autenticação do Microsoft Entra ID funcione, reveja as Limitações antes de continuar.
Instâncias com um IP privado
Se a sua instância do Cloud SQL estiver configurada apenas com um endereço IP privado, não tem acesso direto à Internet. Tem de configurar um caminho de saída para permitir que a instância alcance os pontos finais de identidade públicos da Microsoft. A configuração da integração do Microsoft Entra ID depende da forma como a sua instância privada está configurada:
Private Service Connect
Se a sua instância do Cloud SQL estiver configurada para usar um endereço IP privado, recomendamos que use o Private Service Connect para ativar o Microsoft Entra ID, uma vez que elimina determinadas tarefas de manutenção gerais como as seguintes:
- Gerir VMs de bastion host.
- Manutenção de trajetos.
- Criar rotas excessivamente amplas, como as necessárias para a conetividade do PSA.
Antes de continuar, reveja as limitações da utilização do Microsoft Entra ID.
Para ativar a conetividade, tem de configurar a tradução de endereços de rede na nuvem (Cloud NAT) na VPC do consumidor. Isto permite que a instância com PSC use o gateway Cloud NAT para tráfego de saída para endpoints públicos da Microsoft. Depois de ativada, o encaminhamento interno restringe o tráfego para que apenas o tráfego relacionado com o Microsoft Entra ID chegue à sua instância do Cloud NAT.
Para ativar a conetividade, conclua os passos obrigatórios seguintes:
- Crie uma instância com o PSC ativado.
- Configure a conetividade de saída para a sua instância do Cloud SQL.
- Crie um gateway do Cloud NAT.
Acesso a serviços privados
Se a sua instância do Cloud SQL estiver configurada para usar um endereço IP privado e usar o PSA, são necessários os seguintes passos para ativar a conetividade ao Microsoft Entra ID:
Implemente uma VM de bastion host na sua VPC.
Quando cria uma VM de anfitrião bastion no seu projeto, o encaminhamento de IP tem de estar ativado. Se criou uma VM de anfitrião de bastion baseada no Linux, configure a VM de anfitrião de bastion que acabou de criar para realizar o encaminhamento de IP:
sudo sysctl net.ipv4.conf.all.forwarding=1 sudo iptables --table nat --append POSTROUTING --out-interface ens4 -j MASQUERADEConfigure as rotas de rede necessárias para direcionar o tráfego de autenticação do Microsoft Entra ID da sua instância do Cloud SQL através do anfitrião da VM bastion para alcançar a Internet.
Adicione as rotas correspondentes para cada ponto final do Microsoft Entra ID. Pode encontrar os intervalos de IP atuais na secção
AzureActiveDirectory.ServiceEndpointdo ficheiro de recursos Intervalos de IP e etiquetas de serviço do Azure.gcloud
Para cada intervalo de IP do Microsoft Entra ID, crie duas rotas, substituindo
VM_NAMEeVM_ZONEpelo nome e pela zona reais da VM do anfitrião bastion:gcloud --project=PROJECT_ID compute routes create NAME \ --network=NETWORK --destination-range=RANGE \ --priority=998 --next-hop-gateway=default-internet-gateway gcloud --project=PROJECT_ID compute routes create NAME \ --network=NETWORK --destination-range=RANGE --priority=999 \ --next-hop-instance=VM_NAME --next-hop-instance-zone=VM_ZONE \ --next-hop-ilb=ILB_VALUESubstitua o seguinte:
- PROJECT_ID: o ID do projeto onde reside a sua instância do Cloud SQL.
- NAME: o nome do trajeto que quer criar.
- NETWORK: o nome da rede onde a sua instância do Cloud SQL reside.
- RANGE: o intervalo de IPs que quer usar.
- VM_NAME: o nome da VM do bastion host que quer incluir.
- VM_ZONE: a zona da VM do anfitrião bastion que quer incluir, como
us-central1. ILB_VALUE: opcional. O nome ou o endereço IP de uma regra de encaminhamento para um balanceador de carga de TCP/UDP interno. Se configurou um balanceador de carga à frente das VMs do anfitrião bastion, tem de incluir a flag
--next-hop-ilbneste comando.Para mais informações, consulte o artigo Balanceadores de carga de rede de encaminhamento interno como saltos seguintes.
Um exemplo pode ter o seguinte aspeto:
gcloud --project=my-customer-project compute routes create my-route-1 --network=default --destination-range=20.20.32.0/27 --priority=998 --next-hop-gateway=default-internet-gateway gcloud --project=my-customer-project compute routes create my-route-2 --network=default --destination-range=20.20.32.0/27 --priority=999 --next-hop-instance=my-bastion-vm --next-hop-instance-zone=us-central1-c --next-hop-ilb=fr-ilb1Use o mesmo comando no passo anterior para aplicar a mesma configuração de forma a permitir o tráfego para verificações de revogação de certificados do Microsoft Entra ID. Use os intervalos de IP indicados em Endereço IP do estado do certificado DigiCert.
Se não concluir este passo, a autenticação do Microsoft Entra ID pode continuar a funcionar, mas também pode sofrer atrasos ao abrir novas ligações.
Faça a gestão da autenticação do Microsoft Entra ID
Pode ativar a autenticação do Entra ID para uma instância nova ou existente.
Crie uma instância com a autenticação do Microsoft Entra ID ativada
Pode ativar a autenticação do Microsoft Entra ID quando cria uma nova instância do Cloud SQL para SQL Server. Tem de indicar o ID do inquilino do Microsoft Entra específico e o ID da aplicação (ID do cliente) do registo de apps que configurou no portal do Azure.
Para mais informações, consulte a secção Pré-requisitos.
gcloud
gcloud beta sql instances create INSTANCE_NAME \
--database-version=EDITION \
--tier=TIER \
--network=NETWORK
--root-password=PASSWORD
--entra-id-tenant-id=TENANT_ID \
--entra-id-application-id=APPLICATION_ID
Substitua o seguinte:
- INSTANCE_NAME: o nome da instância que quer criar.
- EDITION: a edição da instância que quer usar, como
SQLSERVER_2022_STANDARD. - TIER: o nível da instância ou o tipo de máquina que quer usar, como
db-custom-2-3840. - NETWORK: o nome da rede que quer usar.
- PASSWORD: a palavra-passe da instância.
- TENANT_ID: o ID do inquilino do Microsoft Entra.
- APPLICATION_ID: o ID da aplicação ou do cliente.
Um exemplo pode ter o seguinte aspeto:
gcloud beta sql instances create my-entraid-instance \
--database-version=SQLSERVER_2022_STANDARD \
--tier=db-custom-2-3840 \
--assign-ip \
--root-password=D61Xv36f!0lE \
--entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
--entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd
REST v1
Nem todos os campos possíveis são apresentados na seguinte chamada básica da API. Para ver um protótipo de um pedido JSON, consulte Definições.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o nome do projeto onde a instância que quer criar vai estar localizada.
- INSTANCE_ID: o ID da instância que quer criar.
- EDITION: a edição da instância que quer usar, como
SQLSERVER_2022_STANDARD. - REGION: a região onde quer que a instância resida, como
us-central1. - PASSWORD: a palavra-passe da instância.
- TIER: o nível da instância ou o tipo de máquina que quer usar, como
db-custom-2-3840. - NETWORK: o nome da rede que quer usar.
- TENANT_ID: o ID do inquilino do Microsoft Entra.
- APPLICATION_ID: o ID da aplicação ou do cliente.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corpo JSON do pedido:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Nem todos os campos possíveis são apresentados na seguinte chamada básica da API. Para ver um protótipo de um pedido JSON, consulte Definições.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o nome do projeto onde a instância que quer criar vai estar localizada.
- INSTANCE_ID: o ID da instância que quer criar.
- EDITION: a edição da instância que quer usar, como
SQLSERVER_2022_STANDARD. - REGION: a região onde quer que a instância resida, como
us-central1. - PASSWORD: a palavra-passe da instância.
- TIER: o nível da instância ou o tipo de máquina que quer usar, como
db-custom-2-3840. - NETWORK: o nome da rede que quer usar.
- TENANT_ID: o ID do inquilino do Microsoft Entra.
- APPLICATION_ID: o ID da aplicação ou do cliente.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Corpo JSON do pedido:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Faça a gestão da autenticação do Microsoft Entra ID numa instância existente
Pode ativar, modificar ou desativar a configuração do Microsoft Entra ID numa instância existente em qualquer altura.
Para modificar a configuração da sua instância, tem de aplicar uma correção à instância com os novos valores do ID do inquilino e do ID da aplicação (cliente) ou os valores eliminados.
Este processo não envolve a associação nem a desassociação a um domínio.
Pode atualizar os valores do ID do inquilino e do ID da aplicação sem ativar nem desativar a integração com o Microsoft Entra ID.
gcloud
gcloud beta sql instances patch INSTANCE_NAME \
--entra-id-tenant-id="NEW_TENANT_ID" \
--entra-id-application-id="NEW_APPLICATION_ID"
Substitua o seguinte:
- INSTANCE_NAME: o nome da instância que quer modificar.
- NEW_TENANT_ID: o novo ID do inquilino do Microsoft Entra. Para desativar o Microsoft Entra ID, deixe esta string vazia.
- NEW_APPLICATION_ID: o novo ID da aplicação ou do cliente. Para desativar o Microsoft Entra ID, deixe esta string vazia.
Um exemplo pode ter o seguinte aspeto:
gcloud beta sql instances patch my-existing-instance \
--entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
--entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd
REST v1
Nem todos os campos possíveis são apresentados na seguinte chamada básica da API. Para ver um protótipo de um pedido JSON, consulte Definições.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde se encontra a instância que quer modificar.
- INSTANCE_ID: o ID da instância que quer modificar.
- TENANT_ID: o ID do inquilino do Microsoft Entra. Para desativar o Microsoft Entra ID, deixe esta string vazia.
- APPLICATION_ID: o ID da aplicação ou do cliente. Para desativar o Microsoft Entra ID, deixe esta string vazia.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corpo JSON do pedido:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Nem todos os campos possíveis são apresentados na seguinte chamada básica da API. Para ver um protótipo de um pedido JSON, consulte Definições.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde se encontra a instância que quer modificar.
- INSTANCE_ID: o ID da instância que quer modificar.
- TENANT_ID: o ID do inquilino do Microsoft Entra. Para desativar o Microsoft Entra ID, deixe esta string vazia.
- APPLICATION_ID: o ID da aplicação ou do cliente. Para desativar o Microsoft Entra ID, deixe esta string vazia.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Corpo JSON do pedido:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Adicione o certificado à aplicação
Para que o Microsoft Entra ID autentique a sua instância do Cloud SQL para SQL Server, tem de carregar o certificado público da instância do Cloud SQL para SQL Server para o registo da app do Microsoft Entra ID.
Depois de ativar a autenticação do Microsoft Entra ID na sua instância, crie um certificado específico da instância para o Microsoft Entra ID.
gcloud
gcloud beta sql ssl entraid-certs create --instance=INSTANCE_NAMESubstitua o seguinte:
- INSTANCE_NAME: o nome da instância para a qual quer criar um certificado.
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a sua instância está localizada.
- INSTANCE_ID: o ID da instância.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a sua instância está localizada.
- INSTANCE_ID: o ID da instância.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }Obtenha os detalhes do certificado que acabou de criar ao aceder aos detalhes da instância:
gcloud
gcloud beta sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"Substitua o seguinte:
- INSTANCE_NAME: o nome da instância associada ao certificado que acabou de criar.
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a sua instância está localizada.
- INSTANCE_ID: o ID da instância.
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Para enviar o seu pedido, expanda uma destas opções:
Deve receber um código de estado de êxito (2xx) e uma resposta vazia.
Este comando imprime um certificado que pode guardar num ficheiro e, posteriormente, carregá-lo para o portal do Azure.
Tem de remover todos os carateres de nova linha incorporados do ficheiro e separar manualmente cada nova linha. Se não o fizer, o carregamento do ficheiro falha.
Por exemplo, pode receber uma string de texto semelhante à seguinte:
Line1\Line2\Line3Tem de separar manualmente cada linha, de forma semelhante ao seguinte:
Line1 Line2 Line3Em alternativa, se não quiser realizar esta tarefa manualmente, use o seguinte comando:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'Substitua o seguinte:
- PROJECT_ID: o ID do projeto onde a sua instância está localizada.
- INSTANCE_NAME: o nome da instância associada ao certificado que acabou de criar.
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a sua instância está localizada.
- INSTANCE_ID: o ID da instância.
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Para enviar o seu pedido, expanda uma destas opções:
Deve receber um código de estado de êxito (2xx) e uma resposta vazia.
Este comando imprime um certificado que pode guardar num ficheiro e, posteriormente, carregá-lo para o portal do Azure.
Tem de remover todos os carateres de nova linha incorporados do ficheiro e separar manualmente cada nova linha. Se não o fizer, o carregamento do ficheiro falha.
Por exemplo, pode receber uma string de texto semelhante à seguinte:
Line1\Line2\Line3Tem de separar manualmente cada linha, de forma semelhante ao seguinte:
Line1 Line2 Line3Em alternativa, se não quiser realizar esta tarefa manualmente, use o seguinte comando:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'Substitua o seguinte:
- PROJECT_ID: o ID do projeto onde a sua instância está localizada.
- INSTANCE_NAME: o nome da instância associada ao certificado que acabou de criar.
Adicione o seu certificado ao portal do Azure.
- Navegue até ao Registo de apps no portal do Azure.
- Abra Certificados e segredos.
- Selecione Carregar certificado. Navegue até ao ficheiro de certificado que recuperou da sua instância e adicione-o.
- Clique em OK.
Rode o certificado do Microsoft Entra ID
Tem de rodar o certificado do Microsoft Entra ID antes que expire. Recomendamos que inicie este processo, pelo menos, uma semana antes da data de validade agendada:
Siga os passos em Adicione o certificado à aplicação para criar um novo certificado inativo na sua instância do Cloud SQL para SQL Server e, em seguida, carregue-o para o Microsoft Entra ID através do portal do Azure. Isto não afeta o certificado ativo atual.
Ative o novo certificado na instância do Cloud SQL para SQL Server, o que faz com que o Cloud SQL para SQL Server comece a usar o novo certificado para todas as novas autenticações.
gcloud
gcloud beta sql ssl entraid-certs rotate --instance=INSTANCE_NAMESubstitua o seguinte:
- INSTANCE_NAME: o nome da instância associada ao certificado que quer rodar.
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a sua instância está localizada.
- INSTANCE_ID: o ID da instância.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Para enviar o seu pedido, expanda uma destas opções:
Deve receber um código de estado de êxito (2xx) e uma resposta vazia.
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a sua instância está localizada.
- INSTANCE_ID: o ID da instância.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Para enviar o seu pedido, expanda uma destas opções:
Deve receber um código de estado de êxito (2xx) e uma resposta vazia.
A sua instância usa agora o novo certificado.
Pode remover em segurança o certificado antigo do registo da app do Microsoft Entra ID e da instância do Cloud SQL para SQL Server. Para mais informações, consulte o artigo Adicione e faça a gestão de credenciais de aplicações no Microsoft Entra ID.
Reverta o certificado do Microsoft Entra ID
Se tiver problemas após a rotação para um novo certificado, pode reverter para o certificado anterior.
Para reverter, o certificado anterior tem de continuar a ser válido e tem de continuar a ser fidedigno para o registo da app do Microsoft Entra ID.
Os seguintes comandos reativam imediatamente o certificado anterior especificado na sua instância do Cloud SQL para SQL Server.
gcloud
gcloud beta sql ssl entraid-certs rollback --instance=INSTANCE_NAME
Substitua o seguinte:
- INSTANCE_NAME: o nome da instância associada ao certificado ao qual quer reverter.
REST v1
Nem todos os campos possíveis são apresentados na seguinte chamada básica da API. Para ver um protótipo de um pedido JSON, consulte Definições.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a instância está localizada.
- INSTANCE_ID: o ID da instância para a qual quer reverter o certificado.
- CERTIFICATE_NAME: o nome do novo certificado que quer usar
para substituir o certificado antigo, como
sha1Fingerprint.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
Corpo JSON do pedido:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Nem todos os campos possíveis são apresentados na seguinte chamada básica da API. Para ver um protótipo de um pedido JSON, consulte Definições.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a instância está localizada.
- INSTANCE_ID: o ID da instância para a qual quer reverter o certificado.
- CERTIFICATE_NAME: o nome do novo certificado que quer usar
para substituir o certificado antigo, como
sha1Fingerprint.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
Corpo JSON do pedido:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Crie o início de sessão inicial do Microsoft Entra ID
Depois de ativar a autenticação do Microsoft Entra ID na instância, tem de criar os seus inícios de sessão do Microsoft Entra ID.
Crie o primeiro início de sessão do Microsoft Entra ID.
Este início de sessão inicial, que representa um utilizador ou um grupo do Microsoft Entra ID, não pode ser criado através de T-SQL. Tem de criá-la através da CLI gcloud ou da API Cloud SQL Admin:
gcloud
gcloud sql users create USER_NAME --instance=INSTANCE_NAME --type=ENTRAID_USERSubstitua o seguinte:
- USER_NAME: o nome do utilizador do Cloud SQL para SQL Server que quer criar.
- INSTANCE_NAME: o nome da instância para a qual quer criar inícios de sessão do Microsoft Entra ID.
- ENTRAID_USER: o nome de utilizador do Microsoft Entra ID.
Um exemplo pode ter o seguinte aspeto:
gcloud sql users create myentraiduser@mytenant.com --instance=my-entraid-instance --type=ENTRAID_USERREST v1
Nem todos os campos possíveis são apresentados na seguinte chamada básica da API. Para ver um protótipo de um pedido JSON, consulte Definições.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a instância está localizada.
- INSTANCE_ID: o ID da instância que quer atualizar.
- USER_NAME: o nome do utilizador do Cloud SQL para SQL Server que quer criar.
- ENTRAID_USER: o nome de utilizador do Microsoft Entra ID.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON do pedido:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
Nem todos os campos possíveis são apresentados na seguinte chamada básica da API. Para ver um protótipo de um pedido JSON, consulte Definições.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto onde a instância está localizada.
- INSTANCE_ID: o ID da instância que quer atualizar.
- USER_NAME: o nome do utilizador do Cloud SQL para SQL Server que quer criar.
- ENTRAID_USER: o nome de utilizador do Microsoft Entra ID.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON do pedido:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }Depois de criar o início de sessão inicial do Microsoft Entra ID, pode estabelecer ligação à base de dados como esse utilizador.
Criar inícios de sessão subsequentes do Microsoft Entra ID.
Pode criar e gerir inícios de sessão adicionais do Microsoft Entra ID, conforme indicado no passo anterior.
Em alternativa, se preferir usar outra ferramenta, como o SQL Server Management Studio (SSMS), tem de conceder primeiro ao início de sessão inicial a autorização para gerir outros inícios de sessão:
GRANT ALTER ANY LOGIN TO [ENTRA_ID_USER] AS CustomerDbRootRoleSubstitua ENTRAID_USER pelo nome de utilizador do Microsoft Entra ID.
Depois de concedidas as autorizações, este início de sessão pode criar e gerir outros inícios de sessão do Microsoft Entra ID através de comandos T-SQL padrão. Um exemplo de comando pode ser semelhante ao seguinte:
CREATE LOGIN [<<ENTRA_ID_USER>>] FROM EXTERNAL PROVIDERSubstitua ENTRAID_USER pelo nome de utilizador do Microsoft Entra ID.
Para criar utilizadores com base em inícios de sessão do Microsoft Entra ID ou para conceder autorizações, use comandos T-SQL padrão.
Para mais informações, incluindo como criar um início de sessão com a sintaxe adequada, consulte o artigo Configure a autenticação do Microsoft Entra para o SQL Server com o registo de apps.
Práticas recomendadas
Para ajudar a isolar as autorizações e definir melhor os limites de segurança, recomendamos vivamente que crie um registo de aplicação do Microsoft Entra ID exclusivo para cada instância do Cloud SQL para SQL Server. A revogação das credenciais da aplicação não afeta outras instâncias não relacionadas.
Para mais informações, consulte o artigo Como registar uma aplicação no Microsoft Entra ID.
Resolução de problemas
As secções seguintes ajudam a resolver problemas que pode encontrar ao gerir a integração do Microsoft Entra ID.
Problemas de conetividade de rede com instâncias de IP privado
Pode ter alguns dos seguintes problemas durante a configuração da integração:
- Operações lentas para criar inícios de sessão do Microsoft Entra ID
- Não é possível criar inícios de sessão do Microsoft Entra ID
- Não é possível estabelecer ligação à instância através da autenticação do Microsoft Entra ID
Para ajudar a resolver estes problemas, faça o seguinte teste de conetividade:
No mesmo Google Cloud projeto e VPC, e na mesma região que a sua instância do Cloud SQL para SQL Server, crie uma VM de teste configurada apenas com um IP privado.
Estabeleça ligação à VM que acabou de criar através do protocolo de ambiente de trabalho remoto (RDP) ou do protocolo Secure Shell (SSH). Em seguida, execute os seguintes comandos para testar a acessibilidade. Estes passos podem ser aplicados a VMs baseadas em Linux e Windows:
curl -4iv login.microsoftonline.com curl -4iv graph.microsoft.com curl -4iv ocsp.digicert.com
Se não conseguir aceder a nenhum destes pontos finais, seja devido a limites de tempo ou a erros de ligação recusada, verifique a configuração de rede para o seguinte:
- Para o Private Service Connect, certifique-se de que o Cloud NAT está configurado corretamente para permitir o acesso à Internet de saída.
- Para o acesso a serviços privados, valide a configuração dos seus anfitriões bastion e rotas personalizadas.
- Verifique as regras da firewall da VPC para garantir que o tráfego de saída para estes domínios não está bloqueado.
Mensagens de erro comuns
Pode encontrar o seguinte erro de início de sessão durante a autenticação do Microsoft Entra ID:
Login failed for user ""
Para resolver este problema, certifique-se de que existe um início de sessão do SQL Server para este utilizador do Microsoft Entra ID.
Migração do Microsoft Active Directory
Nos seguintes cenários, pode ativar a autenticação do Microsoft Entra ID sem desativar a autenticação do Microsoft Active Directory existente:
- Fazer uma migração faseada. Mover a autoridade de autenticação do Microsoft Active Directory para o Microsoft Entra ID através do Active Directory gerido pelo cliente (CMAD) ou do serviço gerido para o Microsoft Active Directory.
- Usar um ambiente híbrido. Manter o Microsoft Active Directory e o Microsoft Entra ID ativados em simultâneo.
Réplicas de leitura
- Se adicionar uma réplica de leitura a uma instância principal com o Microsoft Entra ID ativado, a réplica de leitura é configurada automaticamente para usar o Microsoft Entra ID.
- Se a instância principal tiver o Microsoft Entra ID ativado e restaurar uma cópia de segurança nessa instância, a respetiva réplica de leitura associada é configurada automaticamente para usar o Microsoft Entra, uma vez que a identidade não se altera.
Instâncias clonadas e restauro para uma instância diferente
A integração do Microsoft Entra ID não é configurada automaticamente na nova instância nos seguintes cenários:
- Um clone da instância principal.
- Uma cópia de segurança restaurada para uma instância que não é a principal.
Nestes casos, tem de ativar manualmente o Microsoft Entra ID na nova instância e, em seguida, voltar a carregar o respetivo certificado para a aplicação Microsoft Entra ID. Este requisito é uma medida de segurança para ajudar a evitar que várias instâncias não relacionadas usem a mesma identidade da aplicação.
Limitações
- A autenticação do Microsoft Entra ID só é suportada no SQL Server 2022. Não está disponível no SQL Server 2017 nem no SQL Server 2019.
- Se clonar uma instância ou restaurar uma cópia de segurança para uma instância diferente, a integração do Microsoft Entra ID não é configurada automaticamente na nova instância. Para mais informações, consulte o artigo Cópia de segurança e recuperação.
- A autenticação do Microsoft Entra ID não é suportada para instâncias de alta disponibilidade (HA) configuradas com um IP público.
- A autenticação do Microsoft Entra ID não é suportada para instâncias primárias ativadas para PSC nem para as respetivas instâncias de réplica de leitura correspondentes.
- Evite rodar certificados do Microsoft Entra ID em instâncias principais com réplicas anexadas. Se rodar o certificado da instância principal, os certificados da réplica não são atualizados.
- A integração do Microsoft Entra ID com o Cloud SQL para SQL Server pode ser configurada através da CLI gcloud ou da API Cloud SQL Admin. Não é possível gerir a integração através do Terraform.
O que se segue?
- Saiba mais sobre o Microsoft Entra ID