Delen via


Toegang tot blobs en bestanden autoriseren met AzCopy en Microsoft Entra-id

U kunt AzCopy autorisatiereferenties opgeven met behulp van Microsoft Entra-id. Op die manier hoeft u geen SAS-token (Shared Access Signature) toe te voegen aan elke opdracht.

Begin met het verifiëren van uw roltoewijzingen. Kies vervolgens welk type beveiligingsprincipaal u wilt autoriseren. Een gebruikersidentiteit, een beheerde identiteit en een service-principal zijn elk een type beveiligingsprincipaal.

Als u toegang wilt autoriseren, stelt u omgevingsvariabelen in het geheugen in. Voer vervolgens een AzCopy-opdracht uit. AzCopy haalt het verificatietoken op dat is vereist om de bewerking te voltooien. Nadat de bewerking is voltooid, verdwijnt het token uit het geheugen.

AzCopy haalt het OAuth-token op met behulp van de referenties die u opgeeft. AzCopy kan ook het OAuth-token van een actieve Azure CLI- of Azure PowerShell-sessie gebruiken.

Ga aan de slag met AzCopy voor meer informatie over AzCopy.

Roltoewijzingen controleren

Het autorisatieniveau dat u nodig hebt, is gebaseerd op of u van plan bent om bestanden te uploaden of alleen te downloaden.

Als u alleen bestanden wilt downloaden, controleert u of de rol Opslagblobgegevenslezer (Azure Blob Storage) of de rol Lezer van opslagbestandsgegevens (Azure Files) is toegewezen aan uw gebruikersidentiteit, beheerde identiteit of service-principal.

Als u bestanden wilt uploaden naar Azure Blob Storage, controleert u of een van deze rollen is toegewezen aan uw beveiligingsprincipaal.

Als u bestanden wilt uploaden naar een Azure-bestandsshare, controleert u of de lezer met bevoegdheden voor opslagbestandsgegevens is toegewezen aan uw beveiligingsprincipaal.

Deze rollen kunnen worden toegewezen aan uw beveiligingsprincipaal in een van deze bereiken:

  • Container (bestandssysteem) of bestandsshare
  • Opslagaccount
  • Resourcegroep
  • Abonnement

Zie Een Azure-rol toewijzen voor toegang tot blobgegevens (Blob Storage) of kiezen hoe u toegang tot bestandsgegevens in Azure Portal (Azure Files) autoriseert en autoriseert.

Notitie

Houd er rekening mee dat het maximaal vijf minuten kan duren voordat Azure-roltoewijzingen zijn doorgegeven.

U hoeft geen van deze rollen toe te wijzen aan uw beveiligingsprincipaal als uw beveiligingsprincipaal wordt toegevoegd aan de toegangsbeheerlijst (ACL) van de doelcontainer of map. In de ACL heeft uw beveiligingsprincipaal schrijfmachtiging nodig voor de doelmap en moet de machtiging voor de container en elke bovenliggende map worden uitgevoerd.

Zie het Access Control-model in Azure Data Lake Storage voor meer informatie.

Autoriseren met AzCopy

AzCopy gebruikt de referenties die u opgeeft om de beveiligingsprincipaal te autoriseren.

Een gebruikersidentiteit autoriseren

Nadat u hebt geverifieerd dat uw gebruikersidentiteit het benodigde autorisatieniveau heeft gekregen, typt u de volgende opdracht en drukt u vervolgens op Enter.

export AZCOPY_AUTO_LOGIN_TYPE=DEVICE

