L'integrazione di Cloud SQL per SQL Server con Microsoft Entra ID fornisce la gestione di identità e accessi (IAM) centralizzata 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 dover reinserire una password. Questa funzionalità elimina la necessità di gestire accessi e password separati specifici per SQL Server.
Sicurezza avanzata. Ti aiuta ad applicare le policy 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 degli accessi.
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 avere un'istanza esistente o crearne una nuova.
L'autenticazione Microsoft Entra ID è supportata solo su SQL Server 2022 o versioni successive; 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 di Azure:
- Trova l'ID tenant di 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 di Microsoft Entra. Quando crei l'applicazione, prendi nota dell'ID applicazione o ID client.
Concedi all'applicazione le autorizzazioni per leggere i dati della directory:
- Seleziona la registrazione dell'applicazione appena creata, quindi 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, l'istanza Cloud SQL deve essere in grado di stabilire connessioni in uscita verso questi endpoint pubblici. Le sezioni seguenti illustrano i passaggi successivi in base alla configurazione della connessione 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 integrato a internet.
Sebbene non sia necessaria alcuna configurazione di rete aggiuntiva per il funzionamento dell'autenticazione Microsoft Entra ID, consulta le limitazioni prima di continuare.
Istanze con un IP privato
Se l'istanza Cloud SQL è configurata solo con un indirizzo IP privato, non ha accesso diretto a internet. Devi configurare un percorso in 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 dell'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 alcune attività di manutenzione overhead, come le seguenti:
- Gestione delle VM bastion host.
- Mantenimento delle route.
- Creazione di route troppo 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. In questo modo, l'istanza abilitata per PSC può utilizzare il gateway Cloud NAT per il traffico in uscita verso gli endpoint Microsoft pubblici. Una volta attivato, 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 l'istanza Cloud SQL è configurata per utilizzare un indirizzo IP privato e utilizzi PSA, per abilitare la connettività a Microsoft Entra ID sono necessari i seguenti passaggi:
Esegui il deployment di una VM bastion host all'interno del VPC.
Quando crei una VM bastion host nel tuo progetto, l'IP forwarding deve essere abilitato. Se hai creato una VM bastion host basata su Linux, configurala in modo che esegua l'IP forwarding:
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 dall'istanza Cloud SQL tramite la VM host bastion per raggiungere internet.
Aggiungi le route corrispondenti per ogni endpoint Microsoft Entra ID. Puoi trovare gli intervalli IP attuali nella sezione
AzureActiveDirectorydel file di risorse Azure IP Ranges and Service Tags. Ad esempio, gli endpoint di accesso di Microsoft Entra ID, comelogin.microsoftonline.com, utilizzano indirizzi IP negli intervalli20.190.128.0/18e40.126.0.0/18.gcloud
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 nella pagina Indirizzo IP dello stato del certificato DigiCert.
Se non completi questo passaggio, l'autenticazione Microsoft Entra ID potrebbe comunque funzionare, ma potresti anche riscontrare ritardi nell'apertura di nuove connessioni.
Gestisci 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 e l'ID applicazione (ID client) specifici della registrazione dell'app che hai configurato nel portale Azure.
Per saperne di più, consulta i Prerequisiti.
gcloud
gcloud 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: la versione dell'istanza che vuoi utilizzare, ad esempio
SQLSERVER_2025_STANDARD. - TIER: il livello dell'istanza o il tipo di macchina 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 di Microsoft Entra.
- APPLICATION_ID: l'ID applicazione o client.
Un esempio potrebbe essere il seguente:
gcloud sql instances create my-entraid-instance \
--database-version=SQLSERVER_2025_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 una richiesta JSON, consulta 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: la versione 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 dell'istanza o il tipo di macchina che vuoi utilizzare, ad esempio
db-custom-2-3840. - NETWORK: il nome della rete che vuoi utilizzare.
- TENANT_ID: l'ID tenant di 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 una richiesta JSON, consulta 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: la versione 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 dell'istanza o il tipo di macchina che vuoi utilizzare, ad esempio
db-custom-2-3840. - NETWORK: il nome della rete che vuoi utilizzare.
- TENANT_ID: l'ID tenant di 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 i valori eliminati dell'ID tenant e dell'ID applicazione (client).
Questa procedura non prevede l'unione o la disunione 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 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 di 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 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 una richiesta JSON, consulta 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 di 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 una richiesta JSON, consulta 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 di 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"
}
Aggiungi il certificato all'applicazione
Affinché Microsoft Entra ID possa autenticare 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 per l'istanza per Microsoft Entra ID.
gcloud
gcloud 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 dell'istanza per ottenere i dettagli del certificato appena creato:
gcloud
gcloud 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 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 di 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 al seguente:
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 di 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 al seguente:
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 appena creato.
Aggiungi il certificato al portale di Azure.
- Vai alla sezione Registrazione app nel portale di Azure.
- Apri Certificates & secrets (Certificati e secret).
- Seleziona Carica certificato. Sfoglia per trovare il file del certificato recuperato dall'istanza e aggiungilo.
- Fai clic su OK.
Ruota il certificato Microsoft Entra ID
Devi ruotare il certificato Microsoft Entra ID prima della scadenza. Ti consigliamo di avviare questa procedura almeno una settimana prima della data di scadenza prevista:
Segui i passaggi descritti in Aggiungi il certificato all'applicazione per creare un nuovo certificato non attivo nell'istanza Cloud SQL per SQL Server e poi caricalo in Microsoft Entra ID utilizzando il portale Azure. Questa operazione non influisce sul certificato attivo corrente.
Attiva il nuovo certificato nell'istanza Cloud SQL per SQL Server, in modo che Cloud SQL per SQL Server inizi a utilizzarlo per tutte le nuove autenticazioni.
gcloud
gcloud sql ssl entraid-certs rotate --instance=INSTANCE_NAMESostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza associata al certificato di cui vuoi eseguire la rotazione.
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.
Ora l'istanza 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ù, consulta Aggiungi e gestisci le credenziali dell'applicazione in Microsoft Entra ID.
Esegui il rollback del certificato Microsoft Entra ID
Se riscontri problemi dopo la rotazione 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 nell'istanza Cloud SQL per SQL Server.
gcloud
gcloud 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, consulta 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 quello precedente, 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 una richiesta JSON, consulta 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 quello precedente, 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 nell'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 gli accessi Microsoft Entra ID.
- ENTRAID_USER: il nome utente di 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 una richiesta JSON, consulta 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 di 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 una richiesta JSON, consulta 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 di 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 con quell'utente.
Crea accessi Microsoft Entra ID successivi.
Puoi creare e gestire altri 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 di 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 di Microsoft Entra ID.
Per creare utenti in base agli accessi 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 Configura l'autenticazione Microsoft Entra per SQL Server con la registrazione dell'app.
Best practice
Per 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 saperne di più, consulta Come registrare un'applicazione in Microsoft Entra ID.
Risoluzione dei problemi
Le sezioni seguenti consentono di risolvere i problemi che potresti riscontrare durante la gestione dell'integrazione di Microsoft Entra ID.
Problemi di connettività di rete con istanze con IP privato
Durante la configurazione dell'integrazione, potresti riscontrare alcuni dei seguenti problemi:
- Operazioni lente per creare accessi Microsoft Entra ID
- Impossibile creare gli 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 appena creata utilizzando il protocollo RDP (Remote Desktop Protocol) o il protocollo SSH (Secure Shell). Quindi, esegui questi comandi per testare la raggiungibilità. Questi passaggi possono essere applicati sia alle VM basate su Linux che 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 dei bastion host.
- 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 attivare l'autenticazione Microsoft Entra ID senza disattivare l'autenticazione Microsoft Active Directory esistente:
- Esecuzione di una migrazione in fasi. 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 attivi contemporaneamente sia Microsoft Active Directory sia Microsoft Entra ID.
Logging
Per i report su errori e avvisi di base, ad esempio se Microsoft Entra ID è abilitato, utilizza il log sqlserver.err standard. Per informazioni più dettagliate sul monitoraggio e sulla risoluzione dei problemi, utilizza il log entraid.log, che offre informazioni come:
- Fornisce lo stato della connettività per ogni endpoint richiesto.
- Segnala i dettagli relativi alle autorizzazioni API mancanti.
- Indica il numero di giorni rimanenti prima della scadenza del certificato client.
- Fornisce errori interni specifici, ad esempio errori di acquisizione dei token, che potrebbero aiutarti a individuare la causa di un problema.
Le voci di log vengono aggiornate su base giornaliera o ogni volta che cambia uno stato.
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 replica di lettura associata viene configurata automaticamente per utilizzare Microsoft Entra, poiché l'identità non cambia.
- Le modifiche all'ID tenant, all'ID applicazione o ai certificati dell'istanza principale vengono propagate automaticamente alle repliche di lettura associate all'istanza.
Pool di lettura gestiti
- Le modifiche all'ID tenant, all'ID applicazione o ai certificati dell'istanza principale vengono propagate automaticamente ai pool di lettura gestiti associati all'istanza.
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 che non è quella principale.
In questi casi, devi attivare manualmente Microsoft Entra ID sulla 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 o versioni successive; 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 abilitare l'autenticazione Microsoft Entra ID su un'istanza regionale con un IP pubblico e l'accesso privato ai servizi, l'istanza deve essere configurata per l'utilizzo con una route di accesso privato ai servizi da una VM bastion.
- Per abilitare l'autenticazione Microsoft Entra ID su un'istanza regionale che utilizza Private Service Connect e l'accesso privato ai servizi, l'istanza deve essere configurata per l'utilizzo con una route di accesso privato ai servizi da una VM bastion.
Passaggi successivi
- Scopri di più su Microsoft Entra ID