L'integrazione di Cloud SQL per SQL Server con Microsoft Entra ID fornisce la gestione centralizzata di identità e accessi (IAM) per i tuoi database utilizzando il tenant Microsoft Entra ID esistente.
Questa integrazione offre i seguenti vantaggi:
Autenticazione centralizzata. Consente a utenti e applicazioni di accedere alle proprie istanze Cloud SQL per SQL Server utilizzando le identità Microsoft Entra ID esistenti senza reinserire una password. Questa funzionalità elimina la necessità di gestire accessi e password specifici di SQL Server separati.
Sicurezza avanzata. Ti aiuta a far rispettare le norme di sicurezza esistenti della tua organizzazione, come l'autenticazione a più fattori (MFA) e le regole di accesso condizionale (CA), a livello di database.
Gestione utenti semplificata: Quando l'account Microsoft Entra ID di un utente viene disattivato o rimosso, l'accesso al database dell'utente viene revocato automaticamente. Questa funzionalità semplifica l'offboarding e le revisioni dell'accesso.
Prerequisiti per l'integrazione
Per utilizzare l'integrazione di Cloud SQL per SQL Server con Microsoft Entra ID, l'istanza deve soddisfare i seguenti requisiti:
Devi disporre di un'istanza SQL Server 2022 esistente o crearne una nuova.
L'autenticazione Microsoft Entra ID è supportata solo su SQL Server 2022; non è disponibile su SQL Server 2017 o SQL Server 2019.
Attiva l'autenticazione Microsoft Entra ID.
Prima di attivare l'autenticazione Microsoft Entra ID, completa i seguenti passaggi nel portale Azure:
- Trova l'ID tenant Microsoft Entra.
Crea una nuova registrazione dell'applicazione in Microsoft Entra ID.
Cloud SQL per SQL Server utilizza questa applicazione per comunicare con l'ID tenant Microsoft Entra. Quando crei l'applicazione, prendi nota dell'applicazione o dell'ID client.
Concedi le autorizzazioni all'applicazione per leggere i dati della directory:
- Seleziona la registrazione dell'applicazione appena creata, poi fai clic su API permissions (Autorizzazioni API).
- Seleziona Aggiungi un'autorizzazione > Microsoft Graph > Autorizzazioni applicazione.
- Concedi uno dei seguenti set di autorizzazioni:
- Opzione 1.
- Directory.Read.All
- Opzione 2. Fornisce autorizzazioni più specifiche.
- Application.Read.All
- Group.Read.All
- User.Read.All
- Opzione 1.
- Concedi il consenso amministratore a livello di tenant per consentire all'applicazione di utilizzare queste autorizzazioni.
Connettività di rete
Microsoft Entra ID è un servizio pubblico che utilizza endpoint pubblici per l'autenticazione. Affinché l'autenticazione Microsoft Entra ID funzioni correttamente, la tua istanza Cloud SQL deve essere in grado di stabilire connessioni in uscita a questi endpoint pubblici. Le sezioni seguenti descrivono i passaggi successivi, in base alla configurazione della connettività di rete dell'istanza:
Istanze con un IP pubblico
Se la tua istanza Cloud SQL è configurata con un indirizzo IP pubblico, ha accesso in uscita a internet integrato.
Sebbene non sia necessaria alcuna configurazione di rete aggiuntiva per il funzionamento dell'autenticazione Microsoft Entra ID, rivedi le limitazioni prima di continuare.
Istanze con un IP privato
Se la tua istanza Cloud SQL è configurata solo con un indirizzo IP privato, non ha accesso diretto a internet. Devi configurare un percorso di uscita per consentire all'istanza di raggiungere gli endpoint di identità pubblici di Microsoft. La configurazione dell'integrazione di Microsoft Entra ID dipende dalla configurazione della tua istanza privata:
Private Service Connect
Se l'istanza Cloud SQL è configurata per utilizzare un indirizzo IP privato, ti consigliamo di utilizzare Private Service Connect per abilitare Microsoft Entra ID, in quanto elimina determinate attività di manutenzione generali come le seguenti:
- Gestione delle VM bastion host.
- Manutenzione delle route.
- Creazione di route eccessivamente ampie come quelle richieste per la connettività PSA.
Prima di continuare, esamina le limitazioni per l'utilizzo di Microsoft Entra ID.
Per abilitare la connettività, devi configurare Cloud Network Address Translation (Cloud NAT) nel VPC consumer. Ciò consente all'istanza abilitata per PSC di utilizzare il gateway Cloud NAT per il traffico in uscita verso gli endpoint Microsoft pubblici. Una volta abilitato, il routing interno limita il traffico in modo che solo il traffico correlato a Microsoft Entra ID raggiunga l'istanza Cloud NAT.
Per abilitare la connettività, completa i seguenti passaggi obbligatori:
- Crea un'istanza abilitata per PSC.
- Configura la connettività in uscita per l'istanza Cloud SQL.
- Crea un gateway Cloud NAT.
Accesso privato ai servizi
Se la tua istanza Cloud SQL è configurata per utilizzare un indirizzo IP privato e utilizzi PSA, sono necessari i seguenti passaggi per abilitare la connettività a Microsoft Entra ID:
Esegui il deployment di una VM bastion host all'interno del VPC.
Quando crei una VM bastion host nel tuo progetto, l'inoltro IP deve essere abilitato. Se hai creato una VM bastion host basata su Linux, configura la VM bastion host che hai appena creato per eseguire l'inoltro IP:
sudo sysctl net.ipv4.conf.all.forwarding=1 sudo iptables --table nat --append POSTROUTING --out-interface ens4 -j MASQUERADEConfigura le route di rete necessarie per indirizzare il traffico di autenticazione di Microsoft Entra ID dalla tua istanza Cloud SQL tramite l'host VM bastion host per raggiungere internet.
Aggiungi le route corrispondenti per ogni endpoint Microsoft Entra ID. Puoi trovare gli intervalli IP attuali nella sezione
AzureActiveDirectory.ServiceEndpointdel file di risorse Intervalli IP e service tag di Azure./16gcloud
Per ogni intervallo IP di Microsoft Entra ID, crea due route, sostituendo
VM_NAMEeVM_ZONEcon il nome e la zona effettivi della VM bastion host: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_VALUESostituisci quanto segue:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza Cloud SQL.
- NAME: il nome della route che vuoi creare.
- NETWORK: il nome della rete in cui si trova l'istanza Cloud SQL.
- RANGE: l'intervallo IP che vuoi utilizzare.
- VM_NAME: il nome della VM bastion host che vuoi includere.
- VM_ZONE: la zona della VM bastion host che vuoi includere, ad esempio
us-central1. ILB_VALUE: (Facoltativo) Il nome o l'indirizzo IP di una regola di forwarding per un bilanciatore del carico TCP/UDP interno. Se hai configurato un bilanciatore del carico davanti alle VM bastion host, devi includere il flag
--next-hop-ilbin questo comando.Per saperne di più, consulta Bilanciatori del carico di rete passthrough interni come hop successivi.
Un esempio potrebbe essere il seguente:
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-ilb1Utilizza lo stesso comando del passaggio precedente per applicare la stessa configurazione per consentire il traffico per i controlli di revoca dei certificati di Microsoft Entra ID. Utilizza gli intervalli IP elencati in Indirizzo IP dello stato del certificato DigiCert.
Se non completi questo passaggio, l'autenticazione Microsoft Entra ID potrebbe continuare a funzionare, ma potresti anche riscontrare ritardi nell'apertura di nuove connessioni.
Gestire l'autenticazione Microsoft Entra ID
Puoi attivare l'autenticazione Entra ID per un'istanza nuova o esistente.
Crea un'istanza con l'autenticazione Microsoft Entra ID abilitata
Puoi attivare l'autenticazione Microsoft Entra ID quando crei una nuova istanza Cloud SQL per SQL Server. Devi fornire l'ID tenant Microsoft Entra specifico e l'ID applicazione (ID client) della registrazione app che hai configurato nel portale Azure.
Per ulteriori informazioni, consulta la sezione Prerequisiti.
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
Sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza che vuoi creare.
- EDITION: l'edizione dell'istanza che vuoi utilizzare, ad esempio
SQLSERVER_2022_STANDARD. - TIER: il livello o il tipo di macchina dell'istanza che vuoi utilizzare, ad esempio
db-custom-2-3840. - NETWORK: il nome della rete che vuoi utilizzare.
- PASSWORD: la password dell'istanza.
- TENANT_ID: l'ID tenant Microsoft Entra.
- APPLICATION_ID: l'ID applicazione o client.
Un esempio potrebbe essere il seguente:
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
Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il nome del progetto in cui si troverà l'istanza che vuoi creare.
- INSTANCE_ID: l'ID dell'istanza che vuoi creare.
- EDITION: l'edizione dell'istanza che vuoi utilizzare, ad esempio
SQLSERVER_2022_STANDARD. - REGION: la regione in cui vuoi che risieda l'istanza, ad esempio
us-central1. - PASSWORD: la password dell'istanza.
- TIER: il livello o il tipo di macchina dell'istanza che vuoi utilizzare, ad esempio
db-custom-2-3840. - NETWORK: il nome della rete che vuoi utilizzare.
- TENANT_ID: l'ID tenant Microsoft Entra.
- APPLICATION_ID: l'ID applicazione o client.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corpo JSON della richiesta:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il nome del progetto in cui si troverà l'istanza che vuoi creare.
- INSTANCE_ID: l'ID dell'istanza che vuoi creare.
- EDITION: l'edizione dell'istanza che vuoi utilizzare, ad esempio
SQLSERVER_2022_STANDARD. - REGION: la regione in cui vuoi che risieda l'istanza, ad esempio
us-central1. - PASSWORD: la password dell'istanza.
- TIER: il livello o il tipo di macchina dell'istanza che vuoi utilizzare, ad esempio
db-custom-2-3840. - NETWORK: il nome della rete che vuoi utilizzare.
- TENANT_ID: l'ID tenant Microsoft Entra.
- APPLICATION_ID: l'ID applicazione o client.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Corpo JSON della richiesta:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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"
}
Gestisci l'autenticazione Microsoft Entra ID su un'istanza esistente
Puoi attivare, modificare o disattivare la configurazione di Microsoft Entra ID su un'istanza esistente in qualsiasi momento.
Per modificare la configurazione dell'istanza, devi applicare una patch all'istanza con i nuovi valori o con i valori eliminati di ID tenant e ID applicazione (client).
Questa procedura non prevede l'aggiunta o la rimozione di un dominio.
Puoi aggiornare i valori dell'ID tenant e dell'ID applicazione senza attivare o disattivare l'integrazione con 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"
Sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza che vuoi modificare.
- NEW_TENANT_ID: il nuovo ID tenant Microsoft Entra. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
- NEW_APPLICATION_ID: il nuovo ID applicazione o client. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
Un esempio potrebbe essere il seguente:
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
Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza che vuoi modificare.
- INSTANCE_ID: l'ID dell'istanza che vuoi modificare.
- TENANT_ID: l'ID tenant Microsoft Entra. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
- APPLICATION_ID: l'ID applicazione o client. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corpo JSON della richiesta:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza che vuoi modificare.
- INSTANCE_ID: l'ID dell'istanza che vuoi modificare.
- TENANT_ID: l'ID tenant Microsoft Entra. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
- APPLICATION_ID: l'ID applicazione o client. Per disattivare Microsoft Entra ID, lascia vuota questa stringa.
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Corpo JSON della richiesta:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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"
}
Aggiungere il certificato all'applicazione
Affinché Microsoft Entra ID autentichi l'istanza Cloud SQL per SQL Server, devi caricare il certificato pubblico dell'istanza Cloud SQL per SQL Server nella registrazione dell'app Microsoft Entra ID.
Dopo aver attivato l'autenticazione Microsoft Entra ID nell'istanza, crea un certificato specifico dell'istanza per Microsoft Entra ID.
gcloud
gcloud beta sql ssl entraid-certs create --instance=INSTANCE_NAMESostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza per cui vuoi creare un certificato.
REST v1
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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" }Recupera i dettagli del certificato che hai appena creato recuperando i dettagli dell'istanza:
gcloud
gcloud beta sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"Sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza associata al certificato che hai appena creato.
REST v1
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza.
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.
Questo comando stampa un certificato che puoi salvare in un file e poi caricare nel portale Azure.
Devi rimuovere tutti i caratteri di nuova riga incorporati dal file e separare manualmente ogni nuova riga. In caso contrario, il caricamento del file non andrà a buon fine.
Ad esempio, potresti ricevere una stringa di testo simile alla seguente:
Line1\Line2\Line3Devi separare manualmente ogni riga, in modo simile a quanto segue:
Line1 Line2 Line3In alternativa, se non vuoi eseguire questa attività manualmente, utilizza il seguente 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'Sostituisci quanto segue:
- PROJECT_ID: l'ID progetto in cui si trova l'istanza.
- INSTANCE_NAME: il nome dell'istanza associata al certificato che hai appena creato.
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza.
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.
Questo comando stampa un certificato che puoi salvare in un file e poi caricare nel portale Azure.
Devi rimuovere tutti i caratteri di nuova riga incorporati dal file e separare manualmente ogni nuova riga. In caso contrario, il caricamento del file non andrà a buon fine.
Ad esempio, potresti ricevere una stringa di testo simile alla seguente:
Line1\Line2\Line3Devi separare manualmente ogni riga, in modo simile a quanto segue:
Line1 Line2 Line3In alternativa, se non vuoi eseguire questa attività manualmente, utilizza il seguente 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'Sostituisci quanto segue:
- PROJECT_ID: l'ID progetto in cui si trova l'istanza.
- INSTANCE_NAME: il nome dell'istanza associata al certificato che hai appena creato.
Aggiungi il certificato al portale di Azure.
- Vai a Registrazione app nel portale di Azure.
- Apri Certificates & secrets (Certificati e secret).
- Seleziona Carica certificato. Sfoglia per aggiungere il file del certificato recuperato dalla tua istanza.
- Fai clic su OK.
Ruotare il certificato Microsoft Entra ID
Devi ruotare il certificato Microsoft Entra ID prima che scada. Ti consigliamo di iniziare questa procedura almeno una settimana prima della data di scadenza pianificata:
Segui i passaggi descritti in Aggiungere il certificato all'applicazione per creare un nuovo certificato inattivo nell'istanza Cloud SQL per SQL Server e caricarlo in Microsoft Entra ID utilizzando il portale Azure. Questa operazione non influisce sul certificato attivo corrente.
Attiva il nuovo certificato sull'istanza Cloud SQL per SQL Server, che attiva l'utilizzo del nuovo certificato per tutte le nuove autenticazioni.
gcloud
gcloud beta sql ssl entraid-certs rotate --instance=INSTANCE_NAMESostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza associata al certificato che vuoi ruotare.
REST v1
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.
La tua istanza ora utilizza il nuovo certificato.
Puoi rimuovere in sicurezza il vecchio certificato dalla registrazione dell'app Microsoft Entra ID e dall'istanza Cloud SQL per SQL Server. Per saperne di più, vedi Aggiungere e gestire le credenziali dell'applicazione in Microsoft Entra ID.
Eseguire il rollback del certificato Microsoft Entra ID
Se riscontri problemi dopo il passaggio a un nuovo certificato, puoi eseguire il rollback al certificato precedente.
Per eseguire un rollback, il certificato precedente deve essere ancora valido e deve essere ancora considerato attendibile dalla registrazione dell'app Microsoft Entra ID.
I seguenti comandi riattivano immediatamente il certificato precedente specificato sull'istanza Cloud SQL per SQL Server.
gcloud
gcloud beta sql ssl entraid-certs rollback --instance=INSTANCE_NAME
Sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza associata al certificato di cui vuoi eseguire il rollback.
REST v1
Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza per cui vuoi eseguire il rollback del certificato.
- CERTIFICATE_NAME: il nome del nuovo certificato che vuoi utilizzare
per sostituire il vecchio certificato, ad esempio
sha1Fingerprint.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
Corpo JSON della richiesta:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza per cui vuoi eseguire il rollback del certificato.
- CERTIFICATE_NAME: il nome del nuovo certificato che vuoi utilizzare
per sostituire il vecchio certificato, ad esempio
sha1Fingerprint.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
Corpo JSON della richiesta:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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"
}
Crea l'accesso iniziale a Microsoft Entra ID
Dopo aver attivato l'autenticazione Microsoft Entra ID sull'istanza, devi creare i tuoi accessi Microsoft Entra ID.
Crea il primo accesso Microsoft Entra ID.
Questo accesso iniziale, che rappresenta un utente o un gruppo Microsoft Entra ID, non può essere creato utilizzando T-SQL. Devi crearlo utilizzando gcloud CLI o l'API Cloud SQL Admin:
gcloud
gcloud sql users create USER_NAME --instance=INSTANCE_NAME --type=ENTRAID_USERSostituisci quanto segue:
- USER_NAME: il nome dell'utente Cloud SQL per SQL Server che vuoi creare.
- INSTANCE_NAME: il nome dell'istanza per cui vuoi creare accessi Microsoft Entra ID.
- ENTRAID_USER: il nome utente Microsoft Entra ID.
Un esempio potrebbe essere il seguente:
gcloud sql users create myentraiduser@mytenant.com --instance=my-entraid-instance --type=ENTRAID_USERREST v1
Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza per cui vuoi eseguire l'aggiornamento.
- USER_NAME: il nome dell'utente Cloud SQL per SQL Server che vuoi creare.
- ENTRAID_USER: il nome utente Microsoft Entra ID.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON della richiesta:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
- INSTANCE_ID: l'ID dell'istanza per cui vuoi eseguire l'aggiornamento.
- USER_NAME: il nome dell'utente Cloud SQL per SQL Server che vuoi creare.
- ENTRAID_USER: il nome utente Microsoft Entra ID.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON della richiesta:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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" }Una volta creato l'accesso iniziale a Microsoft Entra ID, puoi connetterti al database come utente.
Crea accessi Microsoft Entra ID successivi.
Puoi creare e gestire ulteriori accessi Microsoft Entra ID come indicato nel passaggio precedente.
In alternativa, se preferisci utilizzare un altro strumento come SQL Server Management Studio (SSMS), devi prima concedere all'accesso iniziale l'autorizzazione per gestire altri accessi:
GRANT ALTER ANY LOGIN TO [ENTRA_ID_USER] AS CustomerDbRootRoleSostituisci ENTRAID_USER con il nome utente Microsoft Entra ID.
Una volta concesse le autorizzazioni, questo accesso può creare e gestire altri accessi Microsoft Entra ID utilizzando i comandi T-SQL standard. Un comando di esempio potrebbe essere simile al seguente:
CREATE LOGIN [<<ENTRA_ID_USER>>] FROM EXTERNAL PROVIDERSostituisci ENTRAID_USER con il nome utente Microsoft Entra ID.
Per creare utenti in base agli accessi di Microsoft Entra ID o per concedere autorizzazioni, utilizza i comandi T-SQL standard.
Per ulteriori informazioni, incluso come creare un accesso utilizzando la sintassi corretta, consulta Configurare l'autenticazione Microsoft Entra per SQL Server con la registrazione dell'app.
Best practice
Per contribuire a isolare le autorizzazioni e definire meglio i limiti di sicurezza, ti consigliamo vivamente di creare una registrazione dell'applicazione Microsoft Entra ID univoca per ogni istanza Cloud SQL per SQL Server. La revoca delle credenziali dell'applicazione non influirà su altre istanze non correlate.
Per ulteriori informazioni, vedi Come registrare un'applicazione in Microsoft Entra ID.
Risoluzione dei problemi
Le sezioni seguenti ti aiutano a risolvere i problemi che potresti riscontrare durante la gestione dell'integrazione di Microsoft Entra ID.
Problemi di connettività di rete con istanze IP private
Durante la configurazione dell'integrazione potresti riscontrare alcuni dei seguenti problemi:
- Operazioni lente per creare accessi Microsoft Entra ID
- Impossibile creare accessi Microsoft Entra ID
- Impossibile connettersi all'istanza utilizzando l'autenticazione Microsoft Entra ID
Per risolvere questi problemi, esegui il seguente test di connettività:
All'interno dello stesso progetto Google Cloud e VPC e nella stessa regione dell'istanza Cloud SQL per SQL Server, crea una VM di test configurata solo con un IP privato.
Connettiti alla VM che hai appena creato utilizzando il protocollo RDP (Remote Desktop Protocol) o il protocollo SSH (Secure Shell). Quindi, esegui i seguenti comandi per testare la raggiungibilità. Questi passaggi possono essere applicati sia alle VM basate su Linux sia a quelle basate su Windows:
curl -4iv login.microsoftonline.com curl -4iv graph.microsoft.com curl -4iv ocsp.digicert.com
Se non riesci a raggiungere nessuno di questi endpoint, a causa di timeout o errori di connessione rifiutata, controlla la configurazione di rete per quanto segue:
- Per Private Service Connect, assicurati che Cloud NAT sia configurato correttamente per consentire l'accesso a internet in uscita.
- Per l'accesso privato ai servizi, verifica la configurazione delle route personalizzate e degli host bastion.
- Controlla le regole firewall VPC per assicurarti che il traffico in uscita verso questi domini non sia bloccato.
Messaggi di errore comuni
Durante l'autenticazione di Microsoft Entra ID potresti riscontrare il seguente errore di accesso:
Login failed for user ""
Per risolvere il problema, assicurati che esista un accesso SQL Server per questo utente Microsoft Entra ID.
Migrazione da Microsoft Active Directory
Nei seguenti scenari, puoi abilitare l'autenticazione Microsoft Entra ID senza disattivare l'autenticazione Microsoft Active Directory esistente:
- Eseguire una migrazione graduale. Spostamento dell'autorità di autenticazione da Microsoft Active Directory a Microsoft Entra ID utilizzando Active Directory gestito dal cliente (CMAD) o Managed Service for Microsoft Active Directory.
- Utilizzo di un ambiente ibrido. Mantenere abilitati contemporaneamente sia Microsoft Active Directory sia Microsoft Entra ID.
Repliche di lettura
- Se aggiungi una replica di lettura a un'istanza principale in cui è abilitato Microsoft Entra ID, la replica di lettura viene configurata automaticamente per utilizzare Microsoft Entra ID.
- Se l'istanza principale ha Microsoft Entra ID abilitato e ripristini un backup in quell'istanza, la relativa replica di lettura viene configurata automaticamente per utilizzare Microsoft Entra, poiché l'identità non cambia.
Istanze clonate e ripristino in un'altra istanza
L'integrazione di Microsoft Entra ID non viene configurata automaticamente nella nuova istanza nei seguenti scenari:
- Un clone dell'istanza principale.
- Un backup ripristinato in un'istanza diversa da quella principale.
In questi casi, devi attivare manualmente Microsoft Entra ID nella nuova istanza e poi ricaricare il certificato nell'applicazione Microsoft Entra ID. Questo requisito è una misura di sicurezza per impedire a più istanze non correlate di utilizzare la stessa identità dell'applicazione.
Limitazioni
- L'autenticazione Microsoft Entra ID è supportata solo su SQL Server 2022; non è disponibile su SQL Server 2017 o SQL Server 2019.
- Se cloni un'istanza o ripristini un backup in un'altra istanza, l'integrazione di Microsoft Entra ID non viene configurata automaticamente nella nuova istanza. Per ulteriori informazioni, vedi Backup e ripristino.
- L'autenticazione Microsoft Entra ID non è supportata per le istanze ad alta disponibilità (HA) configurate con un IP pubblico.
- L'autenticazione Microsoft Entra ID non è supportata per le istanze principali abilitate per PSC, né per le istanze di replica di lettura corrispondenti.
- Evita di ruotare i certificati Microsoft Entra ID nelle istanze principali a cui sono collegate repliche. Se ruoti il certificato dell'istanza principale, i certificati della replica non verranno aggiornati.
- L'integrazione di Microsoft Entra ID con Cloud SQL per SQL Server può essere configurata utilizzando gcloud CLI o l'API Cloud SQL Admin. L'integrazione non può essere gestita utilizzando Terraform.
Passaggi successivi
- Scopri di più su Microsoft Entra ID