Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Blob Storage SFTP supporta ora l'accesso basato su Microsoft Entra ID in anteprima pubblica. In precedenza, Azure Blob Storage SFTP supportava solo l'accesso locale basato sull'utente, richiedeva l'autenticazione tramite password o chiave privata SSH. Usando questa nuova funzionalità, gli utenti possono applicare l'ID Microsoft Entra o entra identità esterne per connettersi agli account di archiviazione di Azure tramite SFTP senza dover creare e gestire gli utenti locali.
L'accesso basato su ID di Microsoft Entra offre molti vantaggi al SFTP di Azure Blob Storage, tra cui il controllo degli accessi in base al ruolo (RBAC), l'autenticazione a più fattori (MFA) e le liste di controllo degli accessi (ACL) di Microsoft Entra ID.
Importante
L'accesso basato su ID Microsoft Entra per Azure Blob Storage SFTP è attualmente disponibile in ANTEPRIMA. Consultare i Termini supplementari di utilizzo per le anteprime di Microsoft Azure per i termini legali applicabili alle funzionalità di Azure in versione beta, anteprima o non ancora rilasciate in versione generale. Una volta abilitata, questa funzionalità si applica a tutti gli account di archiviazione all'interno dell'intera sottoscrizione.
Vantaggi principali
Eliminare la gestione degli utenti locali : usando l'accesso basato su ID Di Microsoft Entra, non è necessario creare, ruotare o gestire gli utenti SFTP locali per ogni account di archiviazione. Microsoft Entra ID gestisce l'autenticazione, riducendo significativamente il sovraccarico operativo e la complessità della configurazione.
Identità e sicurezza di livello aziendale : l'accesso SFTP usa l'ID Microsoft Entra, che abilita:
- Gestione centralizzata del ciclo di vita delle identità
- Autenticazione avanzata, inclusa l'autenticazione a più fattori tramite Microsoft Entra ID
- Comportamento di sicurezza coerente allineato agli standard IAM aziendali
- Questo approccio migliora la sicurezza rispetto alle credenziali locali statiche di lunga durata.
Integrazione nativa di Azure RBAC, ABAC e ACL - L'autorizzazione per SFTP corrisponde al modello di controllo degli accessi esistente di Azure Blob Storage:
- Controllo degli accessi in base al ruolo
- Controllo degli accessi in base all'attributo
- Elenchi di controllo di accesso in stile POSIX (ACL)
- Gli utenti possono applicare gli stessi ruoli e autorizzazioni usati per l'accesso REST, SDK e portale a SFTP.
Onboarding SFTP più veloce - Poiché gli account ID di Microsoft Entra sono molto diffusi, gli utenti possono:
- Riutilizzare utenti, gruppi ed entità servizio esistenti
- Evitare la creazione e la distribuzione delle chiavi locali che richiedono molto tempo
- Ottenere SFTP operativo più velocemente con un minor numero di passaggi di configurazione
- Abbreviare significativamente il tempo per realizzare valore per i flussi di lavoro basati su SFTP
Collaborazione esterna sicura : usando identità esterne microsoft Entra ID, i clienti possono concedere in modo sicuro l'accesso SFTP ai partner e ai fornitori senza gestire sistemi di identità separati, mantenendo al contempo controllo completo e controllabilità.
Informazioni generali
La panoramica generale seguente descrive i passaggi chiave coinvolti in questo processo. Prima di tutto si esegue l'autenticazione usando Microsoft Entra ID, quindi si ottiene un certificato OpenSSH e infine si connette a SFTP di Archiviazione BLOB di Azure usando un client o un SDK compatibile. Le sezioni seguenti descrivono in modo più dettagliato ognuno di questi passaggi.
Eseguire l'autenticazione con Microsoft Entra ID tramite l'interfaccia della riga di comando di Azure, PowerShell, SDK e altro ancora.
Ottenere un certificato OpenSSH da Microsoft Entra ID passando una chiave pubblica.
Usare un qualsiasi client SFTP o SDK che supporti i certificati OpenSSH per connettersi ad Azure Storage utilizzando il certificato OpenSSH e la chiave pubblica del passaggio 2.
Annotazioni
L'autenticazione basata su password non è supportata perché nessun client SFTP dispone dell'integrazione nativa di Microsoft Entra ID per fornire un'esperienza utente di Microsoft Entra ID per l'immissione della password.
Connessione all'archiviazione BLOB di Azure con ID di Microsoft Entra
Registrare la funzionalità
Registrare sulla sottoscrizione di Azure la funzionalità di anteprima SFTP Entra ID Support. Per informazioni su come registrare una funzionalità di anteprima, vedere la guida alle funzionalità di anteprima.
Generare un certificato OpenSSH
Generare il certificato OpenSSH con il comando az sftp dell'interfaccia della riga di comando di Azure, come illustrato nell'esempio seguente.
az login
az sftp cert --file /my_cert.pub
Per motivi di sicurezza, il certificato è valido solo per 65 minuti. Dopo la scadenza, è necessario eseguire di nuovo il comando per ottenere un nuovo certificato.
Annotazioni
Attualmente, solo l'interfaccia della riga di comando di Azure e Azure PowerShell supportano il recupero di certificati SSH. Il supporto del portale di Azure per il download dei certificati SSH non è ancora disponibile.
Facoltativamente, è possibile generare la propria coppia di chiavi SSH e usarla durante il download del certificato.
Genera coppia di chiavi SSH: è necessario usare le chiavi RSA, perché Microsoft Entra ID supporta solo i certificati RSA.
ssh-keygen -t rsa
Verranno generati i file di chiave seguenti:
| FileName | Tipo di chiave |
|---|---|
| id_rsa | Chiave privata |
| id_rsa.pub | Chiave pubblica |
Usare il comando seguente per generare il certificato SSH con le chiavi generate:
az login
az sftp cert --public-key-file /id_rsa.pub --file /my_cert.pub
Se si sta utilizzando un principal del servizio, è possibile accedere utilizzando un segreto client o un certificato:
Per accedere usando un certificato, usare il comando seguente:
az login --service-principal -u <application_id_or_client_id> --tenant <tenant_id> --certificate <path_to_certificate>
Per accedere usando un segreto client, usare il comando seguente:
az login --service-principal -u <application_id_or_client_id> -p <secret_value> --tenant <tenant_id>
Dopo l'autenticazione, eseguire lo stesso comando per scaricare il certificato:
az sftp cert --public-key-file /id_rsa.pub --file /my_cert.pub
Verificare il contenuto del certificato OpenSSH [Facoltativo]
Usare il comando seguente per visualizzare il certificato OpenSSH:
ssh-keygen -L -f my_cert.pub
Nell'output la sezione Principals contiene il nome utente.
Per motivi di sicurezza, il certificato OpenSSH è valido per 65 minuti. Dopo questo periodo, è necessario richiedere un nuovo certificato per avviare altre transazioni.
Connettersi all'account di archiviazione usando OpenSSH
Connettersi usando un comando SFTP
C:\Users\username> sftp -o PubkeyAcceptedKeyTypes="rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-256" -o IdentityFile="C:\path\to\key\.ssh\id_rsa" -o CertificateFile="C:\path\to\cert\.ssh\my_cert.pub" storageaccountname.username@storageaccountname.blob.core.windows.net
Connected to storageaccountname.blob.core.windows.net.
sftp>
Se l'entità usa il formato username@domain.com, assicurarsi di escludere la sezione dominio nel comando e usare solo la parte del nome utente.
Sono supportati sia i principali utente che i principali servizio. Per i principal del servizio, utilizzare l'ID principale del servizio al posto del nome utente nella stringa di connessione.
Annotazioni
L'aggiunta del nome del contenitore direttamente alla stringa di connessione o la configurazione tramite home directory non è attualmente supportata.
Dopo la connessione, usare il comando seguente per caricare un file in Archiviazione di Azure tramite SFTP:
sftp> put 'C:\path\to\blob\blog.jpeg'
Se ricevi un errore di permesso negato, assicurati di avere i ruoli di Azure necessari, come Collaboratore ai dati BLOB di archiviazione o Proprietario dei dati BLOB di archiviazione.
Connettersi tramite un client desktop SFTP
I client SFTP, ad esempio WinSCP e PuTTY, supportano l'autenticazione basata su OpenSSH. La procedura seguente illustra come connettersi tramite WinSCP:
WinSCP: il supporto per i certificati OpenSSH per l'autenticazione utente è stato implementato nella versione 6.0 (https://winscp.net/tracker/1873)
Ottenere il certificato OpenSSH dal passaggio precedente (Generare il certificato OpenSSH)
In WinSCP immettere il nome host e il nome utente e quindi selezionare Avanzate
Nella scheda SSH passare alla sezione Autenticazione. Allegare i file di chiave privata e certificato ottenuti dalle sezioni precedenti e quindi selezionare OK.
Selezionare Accedi per accedere usando l'account Microsoft Entra ID e il certificato OpenSSH.
Usare il comando seguente per connettersi usando il certificato OpenSSH ottenuto nei passaggi precedenti:
az sftp connect --storage-account <<account_name>> --certificate-file /my_cert.pub
Inoltre, è possibile ottenere il certificato OpenSSH e connettersi a SFTP usando un singolo comando come indicato di seguito:
az sftp connect
az sftp connect --storage-account <<account_name>>
Per altre informazioni sui comandi, vedere qui.
Modello di controllo degli accessi basato su Microsoft Entra ID in SFTP di Archiviazione BLOB di Azure
| Meccanismo | Stato | Tutorial |
|---|---|---|
| Controllo degli accessi in base al ruolo (Azure RBAC) | Supportato | Modello di controllo di accesso per Azure Data Lake Storage - Archiviazione di Azure | Microsoft Learn |
| Elenchi di controllo di accesso (ACL) | Supportato | Modello di controllo di accesso per Azure Data Lake Storage - Archiviazione di Azure | Microsoft Learn |
| Controllo degli accessi in base all'attributo (ABAC di Azure) | Non supportato nell'anteprima pubblica. Se esiste una regola ABAC, per SFTP viene ignorata. |
Modalità di valutazione delle autorizzazioni
SFTP rispecchia il modello di controllo di accesso di Blob Storage di Azure. Per altre informazioni, vedere Modello di controllo di accesso in Azure Data Lake Storage. Tuttavia, durante l'anteprima pubblica, il supporto per il controllo degli accessi basato sugli attributi (ABAC) è parziale. Per altre informazioni, vedere la sezione Problemi noti e limitazioni.
Condivisione dell'accesso agli utenti esterni al tenant principale di Microsoft Entra ID
Le organizzazioni spesso devono condividere l'accesso SFTP di Archiviazione BLOB di Azure con partner e clienti esterni. Le identità esterne di Microsoft Entra possono soddisfare questo requisito abilitando SFTP di Azure Blob Storage per fornire l'accesso sicuro ai collaboratori esterni. Questa funzionalità consente connessioni e interazioni efficienti e sicure con le risorse di archiviazione. Usando le funzionalità di identità esterna di Microsoft Entra ID, le organizzazioni possono mantenere misure di sicurezza e controllo di accesso avanzate, abilitando al contempo la collaborazione con entità esterne. Altre informazioni sull'aggiunta di utenti guest.
Problemi noti e limitazioni
Il supporto di Microsoft Entra ID è limitato ai certificati SSH e all'autenticazione con chiave pubblica.
Sono supportati solo i certificati RSA. ECDSA non è supportato.
Il comportamento ABAC non è coerente quando viene usato con il ruolo di Proprietario dei dati del blob di archiviazione e potrebbe causare errori di timeout. Per usare ABAC, scegliere il ruolo di Collaboratore ai dati dei BLOB di archiviazione, oppure utilizzare il ruolo di Proprietario dati BLOB di archiviazione senza ABAC.
Le sottooperazioni ABAC non sono supportate e si comportano in modo non corretto. Nell'elenco seguente vengono visualizzati comportamenti specifici delle sottooperazioni:
Elencare i BLOB (Blob.List): Gli utenti possono elencare i BLOB senza restrizioni e le espressioni di condizione ABAC vengono ignorate.
Leggere un BLOB (NON Blob.List): Funziona come previsto con le espressioni di condizione del controllo di accesso basato sugli attributi (ABAC). Tuttavia, per tutti gli altri casi, anche l'azione Elenca BLOB (
Blob.List) fallisce inaspettatamente oltre al previsto errore di Lettura di un BLOB (NONBlob.List).(Deprecato) Leggere il contenuto da un BLOB con condizioni di tag (Blob.Read.WithTagConditions): Le espressioni di condizione ABAC vengono ignorate.
Impostare il livello di accesso in un BLOB (Blob.Write.Tier): Le espressioni di condizione ABAC vengono ignorate.
Scrivere in un BLOB con tag indice BLOB (Blob.Write.WithTagHeaders): le espressioni di condizione ABAC vengono ignorate.
L'impostazione di una home directory non è supportata.
La stringa di connessione non può includere il nome del contenitore. L'utente si connette alla radice dell'account di archiviazione e quindi passa al contenitore di destinazione e alle directory usando i comandi 'change directory' (cd).
Al momento,
chownechgrprichiedono privilegi di superutente e autorizzazioni di gestione della proprietà, oppure autorizzazioni di gestione della proprietà, lettura e scrittura. In futuro sono richiesti solo i ruoli di gestione della proprietà o di superutente.Per
chmod, il requisito attuale è essere superutente e avere permessi di modifica, oppure avere permessi di modifica, lettura e scrittura. In futuro sarà necessario modificare solo i permessi o avere un superutente.
Risoluzione dei problemi
L'apertura di ogni contenitore fallisce con "Accesso negato"
Un Access denied errore può verificarsi anche se è possibile connettersi agli account di archiviazione tramite WinSCP ed è possibile visualizzare l'elenco dei contenitori dopo l'accesso.
Questo errore può verificarsi perché WinSCP tenta automaticamente di canonizzare ogni directory immessa. Ciò significa che per ognicd elenco di directory, invia una o più richieste di protocollo aggiuntive per individuare il percorso assoluto "vero".
- La directory radice mostra container.
- Ogni contenitore funge da chroot virtuale. Una volta che sei dentro di esso, non puoi andare sopra o fuori di esso.
- I percorsi sono virtuali, non fisici. Azure non supporta l'attraversamento assoluto sopra i contenitori basato su
/.
Risolvere il problema usando una delle opzioni seguenti:
Disabilitare Risolvi collegamenti simbolici. Passare a Advanced->Environment->Directories e deselezionare Risolvi collegamenti simbolici.
Impostare la directory remota. Passa a Advanced->Environment->Directories e imposta Remote Directory su "\<container-name>". Impostando questo valore, accedi direttamente al contenitore specificato dopo aver effettuato l'accesso.