Condividi tramite


Connettersi e gestire Snowflake in Microsoft Purview

Questo articolo illustra come registrare Snowflake e come autenticare e interagire con Snowflake in Microsoft Purview. Per altre informazioni su Microsoft Purview, vedere l'articolo introduttivo.

Importante

Snowflake ha annunciato che disabiliterà l'autenticazione di base entro agosto 2026. Per allinearsi alla modifica ed evitare interruzioni del servizio, i clienti di Microsoft Purview che usano il connettore Snowflake Data Map devono passare all'autenticazione SHIR (Key Pair).

Azione consigliata (completata entro luglio 2026): per offrire ai clienti più tempo, Snowflake consente agli utenti del servizio di tipo LEGACY_SERVICE di continuare a usare l'autenticazione di base fino a luglio 2026. Questo criterio consente di garantire che non si verifichino interruzioni del servizio durante la transizione al nuovo metodo di autenticazione. È possibile continuare a usare l'autenticazione di base per un periodo di tempo limitato, configurando e convalidando contemporaneamente la nuova coppia di chiavi del meccanismo di autenticazione.

È consigliabile che i clienti di Microsoft Purview aggiornino gli utenti al tipo di LEGACY_SERVICE . Questa modifica garantisce l'accesso continuo e offre più tempo per completare la transizione. Questo aggiornamento deve essere completato prima della fine di luglio 2026 eseguendo il comando seguente in Snowflake:

*ALTER USER <purview_user_name> SET TYPE = LEGACY_SERVICE;

La creazione di nuovi utenti con il tipo LEGACY_SERVICE non è consentita a partire da agosto 2026.

Funzionalità supportate

Funzionalità di analisi

Estrazione dei metadati Analisi completa Analisi incrementale Analisi con ambito
No

Durante l'analisi di un'origine Snowflake, Microsoft Purview supporta:

  • Estrazione di metadati tecnici, tra cui:

    • Server
    • Database
    • Schemi
    • Tabelle che includono colonne, chiavi esterne e vincoli univoci
    • Viste incluse le colonne
    • Stored procedure che includono il set di dati dei parametri e il set di risultati
    • Funzioni che includono il set di dati dei parametri
    • Tubi
    • Fasi
    • Flussi che includono le colonne
    • Attività
    • Sequenze
  • Recupero della derivazione statica sulle relazioni degli asset tra tabelle, viste, flussi e stored procedure.

Per le stored procedure, è possibile scegliere il livello di dettaglio da estrarre nelle impostazioni di analisi. La derivazione delle stored procedure è supportata per i linguaggi Snowflake Scripting (SQL) e JavaScript e generata in base alla definizione della procedura.

Quando si configura un'analisi, è possibile scegliere di analizzare uno o più database Snowflake interamente in base ai nomi o ai modelli di nome specificati oppure definire un ulteriore ambito dell'analisi in un subset di schemi corrispondenti ai nomi o ai modelli di nomi specificati.

Altre funzionalità

Per classificazioni, etichette di riservatezza, criteri, derivazione dei dati e visualizzazione dinamica, vedere l'elenco delle funzionalità supportate.

Limitazioni note

  • Quando si elimina un oggetto dall'origine dati, l'analisi successiva non rimuove automaticamente l'asset corrispondente in Microsoft Purview.
  • La derivazione delle stored procedure non è supportata per i modelli seguenti:
    • Stored procedure definita nei linguaggi Java, Python e Scala.
    • Stored procedure che usa SQL EXECUTE IMMEDIATE con query SQL statica come variabile.

Prerequisiti

Autorizzazioni necessarie per l'analisi

Microsoft Purview supporta l'autenticazione di base (nome utente e password) per l'analisi di Snowflake. Il ruolo predefinito dell'utente specificato verrà usato per eseguire l'analisi. L'utente snowflake deve disporre dei diritti di utilizzo in un magazzino e nei database da analizzare e dell'accesso in lettura alle tabelle di sistema per accedere ai metadati avanzati.

