Connettiti all'archiviazione BLOB
In qualità di amministratore BigQuery, puoi creare connection per consentire agli analisti di dati di accedere archiviati in Archiviazione BLOB di Azure.
BigQuery Omni accede all'archiviazione BLOB tramite connessioni. Esistono due metodi per accedere in modo sicuro ai dati da Blob Storage. Puoi utilizzare la federazione delle identità concedendo un l'accesso all'account di servizio Google Cloud alla tua applicazione Azure; oppure puoi concedere direttamente l'accesso alla tua applicazione Azure Active Directory (AD) del tenant:
Utilizza un'identità federata Azure. Questo è l'approccio consigliato. BigQuery Omni supporta l'identità dei carichi di lavoro di Azure dell'AI. Con BigQuery Omni che supporta la federazione delle identità per i carichi di lavoro di Azure, puoi concedere a un account di servizio Google l'accesso all'applicazione Azure all'interno del tenant. Confederato l'accesso all'identità è più sicuro rispetto all'accesso non federato perché esistente all'interno del tenant di Azure. L'interfaccia utente del client i secret non sono gestiti da te o da Google.
Con la federazione delle identità hai un maggiore controllo sull'applicazione esiste un'applicazione a cui hai concesso l'accesso ai tuoi dati del tenant.
Utilizza un'identità non federata. L'annuncio di servizio obbligatorio (MSA) che informa i clienti del ritiro dell'utilizzo di un'identità non federata per accedere all'applicazione Azure è stato inviato ai partner e ai clienti interessati il 20 giugno 2023, fornendo notifica prima dell'entrata in vigore delle modifiche l'8 gennaio 2024. Valuta la possibilità di utilizzare un'identità federata Azure. Ogni connessione non federata ha la propria Azure Active Directory (Azure AD) univoca. applicazione. Le autorizzazioni vengono concesse alle applicazioni tramite identità e accesso di Azure Ruoli di gestione (IAM). I ruoli IAM Azure concessi determinano i dati BigQuery può accedere per ogni connessione.
Dopo aver creato una connessione BigQuery Azure, puoi eseguire una query sul Dati di Archiviazione BLOB oppure esportare i risultati delle query in Archiviazione BLOB.
Prima di iniziare
Assicurati di aver creato le risorse seguenti:
Un progetto Google Cloud con API BigQuery Connection in un bucket con il controllo delle versioni attivo.
Se utilizzi il modello di prezzi basato sulla capacità, assicurati di aver abilitato API BigQuery Reservation per il tuo progetto. Per informazioni sui prezzi, consulta Prezzi di BigQuery Omni.
Un tenant Azure con una sottoscrizione Azure.
Un account Archiviazione di Azure che soddisfi le seguenti specifiche:
È un account V2 per uso generico o un account Blob Storage.
Utilizza uno spazio dei nomi gerarchico. Per ulteriori informazioni, consulta la sezione Creare un di archiviazione da utilizzare con Azure Data Lake Storage Gen2.
I dati vengono compilati in uno dei formati supportati.
I dati si trovano nella regione
azure-eastus2
.
Ruoli obbligatori
-
Per ottenere le autorizzazioni necessarie per creare una connessione per accedere ai dati di Archiviazione BLOB di Azure, chiedi all'amministratore di concederti Ruolo IAM Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin
) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
-
Assicurati di disporre delle seguenti autorizzazioni IAM Azure per il tenant:
Application.ReadWrite.All
AppRoleAssignment.ReadWrite.All
Quote
Per ulteriori informazioni sulle quote, consulta API BigQuery Connection.
Usa un'identità federata Azure
Per accedere ai dati utilizzando un'identità federata, segui questi passaggi:
- Crea un'applicazione nel tenant di Azure.
- Crea la connessione Azure su BigQuery.
- Aggiungi una credenziale federata.
- Assegna un ruolo alle applicazioni BigQuery Azure AD.
Per ulteriori informazioni sull'uso delle credenziali di identità federate per accedere ai dati In Azure, consulta Federazione delle identità per i carichi di lavoro.
Crea un'applicazione nel tenant di Azure
Per creare un'applicazione nel tenant di Azure, segui questi passaggi:
Portale Azure
Nel portale Azure, vai a Registrazioni app, quindi fai clic su Nuovo registrazione.
In Nomi, inserisci un nome per l'applicazione.
Per Tipi di account supportati, seleziona Account in questa organizzazione della directory di amministrazione.
Per registrare la nuova applicazione, fai clic su Registra.
Prendi nota dell'ID applicazione (client). Devi fornire questo ID quando crei la connessione.
Terraform
Aggiungi quanto segue al file di configurazione Terraform:
resource "azuread_application" "example" { display_name = "bigquery-omni-connector" } resource "azuread_service_principal" "example" { application_id = azuread_application.example.application_id app_role_assignment_required = false }
Per ulteriori informazioni, scopri come registrare un'applicazione in Azure.
Crea una connessione
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nella finestra Aggiungi dati
seleziona Origine dati esterna.Nel riquadro Origine dati esterna, inserisci le seguenti informazioni:
- Per Tipo di connessione, seleziona BigLake su Azure (tramite BigQuery Omni).
- In ID connessione, inserisci un identificatore per la connessione. risorsa. Puoi utilizzare lettere, numeri, trattini e trattini bassi.
- Seleziona la località in cui vuoi creare la connessione.
- (Facoltativo) In Nome semplice, inserisci un nome semplice per
la connessione, ad esempio
My connection resource
. Il nome descrittivo può essere qualsiasi valore che ti aiuti a identificare la risorsa di connessione dovrai modificarlo in seguito. - (Facoltativo) Per Descrizione, inserisci una descrizione per risorsa di connessione.
- Per ID tenant Azure, inserisci l'ID tenant Azure, che è anche chiamato ID directory (tenant).
Seleziona la casella di controllo Usa identità federata e inserisci il valore ID applicazione federata Azure (client).
Per informazioni su come ottenere gli ID Azure, consulta Creare un'applicazione nel tuo tenant di Azure.
Fai clic su Crea connessione.
Fai clic su Vai alla connessione.
Nella sezione Informazioni sulla connessione, tieni presente che Il valore dell'identità Google BigQuery, ovvero l'ID account di servizio. Questo ID è per all'account di servizio Google Cloud che autorizzi ad accedere alla tua applicazione.
Terraform
resource "google_bigquery_connection" "connection" { connection_id = "omni-azure-connection" location = "azure-eastus2" description = "created by terraform" azure { customer_tenant_id = "TENANT_ID" federated_application_client_id = azuread_application.example.application_id } }
Sostituisci TENANT_ID
con l'ID tenant di Azure
che contiene l'account Archiviazione BLOB.
bq
Usa il comando bq mk
. A
per ottenere l'output in formato JSON, utilizza il parametro --format=json
.
bq mk --connection --connection_type='Azure' \ --tenant_id=TENANT_ID \ --location=AZURE_LOCATION \ --federated_azure=true \ --federated_app_client_id=APP_ID \ CONNECTION_ID
Sostituisci quanto segue:
TENANT_ID
: l'ID tenant della directory Azure che contiene l'account Archiviazione di Azure.AZURE_LOCATION
: la regione Azure in cui in cui si trovano i dati di Archiviazione di Azure. BigQuery Omni supporta regioneazure-eastus2
.APP_ID
: l'ID applicazione Azure (client). A per informazioni su come ottenere questo ID, consulta Creare un'applicazione nel tenant di Azure.CONNECTION_ID
: il nome della connessione.
L'output è simile al seguente:
Connection CONNECTION_ID successfully created Please add the following identity to your Azure application APP_ID Identity: SUBJECT_ID
Questo output include i seguenti valori:
APP_ID
: l'ID dell'applicazione che è stato creato.SUBJECT_ID
: l'ID di Google Cloud l'account di servizio autorizzato dall'utente ad accedere all'applicazione. Questo valore è obbligatorio quando crei una credenziale federata in Azure.
Prendi nota di APP_ID
e SUBJECT_ID
da usare nei passaggi successivi.
Quindi, aggiungi una credenziale federata per la tua applicazione.
Aggiungi una credenziale federata
Per creare una credenziale federata, segui questi passaggi:
Portale Azure
Nel portale Azure, vai a Registrazioni app, quindi fai clic sulla tua un'applicazione.
Seleziona Certificati e secret > Credenziali federate > Aggiungi credenziali. Poi segui questi passaggi:
Dall'elenco Scenario relativo alle credenziali federate, seleziona Altro emittente.
In Issuer (Emittente), inserisci
https://accounts.google.com
.In Identificatore oggetto, inserisci l'identità Google BigQuery di all'account di servizio Google Cloud che hai ricevuto quando hai creato la connessione.
In Nome, inserisci un nome per la credenziale.
Fai clic su Aggiungi.
Terraform
Aggiungi quanto segue al file di configurazione Terraform:
resource "azuread_application" "example" { display_name = "bigquery-omni-connector" } resource "azuread_service_principal" "example" { application_id = azuread_application.example.application_id app_role_assignment_required = false } resource "azuread_application_federated_identity_credential" "example" { application_object_id = azuread_application.example.object_id display_name = "omni-federated-credential" description = "BigQuery Omni federated credential" audiences = ["api://AzureADTokenExchange"] issuer = "https://accounts.google.com" subject = google_bigquery_connection.connection.azure[0].identity }
Per maggiori informazioni, vedi Configurare un'app per considerare attendibile un provider di identità esterno.
Assegnare un ruolo alle applicazioni Azure di BigQuery
Per assegnare un ruolo all'applicazione Azure di BigQuery, utilizza Portale Azure, Azure PowerShell o l'API REST Microsoft Management:
Portale Azure
Puoi eseguire assegnazioni dei ruoli nel portale Azure accedendo come utente
con l'autorizzazione Microsoft.Authorization/roleAssignments/write
. Il ruolo
consente alla connessione BigQuery Azure di accedere
Dati di Archiviazione di Azure come specificato nel criterio dei ruoli.
Per aggiungere assegnazioni dei ruoli utilizzando il portale Azure, segui questi passaggi:
Dal tuo account Archiviazione di Azure, inserisci
IAM
nella barra di ricerca.Fai clic su Controllo degli accessi (IAM).
Fai clic su Aggiungi e seleziona Aggiungi assegnazioni ruoli.
Per fornire l'accesso di sola lettura, seleziona il ruolo Lettore dati BLOB di archiviazione. Per fornire l'accesso in lettura/scrittura, seleziona la casella Dati BLOB di archiviazione Collaboratore.
Imposta Assegna accesso a su Utente, gruppo o entità servizio.
Fai clic su Seleziona membri.
Nel campo Seleziona, inserisci il nome dell'applicazione Azure che che hai fornito quando hai creato l'applicazione nel tenant di Azure.
Fai clic su Salva.
Per ulteriori informazioni, consulta Assegnare ruoli Azure utilizzando portale.
Terraform
Aggiungi quanto segue al file di configurazione Terraform:
resource "azurerm_role_assignment" "data-contributor-role" { scope = data.azurerm_storage_account.example.id # Read-write permission for Omni on the storage account role_definition_name = "Storage Blob Data Contributor" principal_id = azuread_service_principal.example.id }
Azure PowerShell
Per aggiungere un'assegnazione del ruolo per un'entità di servizio in un ambito delle risorse, puoi:
Usa il comando New-AzRoleAssignment
:
New-AzRoleAssignment` -SignInName APP_NAME` -RoleDefinitionName ROLE_NAME` -ResourceName RESOURCE_NAME` -ResourceType RESOURCE_TYPE` -ParentResource PARENT_RESOURCE` -ResourceGroupName RESOURCE_GROUP_NAME
Sostituisci quanto segue:
APP_NAME
: il nome dell'applicazione.ROLE_NAME
: il nome del ruolo che vuoi assegnare.RESOURCE_NAME
: il nome della risorsa.RESOURCE_TYPE
: tipo di risorsa.PARENT_RESOURCE
: la risorsa padre.RESOURCE_GROUP_NAME
: nome del gruppo di risorse.
Per ulteriori informazioni sull'utilizzo di Azure PowerShell per aggiungere un nuovo servizio vedi Assegnare ruoli di Azure utilizzando Azure PowerShell.
Interfaccia a riga di comando di Azure
Per aggiungere un'assegnazione del ruolo per un'entità di servizio in un ambito delle risorse, puoi:
lo strumento a riga di comando di Azure. Devi disporre dei
Autorizzazione Microsoft.Authorization/roleAssignments/write
per l'archiviazione
per concedere i ruoli.
Per assegnare un ruolo, ad esempio il ruolo Collaboratore dati BLOB di archiviazione, alla
service principal, esegui il comando az role assignment create
:
az role assignment create --role "Storage Blob Data Contributor" \ --assignee-object-id ${SP_ID} \ --assignee-principal-type ServicePrincipal \ --scope subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME
Sostituisci quanto segue:
SP_ID
: l'ID entità servizio. Questo servizio relativo all'applicazione che hai creato. Per ottenere l'entità servizio per una connessione federata, vedi Entità servizio .STORAGE_ACCOUNT_NAME
: il nome dell'account di archiviazione.RESOURCE_GROUP_NAME
: nome del gruppo di risorse.SUBSCRIPTION_ID
: l'ID abbonamento.
Per maggiori informazioni, consulta Assegnare ruoli Azure utilizzando l'interfaccia a riga di comando di Azure.
API REST Microsoft
Per aggiungere assegnazioni dei ruoli per un'entità servizio, puoi inviare una richiesta a Microsoft Management.
Per chiamare l'API REST Microsoft Graph,
recuperare un token OAuth per un'applicazione. Per ulteriori informazioni, consulta la sezione Come ottenere
senza un utente.
L'applicazione che ha chiamato l'API REST Microsoft Graph deve avere
l'autorizzazione dell'applicazione Application.ReadWrite.All
.
Per generare un token OAuth, esegui questo comando:
export TOKEN=$(curl -X POST \ https://login.microsoftonline.com/TENANT_ID/oauth2/token \ -H 'cache-control: no-cache' \ -H 'content-type: application/x-www-form-urlencoded' \ --data-urlencode "grant_type=client_credentials" \ --data-urlencode "resource=https://graph.microsoft.com/" \ --data-urlencode "client_id=CLIENT_ID" \ --data-urlencode "client_secret=CLIENT_SECRET" \ | jq --raw-output '.access_token')
Sostituisci quanto segue:
TENANT_ID
: l'ID tenant corrispondente all'ID del Directory Azure che contiene l'account Archiviazione di Azure.CLIENT_ID
: l'ID client Azure.CLIENT_SECRET
: il client secret di Azure.
Recupera l'ID dei ruoli integrati di Azure da assegnare all'entità servizio.
Ecco alcuni ruoli comuni:
- Collaboratore dei dati BLOB di archiviazione:
ba92f5b4-2d11-453d-a403-e96b0029c9fe
- Lettore dati BLOB di archiviazione:
2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
Per assegnare un ruolo all'entità servizio, chiama l'API REST di Microsoft Graph all'API REST Azure Resource Management:
export ROLE_ASSIGNMENT_ID=$(uuidgen) curl -X PUT \ 'https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID?api-version=2018-01-01-preview' \ -H "authorization: Bearer ${TOKEN?}" \ -H 'cache-control: no-cache' \ -H 'content-type: application/json' \ -d '{ "properties": { "roleDefinitionId": "subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/providers/Microsoft.Authorization/roleDefinitions/ROLE_ID", "principalId": "SP_ID" } }'
Sostituisci quanto segue:
ROLE_ASSIGNMENT_ID
: l'ID del ruolo.SP_ID
: l'ID entità servizio. Questo servizio relativo all'applicazione che hai creato. Per ottenere l'entità servizio per una connessione federata, consulta Servizio dell'oggetto entità.SUBSCRIPTION_ID
: l'ID abbonamento.RESOURCE_GROUP_NAME
: nome del gruppo di risorse.STORAGE_ACCOUNT_NAME
: il nome dell'account di archiviazione.SUBSCRIPTION_ID
: l'ID abbonamento.
La connessione è ora pronta per l'uso. Tuttavia, potrebbe verificarsi un ritardo nella propagazione per un'assegnazione del ruolo in Azure. Se non riesci a utilizzare la connessione a causa di sui problemi di autorizzazione, riprova più tardi.
Utilizza un'identità non federata
Per accedere ai dati utilizzando un'identità non federata, segui questi passaggi:
- Crea la connessione Azure su BigQuery.
- Crea un'entità di servizio Azure AD.
- Assegna un ruolo alle applicazioni Azure AD di BigQuery.
Per saperne di più sull'uso di identità non federate per accedere ai dati in Azure, consulta Applicazione Azure AD.
Crea una connessione
Per connetterti a Blob Storage, utilizza la console Google Cloud o lo strumento a riga di comando bq:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nella finestra Aggiungi dati
seleziona Origine dati esterna.Nel riquadro Origine dati esterna, inserisci le seguenti informazioni:
- Per Tipo di connessione, seleziona BigLake su Azure (tramite BigQuery Omni).
- In ID connessione, inserisci un identificatore per la connessione. risorsa. Puoi utilizzare lettere, numeri, trattini e trattini bassi.
- Seleziona la località in cui vuoi creare la connessione.
- (Facoltativo) In Nome semplice, inserisci un nome semplice per
la connessione, ad esempio
My connection resource
. Il nome descrittivo può essere qualsiasi valore che ti aiuti a identificare la risorsa di connessione dovrai modificarlo in seguito. - (Facoltativo) Per Descrizione, inserisci una descrizione per risorsa di connessione.
- Per ID tenant Azure, inserisci l'ID tenant Azure, che è anche chiamato ID directory (tenant).
Fai clic su Crea connessione.
Fai clic su Vai alla connessione.
Nella sezione Informazioni sulla connessione, prendi nota dei valori di Azure ID app e Nome app Azure. Questi sono obbligatori quando assegni un ruolo al nell'applicazione Azure.
Terraform
resource "google_bigquery_connection" "connection" { connection_id = "omni-azure-connection" location = "azure-eastus2" description = "created by terraform" azure { customer_tenant_id = "TENANT_ID" federated_application_client_id = azuread_application.example.application_id } }
Sostituisci TENANT_ID
con l'ID tenant di Azure
che contiene l'account Archiviazione BLOB.
bq
Usa il comando bq mk
. A
per ottenere l'output in formato JSON, utilizza il parametro --format=json
.
bq mk --connection --connection_type='Azure' \ --tenant_id=TENANT_ID \ --location=AZURE_LOCATION \ CONNECTION_ID
Sostituisci quanto segue:
TENANT_ID
: l'ID tenant della directory Azure che contiene l'account Archiviazione di Azure.AZURE_LOCATION
: la regione Azure in cui in cui si trovano i dati di Archiviazione di Azure. BigQuery Omni supporta regioneazure-eastus2
.CONNECTION_ID
: l'ID della connessione.
L'output è simile al seguente:
Please create a Service Principal in your directory for appId: APP_ID, and perform role assignment to app: APP_NAME to allow BigQuery to access your Azure data.
Questo output include i seguenti valori:
APP_ID
: l'ID dell'applicazione che è stato creato.APP_NAME
: il nome dell'app che devi e assegnare ruoli affinché BigQuery possa accedere ai dati di Azure.
Prendi nota di APP_ID
e APP_NAME
da usare nei passaggi successivi.
Per ulteriori informazioni, vedi Creare una connessione.
Crea un'entità di servizio Azure AD
Per creare un'entità di servizio Azure AD, usa la console Google Cloud, Azure PowerShell, lo strumento a riga di comando di Azure o l'API REST di Microsoft Graph:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, fai clic sul collegamento che hai creato.
Nel riquadro Informazioni sulla connessione, fai clic su Accedi all'account Azure.
Accedi al tuo account Azure.
Nella pagina Autorizzazioni richieste, fai clic su Accetta.
Terraform
Aggiungi quanto segue al file di configurazione Terraform:
resource "azuread_application" "example" { display_name = "bigquery-omni-connector" } resource "azuread_service_principal" "example" { application_id = azuread_application.example.application_id app_role_assignment_required = false }
Azure PowerShell
Per creare l'entità servizio per l'ID app APP_ID
restituito in precedenza, l'utente deve avere
Autorizzazione Microsoft.directory/servicePrincipals/create
.
Per creare l'entità servizio, esegui il comando New-AzADServicePrincipal
:
New-AzADServicePrincipal` -ApplicationId APP_ID` -SkipAssignment
Sostituisci APP_ID
con l'ID app che è stato restituito
in precedenza.
Interfaccia a riga di comando di Azure
Per creare l'entità servizio per l'ID app APP_ID
restituito in precedenza, puoi usare
lo strumento a riga di comando di Azure. Tu
devi disporre dell'autorizzazione Microsoft.directory/servicePrincipals/create
per
per creare un'entità servizio.
Per creare l'entità servizio, esegui az ad sp
comando:
export SP_ID=$(az ad sp create --id APP_ID | jq --raw-output '.objectId')
Sostituisci APP_ID
con l'ID app che è stato restituito
in precedenza.
API REST Microsoft
Per creare l'entità servizio per l'ID app APP_ID
restituito in precedenza, puoi inviare una richiesta HTTP all'interfaccia
l'API REST del grafico.
Per chiamare l'API REST Microsoft Graph,
recuperare un token OAuth per un'applicazione. Per ulteriori informazioni, consulta la sezione Come ottenere
senza un utente.
L'applicazione utilizzata per chiamare l'API REST Microsoft Graph deve avere l'elemento Application.ReadWrite.All
autorizzazione dell'applicazione.
TENANT_ID
deve corrispondere all'ID della directory Azure che contiene la risorsa
Archiviazione di Azure.
Per generare un token OAuth, esegui questo comando:
export TOKEN=$(curl -X POST \ https://login.microsoftonline.com/TENANT_ID/oauth2/token \ -H 'cache-control: no-cache' \ -H 'content-type: application/x-www-form-urlencoded' \ --data-urlencode "grant_type=client_credentials" \ --data-urlencode "resource=https://graph.microsoft.com/" \ --data-urlencode "client_id=CLIENT_ID" \ --data-urlencode "client_secret=CLIENT_SECRET" \ | jq --raw-output '.access_token')
Sostituisci quanto segue:
TENANT_ID
: l'ID tenant della directory Azure che contiene l'account Archiviazione di Azure.CLIENT_ID
: l'ID client Azure.CLIENT_SECRET
: il client secret di Azure.
Esegui questo comando:
export APP_ID=APP_ID
Sostituisci APP_ID
con l'ID app che è stato restituito.
Per creare un'entità servizio chiamando l'API REST Microsoft Graph, esegui questo comando:
export SP_ID=$(curl -X POST \ https://graph.microsoft.com/v1.0/serviceprincipals \ -H "authorization: Bearer ${TOKEN?}" \ -H 'cache-control: no-cache' \ -H 'content-type: application/json' \ -d "{ \"appId\": \"${APP_ID?}\" }" | jq --raw-output '.id')
Sostituisci quanto segue:
TOKEN
: il token OAuth per l'applicazione.APP_ID
: l'ID app restituito in precedenza.
Assegna un ruolo alle applicazioni Azure AD di BigQuery
Portale Azure
Puoi eseguire assegnazioni dei ruoli nel portale Azure accedendo come utente
con l'autorizzazione Microsoft.Authorization/roleAssignments/write
. Il ruolo
consente alla connessione BigQuery Azure di accedere
Dati di Archiviazione di Azure come specificato nel criterio dei ruoli.
Per aggiungere assegnazioni dei ruoli utilizzando il portale Azure, segui questi passaggi:
Dal tuo account Archiviazione di Azure, inserisci
IAM
nella barra di ricerca.Fai clic su Controllo degli accessi (IAM).
Fai clic su Aggiungi e seleziona Aggiungi assegnazioni ruoli.
Per fornire l'accesso di sola lettura, seleziona il ruolo Lettore dati BLOB di archiviazione. Per fornire l'accesso in lettura/scrittura, seleziona la casella Dati BLOB di archiviazione Collaboratore.
Imposta Assegna accesso a su Utente, gruppo o entità servizio.
Fai clic su Seleziona membri.
Nel campo Seleziona, inserisci Nome dell'app Azure che è stato restituito al momento della creazione del Connessione Azure su BigQuery.
Fai clic su Salva.
Per ulteriori informazioni, consulta Assegnare ruoli Azure utilizzando portale.
Terraform
Aggiungi quanto segue al file di configurazione Terraform:
resource "azurerm_role_assignment" "data-contributor-role" { scope = data.azurerm_storage_account.example.id # Read-write permission for Omni on the storage account role_definition_name = "Storage Blob Data Contributor" principal_id = azuread_service_principal.example.id }
Azure PowerShell
Per aggiungere un'assegnazione del ruolo per un'entità di servizio in un ambito delle risorse, puoi:
Usa il comando New-AzRoleAssignment
:
New-AzRoleAssignment` -SignInName APP_NAME` -RoleDefinitionName ROLE_NAME` -ResourceName RESOURCE_NAME` -ResourceType RESOURCE_TYPE` -ParentResource PARENT_RESOURCE` -ResourceGroupName RESOURCE_GROUP_NAME
Sostituisci quanto segue:
APP_NAME
: il nome dell'applicazione.ROLE_NAME
: il nome del ruolo che vuoi assegnare.RESOURCE_NAME
: il nome della risorsa.RESOURCE_TYPE
: tipo di risorsa.PARENT_RESOURCE
: la risorsa padre.RESOURCE_GROUP_NAME
: nome del gruppo di risorse.
Per ulteriori informazioni sull'utilizzo di Azure PowerShell per aggiungere un nuovo servizio vedi Assegnare ruoli di Azure utilizzando Azure PowerShell.
Interfaccia a riga di comando di Azure
Per aggiungere un'assegnazione del ruolo per un'entità di servizio in un ambito delle risorse, puoi:
lo strumento a riga di comando di Azure. Devi disporre dei
Autorizzazione Microsoft.Authorization/roleAssignments/write
per l'archiviazione
per concedere i ruoli.
Per assegnare un ruolo, ad esempio il ruolo Collaboratore dati BLOB di archiviazione, alla
service principal, esegui il comando az role assignment create
:
az role assignment create --role "Storage Blob Data Contributor" \ --assignee-object-id ${SP_ID} \ --assignee-principal-type ServicePrincipal \ --scope subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME
Sostituisci quanto segue:
SP_ID
: l'ID entità servizio.STORAGE_ACCOUNT_NAME
: il nome dell'account di archiviazione.RESOURCE_GROUP_NAME
: nome del gruppo di risorse.SUBSCRIPTION_ID
: l'ID abbonamento.
Per maggiori informazioni, consulta Assegnare ruoli Azure utilizzando l'interfaccia a riga di comando di Azure.
API REST Microsoft
Per aggiungere assegnazioni dei ruoli per un'entità servizio, puoi inviare una richiesta a Microsoft Management.
Per chiamare l'API REST Microsoft Graph,
recuperare un token OAuth per un'applicazione. Per ulteriori informazioni, consulta la sezione Come ottenere
senza un utente.
L'applicazione che ha chiamato l'API REST Microsoft Graph deve avere
l'autorizzazione dell'applicazione Application.ReadWrite.All
.
Per generare un token OAuth, esegui questo comando:
export TOKEN=$(curl -X POST \ https://login.microsoftonline.com/TENANT_ID/oauth2/token \ -H 'cache-control: no-cache' \ -H 'content-type: application/x-www-form-urlencoded' \ --data-urlencode "grant_type=client_credentials" \ --data-urlencode "resource=https://graph.microsoft.com/" \ --data-urlencode "client_id=CLIENT_ID" \ --data-urlencode "client_secret=CLIENT_SECRET" \ | jq --raw-output '.access_token')
Sostituisci quanto segue:
TENANT_ID
: l'ID tenant corrispondente all'ID del Directory Azure che contiene l'account Archiviazione di Azure.CLIENT_ID
: l'ID client Azure.CLIENT_SECRET
: il client secret di Azure.
Recupera l'ID dei ruoli integrati di Azure da assegnare all'entità servizio.
Ecco alcuni ruoli comuni:
- Collaboratore dei dati BLOB di archiviazione:
ba92f5b4-2d11-453d-a403-e96b0029c9fe
- Lettore dati BLOB di archiviazione:
2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
Per assegnare un ruolo all'entità servizio, chiama l'API REST di Microsoft Graph all'API REST Azure Resource Management:
export ROLE_ASSIGNMENT_ID=$(uuidgen) curl -X PUT \ 'https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID?api-version=2018-01-01-preview' \ -H "authorization: Bearer ${TOKEN?}" \ -H 'cache-control: no-cache' \ -H 'content-type: application/json' \ -d '{ "properties": { "roleDefinitionId": "subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/providers/Microsoft.Authorization/roleDefinitions/ROLE_ID", "principalId": "SP_ID" } }'
Sostituisci quanto segue:
ROLE_ASSIGNMENT_ID
: l'ID del ruolo.SP_ID
: l'ID entità servizio.SUBSCRIPTION_ID
: l'ID abbonamento.RESOURCE_GROUP_NAME
: nome del gruppo di risorse.STORAGE_ACCOUNT_NAME
: il nome dell'account di archiviazione.SUBSCRIPTION_ID
: l'ID abbonamento.
La connessione è ora pronta per l'uso. Tuttavia, potrebbe verificarsi un ritardo nella propagazione per un'assegnazione del ruolo in Azure. Se non riesci a utilizzare la connessione a causa di sui problemi di autorizzazione, riprova più tardi.
Condividere le connessioni con gli utenti
Puoi concedere i ruoli seguenti per consentire agli utenti di eseguire query sui dati e gestire le connessioni:
roles/bigquery.connectionUser
: consente agli utenti di utilizzare le connessioni per connettersi con origini dati esterne ed eseguire query su di esse.roles/bigquery.connectionAdmin
: consente agli utenti di gestire le connessioni.
Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery, vedi Autorizzazioni e ruoli predefiniti.
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Le connessioni sono elencate nel progetto, in un gruppo denominato Connessioni esterne.
Nel riquadro Explorer, fai clic sul nome del tuo progetto. > Connessioni esterne > connessione.
Nel riquadro Dettagli, fai clic su Condividi per condividere una connessione. Quindi:
Nella finestra di dialogo Autorizzazioni di connessione, condividi il connessione con altre entità aggiungendo o modificando tra cui scegliere.
Fai clic su Salva.
bq
Non puoi condividere una connessione con lo strumento a riga di comando bq. Per condividere una connessione, usa la console Google Cloud oppure metodo dell'API BigQuery Connections per condividere una connessione.
API
Utilizza la
Metodo projects.locations.connections.setIAM
nella sezione di riferimento dell'API REST di BigQuery Connections,
fornisce un'istanza della risorsa policy
.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Passaggi successivi
- Scopri di più sui diversi tipi di connessione.
- Scopri di più sulla gestione delle connessioni.
- Scopri di più su BigQuery Omni.
- Scopri di più sulle tabelle BigLake.
- Scopri come eseguire query sui dati di archiviazione BLOB.
- Scopri come esportare i risultati delle query in Archiviazione BLOB.