Share via


Auktorisera åtkomst till blobar och filer med AzCopy och Microsoft Entra ID

Du kan ange autentiseringsuppgifter för AzCopy med hjälp av Microsoft Entra-ID. På så sätt behöver du inte lägga till en SAS-token (signatur för delad åtkomst) till varje kommando.

Börja med att verifiera dina rolltilldelningar. Välj sedan vilken typ av säkerhetsobjekt du vill auktorisera. En användaridentitet, en hanterad identitet och ett huvudnamn för tjänsten är var och en en typ av säkerhetsobjekt.

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.

Mer information om AzCopy finns i Kom igång med AzCopy.

Verifiera rolltilldelningar

Den auktoriseringsnivå som du behöver baseras på om du planerar att ladda upp filer eller bara ladda ned dem.

Om du bara vill ladda ned filer kontrollerar du att rollen Storage Blob Data Reader (Azure Blob Storage) eller rollen Privilegierad läsare för lagringsfil (Azure Files) har tilldelats till din användaridentitet, hanterade identitet eller tjänstens huvudnamn.

Om du vill ladda upp filer till Azure Blob Storage kontrollerar du att en av dessa roller har tilldelats säkerhetsobjektet.

Om du vill ladda upp filer till en Azure-filresurs kontrollerar du att lagringsfilens dataprivilegierade läsare har tilldelats säkerhetsobjektet.

Dessa roller kan tilldelas till ditt säkerhetsobjekt i något av dessa omfång:

  • Container (filsystem) eller filresurs
  • Lagringskonto
  • Resursgrupp
  • Prenumeration

Information om hur du verifierar och tilldelar roller 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).

Kommentar

Tänk på att Azure-rolltilldelningar kan ta upp till fem minuter att sprida.

Du behöver inte ha någon av de här rollerna tilldelad till säkerhetsobjektet om ditt säkerhetsobjekt läggs till i åtkomstkontrollistan (ACL) för målcontainern eller katalogen. I ACL:en behöver säkerhetsobjektet skrivbehörighet i målkatalogen och köra behörighet på containern och varje överordnad katalog.

Mer information finns i Åtkomstkontrollmodell i Azure Data Lake Storage Gen2.

Auktorisera med AzCopy

AzCopy använder de autentiseringsuppgifter som du anger för att auktorisera säkerhetsobjektet.

Auktorisera en användaridentitet

När du har kontrollerat att användaridentiteten har fått den auktoriseringsnivå som krävs skriver du följande kommando och trycker sedan på RETUR.

export AZCOPY_AUTO_LOGIN_TYPE=DEVICE

