Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tjänstens huvudprinciper tillhandahåller ett säkert sätt att auktorisera AzCopy-operationer för applikationer och automatiserade scenarier som kräver icke-interaktiv autentisering. Den här autentiseringsmetoden är perfekt för pipelines för kontinuerlig integrering och kontinuerlig distribution, schemalagda uppgifter och program som körs utanför Azure där hanterade identiteter inte är tillgängliga.
Den här artikeln visar hur du autentiserar AzCopy med hjälp av en tjänstprincip med antingen en klientsekretess eller ett certifikat. Du lär dig hur du konfigurerar autentisering via miljövariabler, AzCopy-inloggningskommandot eller genom att utnyttja befintliga Azure CLI- eller Azure PowerShell-sessioner.
Anmärkning
Tjänstens huvudnamn erbjuder flexibilitet för plattformsoberoende scenarier, men Microsoft rekommenderar att du använder hanterade identiteter när du kör på Azure-resurser för förbättrad säkerhet och förenklad hantering av autentiseringsuppgifter. Mer information om andra sätt att auktorisera åtkomst till AzCopy finns i Auktorisera AzCopy.
Verifiera rolltilldelningar
Se till att tjänstens principal har den Azure-roll som krävs för de operationer du avser.
För nedladdningsåtgärder använder du Storage Blob Data Reader (Blob Storage) eller Storage File Data Privileged Reader (Azure Files).
För uppladdningsåtgärder använder du Storage Blob Data Contributor eller Storage Blob Data Owner (Blob Storage) eller Storage File Data Privileged Contributor (Azure Files)
Anvisningar för rolltilldelning finns i Tilldela en Azure-roll för åtkomst till blobdata (Blob Storage) eller Välj hur du auktoriserar åtkomst till fildata i Azure-portalen (Azure Files).
Anmärkning
Rolltilldelningar kan ta upp till fem minuter att träda i kraft.
Om du överför blobar i ett konto som har ett hierarkiskt namnområde behöver du inte tilldela någon av dessa roller till säkerhetsobjektet om du lägger till säkerhetsobjektet i åtkomstkontrollistan (ACL) för målcontainern eller katalogen. Säkerhetsprincipalen behöver ha skrivbehörighet på målkatalogen och exekvera behörighet på containern samt varje föräldrakatalog inom ACL. Mer information finns i Åtkomstkontrollmodell i Azure Data Lake Storage.
Auktorisera med miljövariabler
Om du vill auktorisera åtkomst anger du miljövariabler i minnet. Kör sedan valfritt AzCopy-kommando. AzCopy hämtar den autentiseringstoken som krävs för att slutföra åtgärden. När åtgärden är klar försvinner token från minnet.
AzCopy hämtar OAuth-token med hjälp av de autentiseringsuppgifter som du anger. AzCopy kan också använda OAuth-token för en aktiv Azure CLI- eller Azure PowerShell-session.
Det här alternativet är bra om du planerar att använda AzCopy i ett skript som körs utan användarinteraktion, särskilt när du kör lokalt. Om du planerar att köra AzCopy på virtuella datorer som körs i Azure är en hanterad tjänstidentitet enklare att administrera. Mer information finns i avsnittet Auktorisera åtkomst för AzCopy med hjälp av en hanterad identitet i den här artikeln.
Försiktighet
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Autentiseringsflödet som beskrivs i den här proceduren kräver en mycket hög grad av förtroende för programmet och medför risker som inte finns i andra flöden. Använd endast det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.
Du kan logga in på ditt konto med hjälp av en klienthemlighet eller genom att använda lösenordet för ett certifikat som är associerat med tjänstens huvudnamns appregistrering.
Mer information om hur du skapar tjänstens huvudnamn finns i Så här använder du portalen för att skapa ett Microsoft Entra-program och tjänstens huvudnamn som kan komma åt resurser.
För att lära dig mer om tjänstehuvudnamn i allmänhet, se Program- och tjänstehuvudnamnsobjekt i Microsoft Entra-ID
Auktorisera ett huvudnamn för tjänsten med hjälp av en klienthemlighet
Skriv följande kommando och tryck sedan på RETUR.
export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CLIENT_SECRET=<client-secret>
export AZCOPY_TENANT_ID=<tenant-id>
Ersätt <application-id>-platshållaren med program-ID:t för din tjänsteprincipals appregistrering.
<tenant-id> Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Information om hur du hittar program-ID:t och klient-ID:t finns i Logga in på programmet.
Ersätt <client-secret>-platshållaren med klienthemligheten. Information om hur du hämtar en klienthemlighet finns i Skapa en ny klienthemlighet.
Anmärkning
Överväg att använda en uppmaning för att samla in lösenordet från användaren. På så sätt visas inte lösenordet i kommandohistoriken.
Kör sedan valfritt azcopy-kommando (till exempel: azcopy list https://contoso.blob.core.windows.net).
Auktorisera ett huvudnamn för tjänsten med hjälp av ett certifikat
Om du föredrar att använda dina egna autentiseringsuppgifter för auktorisering kan du ladda upp ett certifikat till din appregistrering och sedan använda certifikatet för att logga in. Information om hur du laddar upp certifikatet finns i Konfigurera autentisering.
Förutom att ladda upp certifikatet till appregistreringen måste du också ha en kopia av certifikatet sparat på den dator eller den virtuella dator där AzCopy körs. Den här kopian av certifikatet ska vara i . PFX eller . PEM-format och måste innehålla den privata nyckeln. Den privata nyckeln ska vara lösenordsskyddad. Om du använder Windows och certifikatet bara finns i ett certifikatarkiv ska du exportera certifikatet till en PFX-fil (inklusive den privata nyckeln). Vägledning finns i Export-PfxCertificate
Skriv följande kommando och tryck sedan på RETUR.
export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CERT_PATH=<path-to-certificate-file>
export AZCOPY_SPA_CERT_PASSWORD=<certificate-password>
export AZCOPY_TENANT_ID=<tenant-id>
Ersätt <application-id>-platshållaren med program-ID:t för din tjänsteprincipals appregistrering.
<tenant-id> Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Information om hur du hittar program-ID:t och klient-ID:t finns i Logga in på programmet.
Ersätt platshållaren <path-to-certificate-file> med den relativa eller fullständigt kvalificerade sökvägen till certifikatfilen. AzCopy sparar sökvägen till det här certifikatet men sparar inte en kopia av certifikatet, så se till att behålla certifikatet på plats.
<certificate-password> Ersätt platshållaren med lösenordet för certifikatet.
Anmärkning
Överväg att använda en uppmaning för att samla in lösenordet från användaren. På så sätt visas inte lösenordet i kommandohistoriken.
Kör sedan valfritt azcopy-kommando (till exempel: azcopy list https://contoso.blob.core.windows.net).
Auktorisera med kommandot AzCopy-inloggning
Som ett alternativ till att använda minnesinterna variabler kan du auktorisera åtkomst med hjälp av kommandot azcopy-inloggning.
Kommandot azcopy-inloggning hämtar en OAuth-token och placerar sedan token i ett hemligt arkiv i systemet. Om operativsystemet inte har något hemligt arkiv, till exempel en Linux-nyckelring, fungerar inte kommandot azcopy-inloggning eftersom det inte finns någon plats för token.
Auktorisera ett huvudnamn för tjänsten
Innan du kör ett skript måste du logga in interaktivt minst en gång så att du kan ange autentiseringsuppgifterna för tjänsthuvudman för AzCopy. AzCopy lagrar dessa autentiseringsuppgifter i en skyddad och krypterad fil så att skriptet inte behöver ange den känsliga informationen.
Du kan logga in på ditt konto med hjälp av en klienthemlighet eller genom att använda lösenordet för ett certifikat som är associerat med tjänstens huvudnamns appregistrering.
Mer information om hur du skapar tjänstens huvudnamn finns i Så här använder du portalen för att skapa ett Microsoft Entra-program och tjänstens huvudnamn som kan komma åt resurser.
Försiktighet
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Autentiseringsflödet som beskrivs i den här proceduren kräver en mycket hög grad av förtroende för programmet och medför risker som inte finns i andra flöden. Använd endast det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.
Auktorisera ett huvudnamn för tjänsten med hjälp av en klienthemlighet
Börja med att ange AZCOPY_SPA_CLIENT_SECRET miljövariabeln till klienthemligheten för tjänstens huvudnamns appregistrering. Information om hur du hämtar en klienthemlighet finns i Skapa en ny klienthemlighet.
Anmärkning
Se till att ange det här värdet från kommandotolken och inte i miljövariabelinställningarna för operativsystemet. På så sätt är värdet endast tillgängligt för den aktuella sessionen.
Det här exemplet visar hur du kan göra detta i PowerShell.
$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"
Anmärkning
Överväg att använda en fråga som visas i det här exemplet. På så sätt visas inte lösenordet i konsolens kommandohistorik.
Skriv sedan följande kommando och tryck sedan på RETUR.
azcopy login --service-principal --application-id application-id --tenant-id=tenant-id
Ersätt application-id-platshållaren med program-ID:t för din tjänsteprincipals appregistrering.
<tenant-id> Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Information om hur du hittar program-ID:t och klient-ID:t finns i Logga in på programmet.
Auktorisera ett huvudnamn för tjänsten med hjälp av ett certifikat
Om du föredrar att använda dina egna autentiseringsuppgifter för auktorisering kan du ladda upp ett certifikat till din appregistrering och sedan använda certifikatet för att logga in. Information om hur du laddar upp certifikatet finns i Konfigurera autentisering.
Förutom att ladda upp certifikatet till appregistreringen måste du också ha en kopia av certifikatet sparat på den dator eller den virtuella dator där AzCopy körs. Den här kopian av certifikatet ska vara i . PFX eller . PEM-format och måste innehålla den privata nyckeln. Den privata nyckeln ska vara lösenordsskyddad. Om du använder Windows och certifikatet bara finns i ett certifikatarkiv ska du exportera certifikatet till en PFX-fil (inklusive den privata nyckeln). Vägledning finns i Export-PfxCertificate
Ange AZCOPY_SPA_CERT_PASSWORD sedan miljövariabeln till certifikatlösenordet.
Anmärkning
Se till att ange det här värdet från kommandotolken och inte i miljövariabelinställningarna för operativsystemet. På så sätt är värdet endast tillgängligt för den aktuella sessionen.
Det här exemplet visar hur du kan göra den här uppgiften i PowerShell.
$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"
Skriv sedan följande kommando och tryck sedan på RETUR.
azcopy login --service-principal --application-id application-id --certificate-path <path-to-certificate-file> --tenant-id=<tenant-id>
Ersätt application-id-platshållaren med program-ID:t för din tjänsteprincipals appregistrering.
tenant-id Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Information om hur du hittar program-ID:t och klient-ID:t finns i Logga in på programmet.
Ersätt platshållaren <path-to-certificate-file> med den relativa eller fullständigt kvalificerade sökvägen till certifikatfilen. AzCopy sparar sökvägen till det här certifikatet men sparar inte en kopia av certifikatet, så se till att behålla certifikatet på plats.
Anmärkning
Överväg att använda en fråga som visas i det här exemplet. På så sätt visas inte lösenordet i konsolens kommandohistorik.
Auktorisera med Azure CLI
När du loggar in med hjälp av Azure CLI hämtar Azure CLI en OAuth-token som AzCopy använder för att auktorisera åtgärder.
Om du vill göra det möjligt för AzCopy att använda den token skriver du följande kommando och trycker sedan på RETUR.
Mer information om hur du loggar in med Azure CLI finns i Logga in på Azure med tjänstens huvudnamn med hjälp av Azure CLI.
Auktorisera med Azure PowerShell
När du loggar in med Azure PowerShell hämtar Azure PowerShell en OAuth-token som AzCopy använder för att auktorisera åtgärder.
Om du vill göra det möjligt för AzCopy att använda den token skriver du följande kommando och trycker sedan på RETUR.
$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"
$Env:AZCOPY_TENANT_ID="<tenant-id>"
Mer information om hur du loggar in med Azure PowerShell finns i Logga in med tjänstens huvudnamn.
Nästa steg
Mer information om AzCopy finns i Komma igång med AzCopy.
Om du har frågor, problem eller allmän feedback skickar du dem på GitHub.