Freigeben über


Autorisieren des AzCopy-Zugriffs mithilfe einer verwalteten Identität

Verwaltete Identitäten bieten eine sichere und bequeme Möglichkeit, AzCopy-Vorgänge zu autorisieren, ohne Anmeldeinformationen zu speichern oder SAS-Token zu verwalten. Diese Authentifizierungsmethode ist besonders nützlich für automatisierte Skripts, CI/CD-Pipelines und Anwendungen, die auf virtuellen Azure-Computern oder anderen Azure-Diensten ausgeführt werden.

In diesem Artikel wird erläutert, wie Sie AzCopy so konfigurieren, dass entweder vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identitäten verwendet werden. Sie können den Zugriff über Umgebungsvariablen, den AzCopy-Anmeldebefehl oder vorhandene Azure CLI- oder Azure PowerShell-Sitzungen autorisieren.

Weitere Informationen zu anderen Methoden zum Autorisieren des Zugriffs auf AzCopy finden Sie unter Autorisieren von AzCopy.

Überprüfen von Rollenzuweisungen

Stellen Sie sicher, dass Ihre verwaltete Identität über die erforderliche Azure-Rolle für Ihre beabsichtigten Vorgänge verfügt:

Anweisungen zum Zuweisen von Rollen finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf BLOB-Daten (Blob Storage) oder Auswählen, wie der Zugriff auf Dateidaten im Azure-Portal (Azure Files) autorisiert werden soll.

Hinweis

Rollenzuweisungen können bis zu fünf Minuten dauern, bis sie verteilt werden.

Wenn Sie Blobs in einem Konto mit einem hierarchischen Namespace übertragen, müssen Sie Ihrem Sicherheitsprinzipal keine dieser Rollen zuweisen, wenn Sie Ihren Sicherheitsprinzipal der Zugriffssteuerungsliste (Access Control List, ACL) des Zielcontainers oder Verzeichnisses hinzufügen. In der Zugriffssteuerungsliste benötigt Ihr Sicherheitsprinzipal Schreibberechtigungen für das Zielverzeichnis und Ausführungsberechtigungen für den Container und jedes übergeordnete Verzeichnis. Weitere Informationen finden Sie unter Zugriffssteuerungsmodell in Azure Data Lake Storage.

Autorisieren mithilfe von Umgebungsvariablen

Um den Zugriff zu autorisieren, legen Sie In-Memory-Umgebungsvariablen fest. Führen Sie dann einen beliebigen AzCopy-Befehl aus. AzCopy ruft das zum Abschließen des Vorgangs erforderliche Authentifizierungstoken ab. Nach Abschluss des Vorgangs wird das Token aus dem Arbeitsspeicher gelöscht.

AzCopy ruft das OAuth-Token mithilfe der von Ihnen bereitgestellten Anmeldeinformationen ab. Alternativ kann AzCopy das OAuth-Token einer aktiven Azure CLI- oder Azure PowerShell-Sitzung verwenden.

Diese Option eignet sich hervorragend, wenn Sie AzCopy innerhalb eines Skripts verwenden möchten, das ohne Benutzerinteraktion ausgeführt wird, und das Skript von einem virtuellen Azure-Computer (VM) ausgeführt wird. Wenn Sie diese Option verwenden, müssen Sie keine Anmeldeinformationen auf dem virtuellen Computer speichern.

Sie können sich bei Ihrem Konto anmelden, indem Sie eine systemweite verwaltete Identität verwenden, die Sie auf Ihrer VM aktivieren, oder mithilfe der Client-ID, Objekt-ID oder Ressourcen-ID einer vom Benutzer zugewiesenen verwalteten Identität, die Sie Ihrer VM zuweisen.

Weitere Informationen zum Aktivieren einer systemweiten verwalteten Identität oder zum Erstellen einer vom Benutzer zugewiesenen verwalteten Identität finden unter Konfigurieren von verwalteten Identitäten für Azure-Ressourcen auf einem virtuellen Computer über das Azure-Portal.

Autorisieren mithilfe einer systemweiten verwalteten Identität

Stellen Sie zunächst sicher, dass Sie eine systemweite verwaltete Identität auf Ihrem virtuellen Computer aktivieren. Weitere Informationen finden Sie unter vom System zugewiesenen verwalteten Identitäten.

Geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Führen Sie dann einen beliebigen Azcopy-Befehl aus. Beispiel: azcopy list https://contoso.blob.core.windows.net.

Autorisieren mithilfe einer benutzerseitig zugewiesenen verwalteten Identität

Stellen Sie zunächst sicher, dass Sie eine vom Benutzer zugewiesene verwaltete Identität auf Ihrem virtuellen Computer aktivieren. Weitere Informationen finden Sie unter Benutzerzugewiesene verwaltete Identität.

Geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Legen Sie als Nächstes Umgebungsvariablen für die Client-ID, die Objekt-ID oder die Ressourcen-ID der vom Benutzer zugewiesenen verwalteten Identität fest.

Verwenden einer Client-ID

Um die Autorisierung mit einer Client-ID durchzuführen, geben Sie den folgenden Befehl ein und drücken Sie anschließend die EINGABETASTE.

export AZCOPY_MSI_CLIENT_ID=<client-id>

Ersetzen Sie den Platzhalter <client-id> durch die Client-ID der benutzerseitig zugewiesenen verwalteten Identität.

Sie finden die Client-ID im Azure-Portal, indem Sie die Eigenschaften der verwalteten Identität anzeigen. Der folgende Screenshot zeigt den Speicherort der Client-ID-Eigenschaft.

Screenshot, der den Speicherort der Client-ID zeigt.