Voer vervolgens een azcopy-opdracht uit (bijvoorbeeld: azcopy list https://contoso.blob.core.windows.net).

Met deze opdracht worden een verificatiecode en de URL van een website geretourneerd. Open de website, geef de code op en kies vervolgens de knop Volgende.

Een container maken

Er wordt een aanmeldingsvenster weergegeven. Meld u in dat venster aan bij uw Azure-account met behulp van de referenties van uw Azure-account. Nadat u zich hebt aangemeld, kan de bewerking worden voltooid.

Een beheerde identiteit autoriseren

Dit is een uitstekende optie als u AzCopy wilt gebruiken in een script dat wordt uitgevoerd zonder tussenkomst van de gebruiker en het script wordt uitgevoerd vanaf een virtuele Azure-machine (VM). Wanneer u deze optie gebruikt, hoeft u geen referenties op te slaan op de virtuele machine.

U kunt zich aanmelden bij uw account met behulp van een door het systeem beheerde identiteit die u hebt ingeschakeld op uw VIRTUELE machine, of met behulp van de client-id, object-id of resource-id van een door de gebruiker toegewezen beheerde identiteit die u aan uw VIRTUELE machine hebt toegewezen.

Zie Beheerde identiteiten configureren voor Azure-resources op een VIRTUELE machine met behulp van Azure Portal voor meer informatie over het inschakelen van een door het systeem beheerde identiteit of het maken van een door de gebruiker toegewezen beheerde identiteit.

Autoriseren met behulp van een door het systeem beheerde identiteit

Zorg er eerst voor dat u een door het systeem beheerde identiteit hebt ingeschakeld op uw VIRTUELE machine. Zie door het systeem toegewezen beheerde identiteit.

Typ de volgende opdracht en druk op Enter.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Voer vervolgens een azcopy-opdracht uit (bijvoorbeeld: azcopy list https://contoso.blob.core.windows.net).

Autoriseren met behulp van een door de gebruiker toegewezen beheerde identiteit

Controleer eerst of u een door de gebruiker toegewezen beheerde identiteit hebt ingeschakeld op uw VIRTUELE machine. Zie door de gebruiker toegewezen beheerde identiteit.

Typ de volgende opdracht en druk op Enter.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Typ vervolgens een van de volgende opdrachten en druk op Enter.

export AZCOPY_MSI_CLIENT_ID=<client-id>

Vervang de <client-id> tijdelijke aanduiding door de client-id van de door de gebruiker toegewezen beheerde identiteit.

export AZCOPY_MSI_OBJECT_ID=<object-id>

Vervang de <object-id> tijdelijke aanduiding door de object-id van de door de gebruiker toegewezen beheerde identiteit.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

Vervang de <resource-id> tijdelijke aanduiding door de resource-id van de door de gebruiker toegewezen beheerde identiteit.

Nadat u deze variabelen hebt ingesteld, kunt u elke azcopy-opdracht uitvoeren (bijvoorbeeld: azcopy list https://contoso.blob.core.windows.net).

Een service-principal autoriseren

Dit is een uitstekende optie als u AzCopy wilt gebruiken in een script dat wordt uitgevoerd zonder tussenkomst van de gebruiker, met name wanneer u on-premises uitvoert. Als u AzCopy wilt uitvoeren op VM's die worden uitgevoerd in Azure, is een beheerde service-identiteit eenvoudiger te beheren. Zie de sectie Een beheerde identiteit autoriseren van dit artikel voor meer informatie.

U kunt zich aanmelden bij uw account met behulp van een clientgeheim of met het wachtwoord van een certificaat dat is gekoppeld aan de app-registratie van uw service-principal.

Zie De portal gebruiken om een Microsoft Entra-toepassing en service-principal te maken die toegang heeft tot resources voor meer informatie over het maken van een service-principal.

Zie Toepassings- en service-principalobjecten in Microsoft Entra ID voor meer informatie over service-principals in het algemeen

Een service-principal autoriseren met behulp van een clientgeheim

Typ de volgende opdracht en druk op Enter.

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>

Vervang de <application-id> tijdelijke aanduiding door de toepassings-id van de app-registratie van uw service-principal. Vervang de <client-secret> tijdelijke aanduiding door het clientgeheim. Vervang de <tenant-id> tijdelijke aanduiding door de tenant-id van de organisatie waartoe het opslagaccount behoort. Als u de tenant-id wilt vinden, selecteert u tenant-id van tenanteigenschappen > in De Azure-portal.

Notitie

U kunt een prompt gebruiken om het wachtwoord van de gebruiker te verzamelen. Op die manier wordt uw wachtwoord niet weergegeven in uw opdrachtgeschiedenis.

Voer vervolgens een azcopy-opdracht uit (bijvoorbeeld: azcopy list https://contoso.blob.core.windows.net).

Een service-principal autoriseren met behulp van een certificaat

Als u liever uw eigen referenties gebruikt voor autorisatie, kunt u een certificaat uploaden naar uw app-registratie en dat certificaat vervolgens gebruiken om u aan te melden.

Naast het uploaden van uw certificaat naar uw app-registratie, moet u ook een kopie hebben van het certificaat dat is opgeslagen op de computer of VM waarop AzCopy wordt uitgevoerd. Deze kopie van het certificaat moet zich in . PFX of . PEM-indeling en moet de persoonlijke sleutel bevatten. De persoonlijke sleutel moet met een wachtwoord zijn beveiligd. Als u Windows gebruikt en uw certificaat alleen in een certificaatarchief bestaat, moet u dat certificaat exporteren naar een PFX-bestand (inclusief de persoonlijke sleutel). Zie Export-PfxCertificate voor hulp

Typ de volgende opdracht en druk op Enter.

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>

Vervang de <application-id> tijdelijke aanduiding door de toepassings-id van de app-registratie van uw service-principal. Vervang de <path-to-certificate-file> tijdelijke aanduiding door het relatieve of volledig gekwalificeerde pad naar het certificaatbestand. In AzCopy wordt het pad naar dit certificaat opgeslagen, maar er wordt geen kopie van het certificaat opgeslagen. Zorg er dus voor dat u dat certificaat op de plaats houdt. Vervang de <certificate-password> tijdelijke aanduiding door het wachtwoord van het certificaat. Vervang de <tenant-id> tijdelijke aanduiding door de tenant-id van de organisatie waartoe het opslagaccount behoort. Als u de tenant-id wilt vinden, selecteert u tenant-id van tenanteigenschappen > in De Azure-portal.

Notitie

U kunt een prompt gebruiken om het wachtwoord van de gebruiker te verzamelen. Op die manier wordt uw wachtwoord niet weergegeven in uw opdrachtgeschiedenis.

Voer vervolgens een azcopy-opdracht uit (bijvoorbeeld: azcopy list https://contoso.blob.core.windows.net).

Autoriseren met behulp van de AzCopy-aanmeldingsopdracht

Als alternatief voor het gebruik van variabelen in het geheugen machtigt u toegang met behulp van de opdracht azcopy-aanmelding.

De azcopy-aanmeldingsopdracht haalt een OAuth-token op en plaatst dat token vervolgens in een geheim archief op uw systeem. Als uw besturingssysteem geen geheimarchief heeft, zoals een Linux-sleutelring, werkt de azcopy-aanmeldingsopdracht niet omdat het token nergens kan worden geplaatst.

Een gebruikersidentiteit autoriseren (azcopy-aanmeldingsopdracht)

Nadat u hebt geverifieerd dat uw gebruikersidentiteit het benodigde autorisatieniveau heeft gekregen, opent u een opdrachtprompt, typt u de volgende opdracht en drukt u op Enter.

azcopy login

Als er een fout optreedt, probeert u de tenant-id op te nemen van de organisatie waartoe het opslagaccount behoort.

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

Vervang de <tenant-id> tijdelijke aanduiding door de tenant-id van de organisatie waartoe het opslagaccount behoort. Als u de tenant-id wilt vinden, selecteert u tenant-id van tenanteigenschappen > in De Azure-portal.

Met deze opdracht worden een verificatiecode en de URL van een website geretourneerd. Open de website, geef de code op en kies vervolgens de knop Volgende.

Een container maken

Er wordt een aanmeldingsvenster weergegeven. Meld u in dat venster aan bij uw Azure-account met behulp van de referenties van uw Azure-account. Nadat u bent aangemeld, kunt u het browservenster sluiten en AzCopy gebruiken.

Autoriseren met behulp van een door het systeembrede beheerde identiteit (azcopy-aanmeldingsopdracht)

Zorg er eerst voor dat u een door het systeem beheerde identiteit hebt ingeschakeld op uw VIRTUELE machine. Zie door het systeem toegewezen beheerde identiteit.

Typ vervolgens in de opdrachtconsole de volgende opdracht en druk op Enter.

azcopy login --identity

Autoriseren met behulp van een door de gebruiker toegewezen beheerde identiteit (azcopy-aanmeldingsopdracht)

Controleer eerst of u een door de gebruiker toegewezen beheerde identiteit hebt ingeschakeld op uw VIRTUELE machine. Zie door de gebruiker toegewezen beheerde identiteit.

Typ vervolgens in de opdrachtconsole een van de volgende opdrachten en druk op Enter.

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

Vervang de <client-id> tijdelijke aanduiding door de client-id van de door de gebruiker toegewezen beheerde identiteit.

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

Vervang de <object-id> tijdelijke aanduiding door de object-id van de door de gebruiker toegewezen beheerde identiteit.

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

Vervang de <resource-id> tijdelijke aanduiding door de resource-id van de door de gebruiker toegewezen beheerde identiteit.

Een service-principal autoriseren (azcopy-aanmeldingsopdracht)

Voordat u een script uitvoert, moet u zich ten minste één keer interactief aanmelden, zodat u AzCopy de referenties van uw service-principal kunt opgeven. Deze referenties worden opgeslagen in een beveiligd en versleuteld bestand, zodat uw script die gevoelige informatie niet hoeft op te geven.

U kunt zich aanmelden bij uw account met behulp van een clientgeheim of met het wachtwoord van een certificaat dat is gekoppeld aan de app-registratie van uw service-principal.

Zie De portal gebruiken om een Microsoft Entra-toepassing en service-principal te maken die toegang heeft tot resources voor meer informatie over het maken van een service-principal.

Een service-principal autoriseren met behulp van een clientgeheim (azcopy-aanmeldingsopdracht)

Begin met het instellen van de AZCOPY_SPA_CLIENT_SECRET omgevingsvariabele op het clientgeheim van de app-registratie van uw service-principal.

Notitie

Zorg ervoor dat u deze waarde instelt vanaf de opdrachtprompt en niet in de omgevingsvariabeleinstellingen van uw besturingssysteem. Op die manier is de waarde alleen beschikbaar voor de huidige sessie.

In dit voorbeeld ziet u hoe u dit kunt doen in PowerShell.

$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"

Notitie

U kunt een prompt gebruiken, zoals in dit voorbeeld wordt weergegeven. Op die manier wordt uw wachtwoord niet weergegeven in de opdrachtgeschiedenis van uw console.

Typ vervolgens de volgende opdracht en druk op Enter.

azcopy login --service-principal  --application-id application-id --tenant-id=tenant-id

Vervang de <application-id> tijdelijke aanduiding door de toepassings-id van de app-registratie van uw service-principal. Vervang de <tenant-id> tijdelijke aanduiding door de tenant-id van de organisatie waartoe het opslagaccount behoort. Als u de tenant-id wilt vinden, selecteert u tenant-id van tenanteigenschappen > in De Azure-portal.

Een service-principal autoriseren met behulp van een certificaat (azcopy-aanmeldingsopdracht)

Als u liever uw eigen referenties gebruikt voor autorisatie, kunt u een certificaat uploaden naar uw app-registratie en dat certificaat vervolgens gebruiken om u aan te melden.

Naast het uploaden van uw certificaat naar uw app-registratie, moet u ook een kopie hebben van het certificaat dat is opgeslagen op de computer of VM waarop AzCopy wordt uitgevoerd. Deze kopie van het certificaat moet zich in . PFX of . PEM-indeling en moet de persoonlijke sleutel bevatten. De persoonlijke sleutel moet met een wachtwoord zijn beveiligd. Als u Windows gebruikt en uw certificaat alleen in een certificaatarchief bestaat, moet u dat certificaat exporteren naar een PFX-bestand (inclusief de persoonlijke sleutel). Zie Export-PfxCertificate voor hulp

Stel vervolgens de AZCOPY_SPA_CERT_PASSWORD omgevingsvariabele in op het certificaatwachtwoord.

Notitie

Zorg ervoor dat u deze waarde instelt vanaf de opdrachtprompt en niet in de omgevingsvariabeleinstellingen van uw besturingssysteem. Op die manier is de waarde alleen beschikbaar voor de huidige sessie.

In dit voorbeeld ziet u hoe u deze taak kunt uitvoeren in PowerShell.

$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"

Typ vervolgens de volgende opdracht en druk op Enter.

azcopy login --service-principal --application-id application-id --certificate-path <path-to-certificate-file> --tenant-id=<tenant-id>

Vervang de <application-id> tijdelijke aanduiding door de toepassings-id van de app-registratie van uw service-principal. Vervang de <path-to-certificate-file> tijdelijke aanduiding door het relatieve of volledig gekwalificeerde pad naar het certificaatbestand. In AzCopy wordt het pad naar dit certificaat opgeslagen, maar er wordt geen kopie van het certificaat opgeslagen. Zorg er dus voor dat u dat certificaat op de plaats houdt. Vervang de <tenant-id> tijdelijke aanduiding door de tenant-id van de organisatie waartoe het opslagaccount behoort. Als u de tenant-id wilt vinden, selecteert u tenant-id van tenanteigenschappen > in De Azure-portal.

Notitie

U kunt een prompt gebruiken, zoals in dit voorbeeld wordt weergegeven. Op die manier wordt uw wachtwoord niet weergegeven in de opdrachtgeschiedenis van uw console.

Autoriseren met Azure CLI

Als u zich aanmeldt met behulp van Azure CLI, verkrijgt Azure CLI een OAuth-token dat AzCopy kan gebruiken om bewerkingen te autoriseren.

Als u Wilt dat AzCopy dat token gebruikt, typt u de volgende opdracht en drukt u op Enter.

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI

Zie Aanmelden met Azure CLI voor meer informatie over het aanmelden met de Azure CLI.

Autoriseren met Azure PowerShell

Als u zich aanmeldt met behulp van Azure PowerShell, verkrijgt Azure PowerShell een OAuth-token dat AzCopy kan gebruiken om bewerkingen te autoriseren.

Als u Wilt dat AzCopy dat token gebruikt, typt u de volgende opdracht en drukt u op Enter.

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"

Zie Aanmelden met Azure PowerShell voor meer informatie over het aanmelden met Azure PowerShell.

Volgende stappen

  • Ga aan de slag met AzCopy voor meer informatie over AzCopy

  • Als u vragen, problemen of algemene feedback hebt, dient u deze in op de GitHub-pagina .