Ecco una procedura dettagliata di esempio per creare un utente specifico per l'analisi di Microsoft Purview e configurare le autorizzazioni. Se si sceglie di usare un utente esistente, assicurarsi che disponga di diritti adeguati per gli oggetti warehouse e di database.

  1. Configurare un purview_reader ruolo. A tale scopo, sono necessari i diritti ACCOUNTADMIN .

    USE ROLE ACCOUNTADMIN;
    
    --create role to allow read only access - this will later be assigned to the Microsoft Purview user
    CREATE OR REPLACE ROLE purview_reader;
    
    --make sysadmin the parent role
    GRANT ROLE purview_reader TO ROLE sysadmin;
    
  2. Creare un magazzino per Microsoft Purview per l'uso e la concessione dei diritti.

    --create warehouse - account admin required
    CREATE OR REPLACE WAREHOUSE purview_wh WITH 
        WAREHOUSE_SIZE = 'XSMALL' 
        WAREHOUSE_TYPE = 'STANDARD' 
        AUTO_SUSPEND = 300 
        AUTO_RESUME = TRUE 
        MIN_CLUSTER_COUNT = 1 
        MAX_CLUSTER_COUNT = 2 
        SCALING_POLICY = 'STANDARD';
    
    --grant rights to the warehouse
    GRANT USAGE ON WAREHOUSE purview_wh TO ROLE purview_reader;
    
  3. Creare un utente per l'analisi purview di Microsoft Purview.

    CREATE OR REPLACE USER purview 
        PASSWORD = '<password>'; 
    
    --note the default role will be used during scan
    ALTER USER purview SET DEFAULT_ROLE = purview_reader;
    
    --add user to purview_reader role
    GRANT ROLE purview_reader TO USER purview;
    
  4. Concedere diritti di lettura agli oggetti di database.

    GRANT DATABASE ROLE SNOWFLAKE.OBJECT_VIEWER TO USER purview_reader;
    GRANT USAGE ON DATABASE <your_database_name> TO purview_reader;
    
    --grant reader access to all the database structures that purview can currently scan
    GRANT USAGE ON ALL SCHEMAS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE ON ALL FUNCTIONS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE ON ALL PROCEDURES IN DATABASE <your_database_name> TO role purview_reader;
    GRANT SELECT ON ALL TABLES IN DATABASE <your_database_name> TO role purview_reader;
    GRANT SELECT ON ALL VIEWS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE, READ on ALL STAGES IN DATABASE <your_database_name> TO role purview_reader;
    
    --grant reader access to any future objects that could be created
    GRANT USAGE ON FUTURE SCHEMAS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE ON FUTURE FUNCTIONS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE ON FUTURE PROCEDURES IN DATABASE <your_database_name> TO role purview_reader;
    GRANT SELECT ON FUTURE TABLES IN DATABASE <your_database_name> TO role purview_reader;
    GRANT SELECT ON FUTURE VIEWS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE, READ ON FUTURE STAGES IN DATABASE <your_database_name> TO role purview_reader;
    

Registrazione

Questa sezione descrive come registrare Snowflake in Microsoft Purview usando il portale di governance di Microsoft Purview classico.

Passaggi per la registrazione

Per registrare una nuova origine Snowflake in Microsoft Purview Unified Catalog, seguire questa procedura:

  1. Passare all'account Microsoft Purview nel portale di governance di Microsoft Purview classico.
  2. Selezionare Mappa dati nel riquadro di spostamento a sinistra.
  3. Selezionare Registra
  4. In Registra origini selezionare Snowflake. Selezionare Continua.

Nella schermata Registra origini (Snowflake) seguire questa procedura:

  1. Immettere un nome in cui l'origine dati verrà elencata all'interno del catalogo.

  2. Immettere l'URL del server sotto forma di <account_identifier>.snowflakecomputing.com, ad esempio . orgname-accountname.snowflakecomputing.com Altre informazioni sull'identificatore dell'account Snowflake. Si noti che questo URL viene usato come parte del nome completo degli asset Snowflake ed è l'endpoint predefinito per la connessione di Microsoft Purview a Snowflake durante l'analisi.

  3. Aggiungere altri host , se applicabile. Specificarlo quando si desidera che le operazioni di analisi si connettono a un endpoint Snowflake diverso dall'URL del server. È possibile scegliere l'host per la connessione durante l'installazione dell'analisi.

    Consiglio

    Se Snowflake è già stato analizzato ma si vuole passare all'uso di un altro endpoint, ad esempio dall'endpoint pubblico all'endpoint privato, è possibile aggiungere un altro host nell'origine dati e scegliere l'host per la connessione nell'analisi per assicurarsi che Microsoft Purview generi gli asset con lo stesso nome completo del precedente.

    Quando si registra un'origine dati, Microsoft Purview esegue il controllo dell'univocità per verificare che l'URL del server e altri host non si sovrappongano alle origini esistenti.

  4. Selezionare una raccolta dall'elenco.

  5. Completare la registrazione dell'origine dati.

    opzioni di registrazione delle origini