Verwenden einer Objekt-ID

Um eine Objekt-ID zu autorisieren, geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE.

export AZCOPY_MSI_OBJECT_ID=<object-id>

Ersetzen Sie den Platzhalter <object-id> durch die Objekt-ID der benutzerseitig zugewiesenen verwalteten Identität.

Sie finden die Objekt-ID im Azure-Portal, indem Sie die Eigenschaften der verwalteten Identität anzeigen. Der folgende Screenshot zeigt den Speicherort der Objekt-ID (auch als Prinzipal-ID bezeichnet).

Screenshot der Position der Objekt-ID.

Verwenden einer Ressourcen-ID

Um die Autorisierung mit Hilfe einer Ressourcen-ID vorzunehmen, geben Sie den folgenden Befehl ein und drücken Sie anschließend die Eingabetaste.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

Ersetzen Sie den Platzhalter <resource-id> durch die Ressourcen-ID der benutzerseitig zugewiesenen verwalteten Identität.

Sie finden die Ressourcen-ID im Azure-Portal, indem Sie die Eigenschaften der verwalteten Identität anzeigen. Der folgende Screenshot zeigt die Position der Ressourcen-ID-Eigenschaft.

Screenshot, der den Speicherort der Ressourcen-ID zeigt.

Autorisieren mithilfe des AzCopy-Authentifizierungsanmeldungsbefehls

Statt Speichervariablen zu verwenden, autorisieren Sie den Zugriff mithilfe des azcopy login Befehls.

Mit dem Befehl „azcopy login“ wird ein OAuth-Token abgerufen und in einem Geheimnisspeicher auf Ihrem System gespeichert. Wenn Ihr Betriebssystem keinen geheimen Speicher wie einen Linux-Keyring hat, funktioniert der Azcopy-Authentifizierungsanmeldungsbefehl nicht, da es nichts gibt, um das Token zu platzieren.

Autorisieren mit einer systemweiten verwalteten Identität

Stellen Sie zunächst sicher, dass Sie eine systemweite verwaltete Identität auf Ihrem virtuellen Computer aktivieren. Weitere Informationen finden Sie unter vom System zugewiesenen verwalteten Identitäten.

Geben Sie dann an der Befehlskonsole den folgenden Befehl ein, und drücken Sie die EINGABETASTE.

azcopy login --identity

Autorisieren mit einer vom Benutzer zugewiesenen verwalteten Identität

Stellen Sie zunächst sicher, dass Sie eine vom Benutzer zugewiesene verwaltete Identität auf Ihrem virtuellen Computer aktivieren. Weitere Informationen finden Sie unter Benutzerzugewiesene verwaltete Identität. Melden Sie sich dann mit der Client-ID, Objekt-ID oder Ressourcen-ID der vom Benutzer zugewiesenen verwalteten Identität an.

Anmelden mithilfe einer Client-ID

Geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE.

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

Ersetzen Sie den Platzhalter <client-id> durch die Client-ID der benutzerseitig zugewiesenen verwalteten Identität.

Sie finden die Client-ID im Azure-Portal, indem Sie die Eigenschaften der verwalteten Identität anzeigen. Der folgende Screenshot zeigt den Speicherort der Client-ID-Eigenschaft.

Screenshot, der die Position der Client-ID zeigt

Anmelden mithilfe einer Objekt-ID

Geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE.

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

Ersetzen Sie den Platzhalter <object-id> durch die Objekt-ID der benutzerseitig zugewiesenen verwalteten Identität.

Sie finden die Objekt-ID im Azure-Portal, indem Sie die Eigenschaften der verwalteten Identität anzeigen. Der folgende Screenshot zeigt den Speicherort der Objekt-ID (auch als Prinzipal-ID bezeichnet).

Screenshot der Position der Objekt-ID

Anmelden mithilfe einer Ressourcen-ID

Geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE.

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

Ersetzen Sie den Platzhalter <resource-id> durch die Ressourcen-ID der benutzerseitig zugewiesenen verwalteten Identität.

Sie finden die Ressourcen-ID im Azure-Portal, indem Sie die Eigenschaften der verwalteten Identität anzeigen. Der folgende Screenshot zeigt die Position der Ressourcen-ID-Eigenschaft.

Screenshot der Position der Ressourcen-ID

Autorisieren mit Azure CLI

Wenn Sie sich mit Azure CLI anmelden, erhält Azure CLI ein OAuth-Token, das AzCopy zum Autorisieren von Vorgängen verwendet.

Um AzCopy für die Verwendung dieses Tokens zu aktivieren, geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE .

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI
export AZCOPY_TENANT_ID=<tenant-id>

Weitere Informationen zum Anmelden mithilfe der Azure CLI finden Sie unter Anmelden bei Azure mit einer verwalteten Identität mithilfe der Azure CLI.

Autorisieren mit Azure PowerShell

Wenn Sie sich mit Azure PowerShell anmelden, ruft Azure PowerShell ein OAuth-Token ab, das AzCopy zum Autorisieren von Vorgängen verwenden kann.

Um AzCopy für die Verwendung dieses Tokens zu aktivieren, geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE .

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"
$Env:AZCOPY_TENANT_ID="<tenant-id>"

Weitere Informationen zum Anmelden mithilfe von Azure PowerShell finden Sie unter Anmelden mit einer verwalteten Identität.

Nächste Schritte

  • Weitere Informationen zu AzCopy finden Sie unter "Erste Schritte mit AzCopy".

  • Wenn Sie Fragen haben, Probleme auftreten oder allgemeines Feedback haben, übermitteln Sie sie auf GitHub.