Kör sedan valfritt azcopy-kommando (till exempel: azcopy list https://contoso.blob.core.windows.net).

Det här kommandot returnerar en autentiseringskod och URL:en för en webbplats. Öppna webbplatsen, ange koden och välj sedan knappen Nästa .

Skapa en container

Ett inloggningsfönster visas. I det fönstret loggar du in på ditt Azure-konto med dina autentiseringsuppgifter för Azure-kontot. När du har loggat in kan åtgärden slutföras.

Auktorisera en hanterad identitet

Det här är ett bra alternativ om du planerar att använda AzCopy i ett skript som körs utan användarinteraktion, och skriptet körs från en virtuell Azure-dator (VM). När du använder det här alternativet behöver du inte lagra några autentiseringsuppgifter på den virtuella datorn.

Du kan logga in på ditt konto med hjälp av en systemomfattande hanterad identitet som du har aktiverat på den virtuella datorn, eller med hjälp av klient-ID, objekt-ID eller resurs-ID för en användartilldelad hanterad identitet som du har tilldelat till den virtuella datorn.

Mer information om hur du aktiverar en systemomfattande hanterad identitet eller skapar en användartilldelad hanterad identitet finns i Konfigurera hanterade identiteter för Azure-resurser på en virtuell dator med hjälp av Azure-portalen.

Auktorisera med hjälp av en systemomfattande hanterad identitet

Kontrollera först att du har aktiverat en systemomfattande hanterad identitet på den virtuella datorn. Se Systemtilldelad hanterad identitet.

Skriv följande kommando och tryck sedan på RETUR.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Kör sedan valfritt azcopy-kommando (till exempel: azcopy list https://contoso.blob.core.windows.net).

Auktorisera med hjälp av en användartilldelad hanterad identitet

Kontrollera först att du har aktiverat en användartilldelad hanterad identitet på den virtuella datorn. Se Användartilldelad hanterad identitet.

Skriv följande kommando och tryck sedan på RETUR.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Skriv sedan något av följande kommandon och tryck sedan på RETUR.

export AZCOPY_MSI_CLIENT_ID=<client-id>

<client-id> Ersätt platshållaren med klient-ID:t för den användartilldelade hanterade identiteten.

export AZCOPY_MSI_OBJECT_ID=<object-id>

<object-id> Ersätt platshållaren med objekt-ID för den användartilldelade hanterade identiteten.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

<resource-id> Ersätt platshållaren med resurs-ID:t för den användartilldelade hanterade identiteten.

När du har angett dessa variabler kan du köra valfritt azcopy-kommando (till exempel: azcopy list https://contoso.blob.core.windows.net).

Auktorisera tjänstens huvudnamn

Det här är ett bra alternativ 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 en hanterad identitet i den här artikeln.

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.

Mer information om tjänstens huvudnamn finns i Objekt för program och tjänstens huvudnamn 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>

<application-id> Ersätt platshållaren med program-ID:t för tjänstens huvudnamns appregistrering. <client-secret> Ersätt platshållaren med klienthemligheten. <tenant-id> Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Om du vill hitta klientorganisations-ID:t väljer du Microsoft Entra ID > Properties > Directory ID i Azure-portalen.

Kommentar

Ö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.

Förutom att ladda upp certifikatet till appregistreringen måste du också ha en kopia av certifikatet sparat på datorn eller den virtuella datorn 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>

<application-id> Ersätt platshållaren med program-ID:t för tjänstens huvudnamns appregistrering. <path-to-certificate-file> Ersätt platshållaren 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. <tenant-id> Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Om du vill hitta klientorganisations-ID:t väljer du Microsoft Entra ID > Properties > Directory ID i Azure-portalen.

Kommentar

Ö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 hjälp av 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 en användaridentitet (azcopy-inloggningskommando)

När du har kontrollerat att användaridentiteten har fått den auktoriseringsnivå som krävs öppnar du en kommandotolk, skriver följande kommando och trycker sedan på RETUR.

azcopy login

Om du får ett fel kan du prova att inkludera klientorganisations-ID:t för den organisation som lagringskontot tillhör.

azcopy login --tenant-id=<tenant-id>

<tenant-id> Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Om du vill hitta klientorganisations-ID:t väljer du Microsoft Entra ID > Properties > Directory ID i Azure-portalen.

Det här kommandot returnerar en autentiseringskod och URL:en för en webbplats. Öppna webbplatsen, ange koden och välj sedan knappen Nästa .

Skapa en container

Ett inloggningsfönster visas. I det fönstret loggar du in på ditt Azure-konto med dina autentiseringsuppgifter för Azure-kontot. När du har loggat in kan du stänga webbläsarfönstret och börja använda AzCopy.

Auktorisera med hjälp av en systemomfattande hanterad identitet (azcopy-inloggningskommando)

Kontrollera först att du har aktiverat en systemomfattande hanterad identitet på den virtuella datorn. Se Systemtilldelad hanterad identitet.

Skriv sedan följande kommando i kommandokonsolen och tryck sedan på RETUR.

azcopy login --identity

Auktorisera med hjälp av en användartilldelad hanterad identitet (azcopy-inloggningskommando)

Kontrollera först att du har aktiverat en användartilldelad hanterad identitet på den virtuella datorn. Se Användartilldelad hanterad identitet.

Skriv sedan något av följande kommandon i kommandokonsolen och tryck sedan på RETUR.

azcopy login --identity --identity-client-id "<client-id>"

<client-id> Ersätt platshållaren med klient-ID:t för den användartilldelade hanterade identiteten.

azcopy login --identity --identity-object-id "<object-id>"

<object-id> Ersätt platshållaren med objekt-ID för den användartilldelade hanterade identiteten.

azcopy login --identity --identity-resource-id "<resource-id>"

<resource-id> Ersätt platshållaren med resurs-ID:t för den användartilldelade hanterade identiteten.

Auktorisera ett huvudnamn för tjänsten (azcopy-inloggningskommando)

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änstens huvudnamn för AzCopy. Dessa autentiseringsuppgifter lagras 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.

Auktorisera ett huvudnamn för tjänsten med hjälp av en klienthemlighet (azcopy-inloggningskommando)

Börja med att ange AZCOPY_SPA_CLIENT_SECRET miljövariabeln till klienthemligheten för tjänstens huvudnamns appregistrering.

Kommentar

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")"

Kommentar

Ö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

<application-id> Ersätt platshållaren med program-ID:t för tjänstens huvudnamns appregistrering. <tenant-id> Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Om du vill hitta klientorganisations-ID:t väljer du Microsoft Entra ID > Properties > Directory ID i Azure-portalen.

Auktorisera ett huvudnamn för tjänsten med hjälp av ett certifikat (azcopy-inloggningskommando)

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.

Förutom att ladda upp certifikatet till appregistreringen måste du också ha en kopia av certifikatet sparat på datorn eller den virtuella datorn 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.

Kommentar

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>

<application-id> Ersätt platshållaren med program-ID:t för tjänstens huvudnamns appregistrering. <path-to-certificate-file> Ersätt platshållaren 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. <tenant-id> Ersätt platshållaren med klientorganisations-ID:t för den organisation som lagringskontot tillhör. Om du vill hitta klientorganisations-ID:t väljer du Microsoft Entra ID > Properties > Directory ID i Azure-portalen.

Kommentar

Ö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

Om du loggar in med Hjälp av Azure CLI hämtar Azure CLI en OAuth-token som AzCopy kan använda 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.

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI

Mer information om hur du loggar in med Azure CLI finns i Logga in med Azure CLI.

Auktorisera med Azure PowerShell

Om du loggar in med Azure PowerShell hämtar Azure PowerShell en OAuth-token som AzCopy kan använda 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"

Mer information om hur du loggar in med Azure PowerShell finns i Logga in med Azure PowerShell.

Nästa steg