Analisi

Seguire la procedura seguente per analizzare Snowflake per identificare automaticamente gli asset. Per altre informazioni sull'analisi in generale, vedere l'introduzione alle analisi e all'inserimento.

Autenticazione per un'analisi

Il tipo di autenticazione supportato per un'origine Snowflake è l'autenticazione di base e la coppia di chiavi

Il processo seguente deve essere seguito per le credenziali della coppia di chiavi

Prerequisiti per l'autenticazione della coppia di chiavi

Prima di iniziare, assicurarsi di avere:

  1. Accesso snowflake

    1. Account Snowflake con privilegi di amministratore

    2. Account utente per l'analisi di Microsoft Purview (ad esempio, purview_scanner)

    3. Accesso per eseguire comandi ALTER USER

  2. Strumenti & Software

    1. OpenSSL installato (per la generazione di chiavi)

    2. Azure interfaccia della riga di comando o PowerShell (per le operazioni di Key Vault)

    3. Accesso al portale Microsoft Purview

    4. Assicurarsi di avere Microsoft Open JDK 11. Fare clic qui per scaricare [Altre varianti JDK potrebbero avere problemi con algoritmi crittografati avanzati].

Configurazione dettagliata

Parte 1: Configurazione snowflake

Questo passaggio prevede la creazione di chiavi pubbliche e private e quindi l'assegnazione della chiave pubblica all'utente purview ('purview_scanner' nell'esempio seguente) che si connette a Snowflake per eseguire l'analisi.

Passaggio 1.1: Generare la coppia di chiavi RSA

  • Generare una chiave privata

Aprire un terminale e generare la chiave privata:

--For Encrypted Private Key (Recommended):  

openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 aes-256-cbc -v2prf hmacWithSHA512 - inform PEM -out rsa_key.p8  

--Note: You'll be prompted to enter a passphrase. Remember this passphrase! 

OPPURE

--For Unencrypted Private Key:  

openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 aes-256-cbc -v2prf hmacWithSHA512 - inform PEM -out rsa_key.p8 -nocrypt 

Nota: usare i comandi precedenti per generare la chiave

  • Genera chiave pubblica
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub 
  • Estrarre il contenuto della chiave pubblica

Visualizzare e copiare il contenuto della chiave pubblica (escluse le intestazioni):

cat rsa_key.pub 
-----BEGIN PUBLIC KEY----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA... 
... -----END PUBLIC KEY----- 

Copiare tutti gli elementi tra le righe BEGIN e END (non includere le righe del delimitatore).

Passaggio 1.2: Assegnare la chiave pubblica all'utente snowflake

Connettersi a Snowflake ed eseguire:

-- Create user if it doesn't exist 
CREATE USER IF NOT EXISTS purview_scanner 
  DEFAULT_ROLE = 'PUVRIEW_READER' 
  TYPE = 'SERVICE'  ; 
 -- Assign the public key (paste your key without the BEGIN/END lines) 
ALTER USER purview_scanner  
SET RSA_PUBLIC_KEY='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...'; 
 -- Grant necessary privileges 
GRANT ROLE purview_reader TO USER purview_scanner; 
 -- Verify the fingerprint 
DESC USER purview_scanner; 

Passaggio 1.3: Verificare la configurazione delle chiavi [passaggio facoltativo da convalidare]

Verificare che l'impronta digitale della chiave pubblica corrisponda:

In Snowflake:

DESC USER purview_scanner ->> SELECT SUBSTR( 
(SELECT "value" FROM $1 
WHERE "property" = 'RSA_PUBLIC_KEY_FP'), 
LEN('SHA256:') + 1) AS key; 

Nella riga di comando:

openssl rsa -pubin -in rsa_key.pub -outform DER | openssl dgst -sha256 -binary | openssl 
enc -base64 

Si noti che entrambi devono produrre lo stesso hash di impronta digitale.

Parte 2: Installazione Azure Key Vault

Passaggio 2.1: Preparare il contenuto della chiave privata

Visualizzare la chiave privata:

cat rsa_key.p8 

Copiare l'intero contenuto, incluse le righe -----BEGIN ENCRYPTED PRIVATE KEY----- e -----END ENCRYPTED PRIVATE KEY-----.

Passaggio 2.2: Archiviare i segreti in Azure Key Vault

È necessario archiviare DUE segreti in Azure Key Vault:

Segreto 1: Chiave privata

REQUISITO CRITICO: la chiave privata DEVE essere archiviata usando Azure'interfaccia della riga di comando o Azure Cloud Shell.

NON usare l'interfaccia utente del portale di Azure per creare il segreto della chiave privata perché:

  • L'input di testo del portale Azure non mantiene la formattazione a più righe

  • Converte le interruzioni di riga in spazi, danneggiando il formato PEM

  • Le connessioni snowflake avranno esito negativo con errori di chiave non valida

Il segreto password/passphrase può essere creato tramite il portale (valore a riga singola).

Metodo 1: Azure interfaccia della riga di comando (scelta consigliata)

# Replace with your values 
KEY_VAULT_NAME="your-keyvault-name"
CREDENTIAL_NAME="snowflake-purview-cred" 

# Store the private key from file (preserves multi-line format) 
az keyvault secret set \
 --vault-name $KEY_VAULT_NAME \
 --name "${CREDENTIAL_NAME}-privateKey" \
 --file rsa_key.p8 

OPPURE

Metodo 2: Azure Cloud Shell

  1. Apri Azure Cloud Shell (https://shell.azure.com)

  2. Caricare il file rsa_key.p8 usando il pulsante carica (icona della cartella)

  3. Eseguire il comando seguente:

az keyvault secret set \ 
  --vault-name your-keyvault-name \ 
  --name "snowflake-purview-cred-privateKey" \ 
  --file rsa_key.p8 

OPPURE

Metodo 3: PowerShell con l'interfaccia della riga di comando di Azure

# Read the private key preserving line breaks 
$privateKeyContent = Get-Content -Path "rsa_key.p8" -Raw 
 
# Store in Key Vault using Azure CLI 
az keyvault secret set ` 
  --vault-name "your-keyvault-name" ` 
  --name "snowflake-purview-cred-privateKey" ` 
  --value $privateKeyContent 

OPPURE

Verificare il formato della chiave privata dopo il caricamento: [passaggio facoltativo]

# Retrieve and check the secret maintains proper formatting 
az keyvault secret show \ 
  --vault-name $KEY_VAULT_NAME \ 
  --name "${CREDENTIAL_NAME}-privateKey" \ 
  --query value -o tsv 
 
# Expected output: Multiple lines like this 
# -----BEGIN ENCRYPTED PRIVATE KEY----- 
# MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQI... 
# (multiple lines of base64 encoded content) 
# ... 
# -----END ENCRYPTED PRIVATE KEY-----

Risposta corretta: più righe con interruzioni di riga mantenute

Errato: riga singola o testo lungo con spazi anziché nuove linee

Segreto 2: Passphrase chiave privata

La passphrase può essere creata usando Azure Portale o Azure'interfaccia della riga di comando (è un valore a riga singola).

# Store the passphrase (if your key is encrypted) 
az keyvault secret set \
 --vault-name $KEY_VAULT_NAME \
 --name "${CREDENTIAL_NAME}-password" \
 --value "your_passphrase_here" 

Importante: Se è stata usata una chiave privata non crittografata , è comunque necessario creare il segreto con estensione password, ma impostarlo su una stringa vuota o su un valore segnaposto.

Uso del portale di Azure:

  1. Passare a Segreti → Generare/Importare

  2. Nome: snowflake-purview-cred.password

  3. Valore: passphrase (o stringa vuota per chiavi non crittografate)

  4. Selezionare Crea.

Creare ed eseguire l'analisi

Per creare ed eseguire una nuova analisi, seguire questa procedura:

  1. Nel portale di governance di Microsoft Purview classico passare a Origini.

  2. Selezionare l'origine Snowflake registrata.

  3. Selezionare + Nuova analisi.

  4. Specificare i dettagli seguenti:

    1. Nome: nome dell'analisi

    2. Connettersi tramite il runtime di integrazione: selezionare il runtime di integrazione Azure autoresoluto, Managed Rete virtuale IR o SHIR in base allo scenario. Per altre informazioni , vedere Scegliere la configurazione di runtime di integrazione corretta per lo scenario. Per usare Managed Rete virtuale IR per connettersi a Snowflake tramite collegamento privato, seguire la procedura descritta in Connettersi a Snowflake tramite l'endpoint privato gestito per configurare prima l'endpoint privato.

    3. Host per la connessione: scegliere l'endpoint usato per stabilire la connessione a Snowflake durante l'analisi. È possibile scegliere tra l'URL del server o gli altri host configurati nell'origine dati.

    4. Credenziali: selezionare le credenziali per connettersi all'origine dati.

      Se si usa l'autenticazione di base durante la creazione di credenziali.

      • Specificare il nome utente usato per connettersi a Snowflake nel campo di input Nome utente.
      • Archiviare la password utente usata per connettersi a Snowflake nella chiave privata.

      Se si usa coppia di chiavi durante la creazione di una credenziale

      • Specificare il nome utente: purview_scanner (l'utente Snowflake)

      • Informazioni di riferimento Key Vault password:

      • connessione Key Vault: selezionare il Key Vault

      • Nome segreto: snowflake-purview-cred.password

      • Informazioni di riferimento sulla Key Vault privata:
      • connessione Key Vault: selezionare il Key Vault

      • Nome segreto: snowflake-purview-cred.privateKey

    5. Warehouse: specificare il nome dell'istanza del magazzino usata per consentire l'analisi in lettere maiuscole. Il ruolo predefinito assegnato all'utente specificato nelle credenziali deve disporre dei diritti USAGE in questo warehouse.

    6. Database: specificare uno o più nomi di istanza di database da importare in lettere maiuscole. Separare i nomi nell'elenco con un punto e virgola (;). Ad esempio, DB1;DB2. Il ruolo predefinito assegnato all'utente specificato nelle credenziali deve disporre di diritti adeguati per gli oggetti di database.

      Nota

      La classificazione non viene applicata alle tabelle quando vengono specificati più nomi di istanza di database.

      I modelli di nomi di database accettabili possono essere nomi statici o contenere caratteri jolly . Ad esempio: : A%;%B;%C%;D

      • Iniziare con A o
      • Terminare con B o
      • Contengono C o
      • Uguale a D
    7. Schema: elenco di subset di schemi da importare espressi come elenco separato da punto e virgola. Ad esempio, schema1;schema2. Tutti gli schemi utente vengono importati se l'elenco è vuoto. Tutti gli schemi e gli oggetti di sistema vengono ignorati per impostazione predefinita.

      I modelli di nomi di schema accettabili che usano possono essere nomi statici o contenere caratteri jolly . Ad esempio: : A%;%B;%C%;D

      • Iniziare con A o
      • Terminare con B o
      • Contengono C o
      • Uguale a D

      L'utilizzo di NOT e caratteri speciali non è accettabile.

    8. Dettagli stored procedure: controlla il numero di dettagli importati dalle stored procedure:

      • Firma (impostazione predefinita): nome e parametri delle stored procedure.
      • Codice, firma: nome, parametri e codice delle stored procedure.
      • Derivazione, codice, firma: nome, parametri e codice delle stored procedure e derivazione dei dati derivata dal codice.
      • Nessuno: i dettagli della stored procedure non sono inclusi.

      Nota

      Se si usa Integration Runtime self-hosted per l'analisi, l'impostazione personalizzata diversa dalla firma predefinita è supportata dalla versione 5.30.8541.1. Le versioni precedenti estraggono sempre il nome e i parametri delle stored procedure.

    9. Memoria massima disponibile (applicabile quando si usa il runtime di integrazione self-hosted): memoria massima (in GB) disponibile nella macchina virtuale del cliente da usare per l'analisi dei processi. Dipende dalle dimensioni dell'origine Snowflake da analizzare.

      Nota

      Come regola generale, fornire 1 GB di memoria per ogni 1000 tabelle.

  5. Selezionare Test connessione per convalidare le impostazioni (disponibili quando si usa Azure Integration Runtime).

  6. Selezionare Continua.

  7. Selezionare un set di regole di analisi per la classificazione. È possibile scegliere tra i set di regole personalizzati predefiniti del sistema o esistenti oppure creare un nuovo set di regole inline. Per altre informazioni, vedere l'articolo Classificazione .

    Nota

    La classificazione non verrà applicata a tabelle o viste quando il nome della tabella, il nome della vista, il nome dello schema o il nome del database contengono caratteri speciali.

    Nota

    Se si usa il runtime self-hosted, è necessario eseguire l'aggiornamento alla versione 5.26.404.1 o successiva per usare la classificazione Snowflake. La versione più recente di Microsoft Integration Runtime è disponibile qui.

  8. Scegliere il trigger di analisi. È possibile configurare una pianificazione o eseguire l'analisi una sola volta.

  9. Esaminare l'analisi e selezionare Salva ed esegui.

Visualizzare le analisi e le esecuzioni di analisi

Per visualizzare le analisi esistenti:

  1. Passare al portale di Microsoft Purview. Nel riquadro sinistro selezionare Mappa dati.
  2. Selezionare l'origine dati. È possibile visualizzare un elenco di analisi esistenti nell'origine dati in Analisi recenti oppure è possibile visualizzare tutte le analisi nella scheda Analisi .
  3. Selezionare l'analisi con i risultati che si desidera visualizzare. Il riquadro mostra tutte le esecuzioni di analisi precedenti, insieme allo stato e alle metriche per ogni esecuzione dell'analisi.
  4. Selezionare l'ID di esecuzione per controllare i dettagli dell'esecuzione dell'analisi.

Gestire le analisi

Per modificare, annullare o eliminare un'analisi:

  1. Passare al portale di Microsoft Purview. Nel riquadro sinistro selezionare Mappa dati.

  2. Selezionare l'origine dati. È possibile visualizzare un elenco di analisi esistenti nell'origine dati in Analisi recenti oppure è possibile visualizzare tutte le analisi nella scheda Analisi .

  3. Selezionare l'analisi da gestire. È quindi possibile eseguire automaticamente le seguenti azioni:

    • Modificare l'analisi selezionando Modifica analisi.
    • Annullare un'analisi in corso selezionando Annulla esecuzione analisi.
    • Eliminare l'analisi selezionando Elimina analisi.

Nota

  • L'eliminazione dell'analisi non elimina gli asset del catalogo creati dalle analisi precedenti.

Derivazione

Dopo aver eseguito l'analisi dell'origine Snowflake, è possibile esplorare Unified Catalog o cercare Unified Catalog per visualizzare i dettagli dell'asset.

Passare alla scheda asset -> derivazione. Se applicabile, è possibile visualizzare la relazione tra asset. Fare riferimento alla sezione relativa alle funzionalità supportate negli scenari di derivazione di Snowflake supportati. Per altre informazioni sulla derivazione in generale, vedere la guida dell'utente alla derivazione e alla derivazione dei dati.

Visualizzazione di derivazione snowflake

Nota

Se una vista è stata creata da tabelle di database diversi o schemi diversi, analizzare tutti i database e gli schemi contemporaneamente usando i nomi nel punto e virgola (;)elenco.

Connettersi a Snowflake tramite l'endpoint privato gestito

Questa sezione descrive i passaggi necessari per configurare un endpoint privato gestito (PE) da Microsoft Purview a Snowflake in Azure. Altre informazioni su collegamento privato di Azure e Snowflake.

  1. Nell'account Snowflake recuperare gli endpoint di destinazione e l'ID risorsa. Eseguire la funzione di sistema SYSTEM$GET_PRIVATELINK_CONFIG() con il ruolo Account Amministrazione e annotare i valori delle proprietà seguenti:

    • privatelink-pls-id
    • privatelink-account-url
    • regionless-privatelink-account-url
    • url privatelink_ocsp
    use role accountadmin; 
    select key, value::varchar from table(flatten(input=>parse_json(SYSTEM$GET_PRIVATELINK_CONFIG())));
    
  2. In Microsoft Purview creare un endpoint privato gestito in Snowflake.

    1. Seguire la procedura per creare un Rete virtuale Integration Runtime gestito. Se ne hai già uno, assicurati che sia nella versione 2, che supporta Snowflake PE.
    2. Creare un endpoint privato gestito per Snowflake. Passare a Endpoint privato gestito ->+ Nuovo ->Snowflake e immettere le informazioni seguenti.
      • ID risorsa o alias: immettere il valore di privatelink-pls-id recuperato.
      • Nomi di dominio completi: aggiungere i nomi di dominio privatelink_ocsp-url, regionless-privatelink-account-url e privatelink-account-url.

    Configurare l'endpoint privato gestito per Snowflake

  3. Dopo aver creato l'oggetto PE, è possibile visualizzarne lo stato di provisioning come Succeeded e lo stato di approvazione come In sospeso. Aprire il file PE e trovare l'ID risorsa endpoint privato gestito nella pagina dei dettagli.

  4. Contattare il supporto tecnico snowflake e fornire l'ID risorsa per consentire a Snowflake di approvare questo PE.

  5. Dopo che il supporto snowflake conferma l'approvazione del pe, lo stato di approvazione dell'endpoint privato gestito dovrebbe essere approvato in Microsoft Purview.

  6. Registrare l'origine dati e configurare un'analisi. Quando si configura l'analisi, scegliere il runtime di integrazione managed Rete virtuale associato a Snowflake PE.

Suggerimenti per la risoluzione dei problemi

  • Controllare l'identificatore dell'account nel passaggio di registrazione dell'origine. Non includere https:// all'inizio.
  • Verificare che il nome del magazzino e il nome del database siano in lettere maiuscole nella pagina di configurazione dell'analisi.
  • Controllare l'insieme di credenziali delle chiavi. Assicurarsi che la password non presenti errori di digitazione.
  • Controllare le credenziali configurate in Microsoft Purview. L'utente specificato deve avere un ruolo predefinito con i diritti di accesso necessari sia per il warehouse che per il database che si sta tentando di analizzare. Vedere Autorizzazioni necessarie per l'analisi. USARE DESCRIBE USER; per verificare il ruolo predefinito dell'utente specificato per Microsoft Purview.
  • Usare Cronologia query in Snowflake per verificare se è in arrivo un'attività.
    • Se si verifica un problema con l'identificatore dell'account o la password, non verrà visualizzata alcuna attività.
    • Se si verifica un problema con il ruolo predefinito, dovrebbe essere visualizzata almeno un'istruzione USE WAREHOUSE . . . .
    • È possibile usare la funzione di tabella QUERY_HISTORY_BY_USER per identificare il ruolo utilizzato dalla connessione. La configurazione di un utente dedicato di Microsoft Purview semplifica la risoluzione dei problemi.

Risoluzione dei problemi relativi all'autenticazione della coppia di chiavi

Problema 1: "Connessione di test non riuscita"

Sintomi: il test di connessione non riesce in Purview

Possibili cause e soluzioni:

  1. Chiave pubblica non assegnata

    1. Verificare in Snowflake: DESC USER purview_scanner;

    2. Verificare che RSA_PUBLIC_KEY_FP sia popolato

  2. problemi di accesso Key Vault

    1. Verificare che l'identità gestita disponga delle autorizzazioni Get ed List

    2. Controllare Key Vault impostazioni del firewall

  3. Nomi di segreti non corretti

    1. Verifica: {credentialName}.password exists

    2. Verifica: {credentialName}.privateKey exists

Problema 2: "Formato chiave privata non valido" o "Connessione non riuscita con errore di chiave"

Sintomi:

  • L'autenticazione non riesce con l'errore "Formato chiave privata non valido"

  • Il test di connessione non riesce immediatamente

  • Messaggi di errore relativi a PEM non valido o errori di analisi della chiave

Causa comune: La chiave privata è stata archiviata tramite Azure Portal (formato multiriga danneggiato)

Soluzione:

  1. Verificare se il formato della chiave è danneggiato:

    # Retrieve the secret and check format 
    az keyvault secret show \
     --vault-name your-keyvault \
     --name "snowflake-purview-cred-privateKey" \
     --query value -o tsv | head -5 
    
    # Should show multiple lines starting with: 
    # -----BEGIN ENCRYPTED PRIVATE KEY----- 
    # MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w... 
    # (NOT a single long line)
    
    
  2. Se danneggiato, ELIMINARE e ricreare usando l'interfaccia della riga di comando:

    # Delete the corrupted secret az keyvault secret delete \
     --vault-name your-keyvault \
     --name "snowflake-purview-cred-privateKey" 
    
    # Wait for soft-delete purge (or purge immediately if needed) 
    az keyvault secret purge \
     --vault-name your-keyvault \
     --name "snowflake-purview-cred-privateKey" 
    
    # Recreate using CLI with
     --file parameter az keyvault secret set \
     --vault-name your-keyvault \
     --name "snowflake-purview-cred-privateKey" \
     --file rsa_key.p8
    
  3. Controlli aggiuntivi:

    1. Verificare che la chiave privata sia in formato PEM PKCS#8

    2. Includere -----BEGIN ENCRYPTED PRIVATE KEY----- e -----END ENCRYPTED PRIVATE KEY----- righe

    3. Verificare prima la chiave in locale:

    openssl rsa -in rsa_key.p8 -check
    

Tenere presente: usare sempre Azure'interfaccia della riga di comando o Cloud Shell per i segreti di chiave privata, MAI l'interfaccia utente del portale di Azure.

Problema 3: "Mancata corrispondenza dell'impronta digitale della chiave pubblica"

Sintomo: l'autenticazione ha esito positivo ma viene usata una chiave errata

Soluzione:

# Regenerate public key from private key 
openssl rsa -in rsa_key.p8 -pubout -out rsa_key_new.pub 

# Verify fingerprint 
openssl rsa -pubin -in rsa_key_new.pub -outform DER | openssl dgst sha256 -binary | openssl enc -base64 

# Update in Snowflake 
ALTER USER purview_scanner SET RSA_PUBLIC_KEY='';

Problema 4: "Passphrase errato"

Sintomo: La decrittografia della chiave non riesce

Soluzione:

  1. Verificare che la passphrase in Key Vault corrisponda a quella usata durante la generazione della chiave

  2. Testare la passphrase in locale:

openssl rsa -in rsa_key.p8 -check 
# Enter passphrase when prompted

Problema 5: "Autorizzazioni snowflake mancanti"

Sintomo: la connessione ha esito positivo ma l'analisi non riesce

Soluzione:

Concedere i privilegi necessari all'utente Snowflake:

-- Create role for Purview 
CREATE ROLE IF NOT EXISTS purview_reader; 

-- Grant usage on warehouse 
GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE purview_reader; 

-- Grant usage on database  
GRANT USAGE ON DATABASE my_database TO ROLE purview_reader; 

-- Grant usage on all schemas  
GRANT USAGE ON ALL SCHEMAS IN DATABASE my_database TO ROLE  purview_reader; 

-- Grant select on all tables  
GRANT SELECT ON ALL TABLES IN DATABASE my_database TO ROLE  purview_reader;  
GRANT SELECT ON FUTURE TABLES IN DATABASE my_database TO ROLE  purview_reader; 

-- Grant select on all views  
GRANT SELECT ON ALL VIEWS IN DATABASE my_database TO ROLE  purview_reader;  
GRANT SELECT ON FUTURE VIEWS IN DATABASE my_database TO ROLE  purview_reader; 

-- Assign role to user  
GRANT ROLE purview_reader TO USER purview_scanner; 

-- Set as default role  
ALTER USER purview_scanner SET DEFAULT_ROLE = purview_reader;

Passaggi successivi

Dopo aver registrato l'origine, seguire le guide seguenti per altre informazioni su Microsoft Purview e i dati.