Come configurare il controllo di accesso per l'area di lavoro di Azure Synapse
Questo articolo illustra la procedura per il controllo di accesso a un'area di lavoro di Microsoft Azure Synapse. A tale scopo serve una combinazione di ruoli di Azure, ruoli di Azure Synapse, autorizzazioni SQL e autorizzazioni Git.
Grazie a questa guida, sarà possibile configurare un'area di lavoro e un sistema di controllo di accesso di base. Queste informazioni possono essere utilizzate in molti tipi di progetti Synapse. Inoltre, vengono illustrate le opzioni avanzate per un controllo con granularità più fine, se fosse necessario.
Il controllo di accesso di Synapse può essere semplificato allineando ruoli e persone dell'organizzazione con i gruppi di sicurezza. In questo modo è possibile gestire l'accesso ai gruppi di sicurezza, semplicemente aggiungendo e rimuovendo gli utenti.
Prima di iniziare questa procedura dettagliata, leggere la Panoramica del controllo di accesso di Azure Synapse per acquisire familiarità con i meccanismi di controllo di accesso usati da Synapse Analytics.
Meccanismi di controllo di accesso
Nota
Questa guida fornisce indicazioni per creare gruppi di sicurezza. Quando si assegnano ruoli a questi gruppi di sicurezza, è sufficiente gestire le appartenenze all'interno di tali gruppi per controllare l'accesso alle aree di lavoro.
Per proteggere un'area di lavoro Synapse, è necessario configurare i seguenti elementi:
- Gruppi di sicurezza per raggruppare gli utenti con requisiti di accesso simili.
- Ruoli di Azure per controllare chi può creare e gestire pool SQL, pool di Apache Spark e runtime di integrazione e accedere all'archiviazione ADLS Gen2.
- Ruoli di Synapse per controllare l'accesso agli artefatti di codice pubblicati, all'uso delle risorse di calcolo di Apache Spark e ai runtime di integrazione.
- Autorizzazioni di SQL per controllare l'accesso amministrativo e del piano dati ai pool SQL.
- Autorizzazioni Git, per controllare chi può accedere agli artefatti di codice nel controllo del codice sorgente, se si configura il supporto Git per le aree di lavoro.
Passaggi per proteggere un'area di lavoro Synapse
Per semplificare le istruzioni, nella documentazione vengono usati nomi standard. Sostituirli con i nomi desiderati.
Impostazione | Nome standard | Descrizione |
---|---|---|
Area di lavoro Synapse | workspace1 |
Il nome che verrà assegnato all'area di lavoro di Azure Synapse. |
Account ADLSGEN2 | storage1 |
L'account ADLS da usare con l'area di lavoro. |
Contenitore | container1 |
Il contenitore in storage1 che verrà usato nell'area di lavoro per impostazione predefinita. |
Tenant Microsoft Entra ID | contoso |
Nome del tenant Microsoft Entra ID. |
Entità servizio | SERVICEPRINCIPAL |
Un'entità servizio nel tenant di Microsoft Entra ID. |
Passaggio 1: configurare i gruppi di sicurezza
Suggerimento
È consigliabile usare opzioni granulari per controllare l'accesso all'area di lavoro, concedendo agli sviluppatori l'accesso alle singole risorse anziché a un'intera area. Altre informazioni sul controllo degli accessi in base al ruolo di Synapse
Creare i gruppi di sicurezza seguenti per l'area di lavoro:
workspace1_SynapseAdministrators
, per gli utenti che necessitano di un controllo completo su un'area di lavoro. Aggiungere se stessi a questo gruppo di sicurezza, almeno inizialmente.workspace1_SynapseContributors
, per gli sviluppatori che hanno l'esigenza di sviluppare, eseguire il debug e pubblicare codice in un servizio.workspace1_SynapseComputeOperators
, per gli utenti che devono gestire e monitorare i pool di Apache Spark e i runtime di integrazione.workspace1_SynapseCredentialUsers
, per gli utenti che devono eseguire il debug e le pipeline di orchestrazione usando le credenziali MSI dell'area di lavoro (identità del servizio gestito), e annullare le esecuzioni della pipeline.
A breve, sarà possibile assegnare i ruoli di Synapse a questi gruppi nell'ambito dell'area di lavoro.
Creare anche questo gruppo di sicurezza:
workspace1_SQLAdmins
, gruppo per gli utenti che necessitano dell'autorità di amministratore di SQL Active Directory all'interno dei pool SQL dell'area di lavoro.
Gruppo workspace1_SQLAdmins
per configurare le autorizzazioni SQL quando si creano pool SQL.
Questi cinque gruppi sono sufficienti per una configurazione di base. Successivamente, è possibile aggiungere gruppi di sicurezza per gestire gli utenti che necessitano di un accesso più specializzato o per limitare l'accesso solo alle singole risorse.
Nota
- Informazioni su come creare un gruppo di sicurezza in questo articolo: Creare un gruppo di base e aggiungere membri con Microsoft Entra ID.
- Informazioni su come aggiungere un gruppo di sicurezza da un altro gruppo di sicurezza in questo articolo: Aggiungere o rimuovere un gruppo a/da un altro gruppo con Microsoft Entra ID.
- Durante la creazione di un gruppo di sicurezza, assicurarsi che il Tipo di gruppo sia Sicurezza. I gruppi di Microsoft 365 non sono supportati per Azure SQL.
Suggerimento
I singoli utenti di Synapse possono usare Microsoft Entra ID nel portale di Azure per visualizzare le appartenenze ai gruppi. In questo modo è possibile determinare quali ruoli sono stati concessi.
Passaggio 2: preparare l'account di archiviazione di ADLS Gen2
Le aree di lavoro di Synapse utilizzano contenitori di archiviazione predefiniti per:
- L'archiviazione di file di dati di backup per le tabelle Spark
- Eseguire i log per i processi Spark
- La gestione delle librerie che si sceglie di installare
L'identificazione delle seguenti informazioni sull'archiviazione:
L'account ADLS Gen2 da utilizzare per l'area di lavoro. In questa documentazione è denominato
storage1
.storage1
è considerato l'account di archiviazione "primario" per l'area di lavoro.Il contenitore in
storage1
che verrà usato, per impostazione predefinita, nell'area di lavoro di Synapse. In questa documentazione è denominatocontainer1
.Seleziona Controllo di accesso (IAM).
Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo.
Assegnare il ruolo seguente. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.
Impostazione Valore Ruolo Collaboratore dati BLOB di archiviazione Assegna accesso a SERVICEPRINCIPAL
Membri workspace1_SynapseAdministrators, workspace1_SynapseContributors e workspace1_SynapseComputeOperators
Passaggio 3: creare e configurare l'area di lavoro di Synapse
Nel portale di Azure, creare un'area di lavoro di Synapse:
Selezionare la propria sottoscrizione
Selezionare o creare un gruppo di risorse per il quale si ha un ruolo di Proprietariodi Azure.
Assegnare un nome all'area di lavoro
workspace1
Scegliere
storage1
per l'account di archiviazioneScegliere
container1
per il contenitore che viene utilizzato come "filesystem".Aprire
workspace1
in Synapse StudioIn Synapse Studio, passare a Gestisci>Controllo di accesso. In ambito area di lavoro, assegnare i ruoli di Synapse ai gruppi di sicurezza, come indicato di seguito:
- Assegnare il ruolo di Amministratore di Synapse a
workspace1_SynapseAdministrators
- Assegnare il ruolo di Collaboratore di Synapse a
workspace1_SynapseContributors
- Assegnare il ruolo di Operatore di calcolo di Synapse a
workspace1_SynapseComputeOperators
- Assegnare il ruolo di Amministratore di Synapse a
Passaggio 4: concedere l'accesso MSI dell'area di lavoro al contenitore di archiviazione predefinito
Per eseguire pipeline e svolgere attività di sistema, Azure Synapse richiede l'identità del servizio gestito (MSI) per accedere a container1
nell'account ADLS Gen2 predefinito per l'area di lavoro. Per altre informazioni, vedere Identità gestita dell'area di lavoro di Azure Synapse.
Aprire il portale di Azure
Individuare l'account di archiviazione,
storage1
e poicontainer1
.Seleziona Controllo di accesso (IAM).
Per aprire la pagina Aggiungi assegnazione di ruolo, selezionare Aggiungi>Aggiungi assegnazione di ruolo.
Assegnare il ruolo seguente. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.
Impostazione Valore Ruolo Collaboratore dati BLOB di archiviazione Assegna accesso a MANAGEDIDENTITY Membri nome identità gestita Nota
Il nome dell'identità gestita è anche il nome dell'area di lavoro.
Passaggio 5: concedere agli amministratori di Synapse un ruolo di Collaboratore di Azure per l'area di lavoro
Per creare pool SQL, pool di Apache Spark e runtime di integrazione, gli utenti devono avere almeno il ruolo di Collaboratore di Azure per l'area di lavoro. Un ruolo di Collaboratore consente inoltre agli utenti di gestire le risorse, inclusi la sospensione e il ridimensionamento. Per utilizzare il portale di Azure o Synapse Studio per creare pool SQL, pool di Apache Spark e runtime di integrazione, è necessario avere un ruolo di Collaboratore a livello di gruppo di risorse.
Aprire il portale di Azure
Individuare l'area di lavoro,
workspace1
Seleziona Controllo di accesso (IAM).
Per aprire la pagina Aggiungi assegnazione di ruolo, selezionare Aggiungi>Aggiungi assegnazione di ruolo.
Assegnare il ruolo seguente. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.
Impostazione Valore Ruolo Collaboratore (elencato in "Ruoli di amministratore con privilegi") Assegna accesso a SERVICEPRINCIPAL
Membri workspace1_SynapseAdministrators
Passaggio 6: assegnare un ruolo di Amministratore SQL Active Directory
All'autore dell'area di lavoro viene assegnato automaticamente il ruolo di Amministratore di SQL Active Directory per l'area di lavoro. Questo ruolo può essere concesso solo a un singolo utente o a un gruppo. In questo passaggio si assegna l'amministratore di SQL Active Directory per l'area di lavoro al gruppo di sicurezza workspace1_SQLAdmins
. In questo modo si concede al gruppo un accesso di amministratore con privilegi elevati a tutti i database e pool SQL nell'area di lavoro.
- Aprire il portale di Azure
- Passare a
workspace1
- In Impostazioni, selezionare Microsoft Entra ID
- Selezionare Imposta amministratore, quindi scegliere
workspace1_SQLAdmins
Nota
Il passaggio 6 è facoltativo. È possibile scegliere di concedere al workspace1_SQLAdmins
gruppo un ruolo con privilegi inferiori. Per assegnare db_owner
o altri ruoli SQL, è necessario eseguire script in ogni database SQL.
Passaggio 7: concedere l'accesso ai pool SQL
Per impostazione predefinita, all'amministratore di Synapse viene concesso anche il ruolo SQL db_owner
per i pool SQL serverless nell'area di lavoro.
L'accesso ai pool SQL per altri utenti è controllato dalle autorizzazioni SQL. L'assegnazione delle autorizzazioni SQL richiede l'esecuzione di script SQL in ogni database dopo la creazione. Di seguito sono riportati alcuni esempi che richiedono l'esecuzione di questi script:
Concedere agli utenti l'accesso al pool SQL serverless, 'predefinti' e ai relativi database.
Concedere agli utenti l'accesso ai database del pool SQL dedicato. Gli script SQL di esempio sono riportati più avanti in questo articolo.
Per concedere l'accesso a un database del pool SQL dedicato, gli script possono essere eseguiti dall'autore dell'area di lavoro o da qualsiasi membro del gruppo
workspace1_SynapseAdministrators
.Per concedere l'accesso al pool SQL serverless, gli script 'predefiniti', possono essere eseguiti da qualsiasi membro del gruppo
workspace1_SQLAdmins
o del gruppoworkspace1_SynapseAdministrators
.
Suggerimento
È possibile concedere l'accesso a tutti i database SQL eseguendo i passaggi seguenti per ogni pool SQL. La sezione Configurare le autorizzazioni con ambito area di lavoro è un'eccezione alla regola e consente di assegnare un ruolo di amministratore di sistema a livello di area di lavoro.
Passaggio 7a: pool SQL serverless, predefinito
È possibile usare gli esempi di script presenti in questa sezione per concedere agli utenti l'autorizzazione per accedere a un singolo database o a tutti i database nel pool SQL serverless, Built-in
.
Nota
Negli esempi di script sostituire l'alias con l'alias dell'utente o del gruppo al quale viene concesso l'accesso. Sostituire il dominio con il dominio aziendale in uso.
Configurare le autorizzazioni con ambito database
È possibile concedere agli utenti l'accesso a un singolo database SQL serverless eseguendo i passaggi descritti in questo esempio:
Creare un account di accesso. Passare al contesto del database
master
.--In the master database CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
Creare un utente nel database. Modificare il contesto nel database.
-- In your database CREATE USER alias FROM LOGIN [alias@domain.com];
Aggiungere l'utente come membro del ruolo specificato nel database (in questo caso, il ruolo db_owner).
ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
Configurare le autorizzazioni con ambito area di lavoro
È possibile concedere l'accesso completo a tutti i pool SQL serverless nell'area di lavoro. Eseguire lo script riportato in questo esempio nel database master
:
CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];
Passaggio 7b: configurare pool SQL dedicati
È possibile concedere l'accesso a un singolo database del pool SQL dedicato. Eseguire questi passaggi nell'editor di script SQL di Azure Synapse:
Creare un utente nel database eseguendo i comandi riportati di seguito. Selezionare il database di destinazione nell'elenco a discesa Connetti a:
--Create user in the database CREATE USER [<alias@domain.com>] FROM EXTERNAL PROVIDER; -- For Service Principals you would need just the display name and @domain.com is not required
Concedere all'utente un ruolo per l'accesso al database:
--Grant role to the user in the database EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
Importante
I ruoli del database db_datareader e db_datawriter possono fornire autorizzazioni di lettura/scrittura quando non si desidera concedere autorizzazioni di tipo db_owner. Tuttavia, l’autorizzazione db_owner è necessaria per consentire agli utenti di Spark di leggere e scrivere direttamente da Spark in/da un pool SQL.
È possibile eseguire query per confermare che i pool SQL serverless possono eseguire query sugli account di archiviazione, dopo aver creato gli utenti.
Passaggio 8: aggiungere utenti ai gruppi di sicurezza
La configurazione iniziale per il sistema di controllo di accesso è stata completata.
È ora possibile aggiungere e rimuovere utenti ai/dai gruppi di sicurezza configurati per gestire l'accesso. È possibile assegnare manualmente gli utenti ai ruoli di Azure Synapse, ma in questo modo si impostano le autorizzazioni in modo incongruente. In alternativa, aggiungere o rimuovere gli utenti ai/dai propri gruppi di sicurezza.
Passaggio 9: sicurezza di rete
Come passaggio finale, per proteggere l'area di lavoro si consiglia di proteggere l'accesso alla rete usando il firewall dell'area di lavoro.
- Con o senza una rete virtuale gestita, è possibile connettersi all'area di lavoro dalle reti pubbliche. Per altre informazioni, vedere Impostazioni di connettività.
- L'accesso dalle reti pubbliche può essere controllato abilitando la funzionalità di accesso alla rete pubblica o il firewall dell'area di lavoro.
- In alternativa, è possibile connettersi all'area di lavoro usando un endpoint privato gestito e un collegamento privato. Le aree di lavoro di Azure Synapse senza rete virtuale gestita di Azure Synapse Analytics non sono in grado di connettersi tramite endpoint privati gestiti.
Passaggio 10: completamento
L'area di lavoro è ora completamente configurata e protetta.
Supporto di scenari più avanzati
Questa guida è incentrata sulla configurazione di un sistema di controllo di accesso di base. È possibile supportare scenari più avanzati creando gruppi di sicurezza aggiuntivi e assegnando a questi gruppi ruoli più granulari in ambiti più specifici. Prendere in considerazione i casi seguenti:
Abilitare il supporto Git per l'area di lavoro per scenari di sviluppo più avanzati, inclusi CI/CD. In modalità Git, le autorizzazioni Git e il controllo degli accessi in base al ruolo di Synapse determineranno se un utente può eseguire il commit delle modifiche nel ramo di lavoro. La pubblicazione nel servizio avviene solo dal ramo di collaborazione. Considerare la creazione di un gruppo di sicurezza per gli sviluppatori che devono sviluppare ed eseguire il debug di aggiornamenti in un ramo di lavoro, ma non hanno la necessità di pubblicare le modifiche nel servizio Live.
Limitare l'accesso degli sviluppatori a risorse specifiche. Creare dei gruppi di sicurezza aggiuntivi con granularità più fine per gli sviluppatori che devono accedere solo a risorse specifiche. Assegnare a questi gruppi, ruoli di Azure Synapse appropriati, che abbiano come ambito pool di Spark specifici, runtime di integrazione o credenziali.
Limitare l'accesso degli operatori agli artefatti di codice. Creare gruppi di sicurezza per gli operatori che devono monitorare lo stato operativo delle risorse di calcolo di Synapse e visualizzare i log, ma che non hanno la necessità di accedere al codice o di pubblicare gli aggiornamenti nel servizio. Assegnare a questi gruppi il ruolo di Operatore di calcolo con ambito pool di Spark e runtime di integrazione specifici.
Disabilitare l'autenticazione locale. Consentendo solo l'autenticazione di Microsoft Entra, è possibile gestire centralmente l'accesso alle risorse di Azure Synapse, quali i pool SQL. L'autenticazione locale per tutte le risorse all'interno dell'area di lavoro, può essere disabilitata durante o dopo la creazione dell'area di lavoro. Per altre informazioni sull'autenticazione solo per Microsoft Entra, vedere Disabilitazione dell'autenticazione locale in Azure Synapse Analytics.