Autoryzowanie dostępu do obiektów blob i plików za pomocą narzędzia AzCopy i identyfikatora Entra firmy Microsoft
Narzędzie AzCopy można podać przy użyciu poświadczeń autoryzacji przy użyciu identyfikatora Entra firmy Microsoft. W ten sposób nie trzeba dołączać tokenu sygnatury dostępu współdzielonego (SAS) do każdego polecenia.
Zacznij od zweryfikowania przypisań ról. Następnie wybierz typ podmiotu zabezpieczeń, który chcesz autoryzować. Tożsamość użytkownika, tożsamość zarządzana i jednostka usługi to każdy typ podmiotu zabezpieczeń.
Aby autoryzować dostęp, należy ustawić zmienne środowiskowe w pamięci. Następnie uruchom dowolne polecenie narzędzia AzCopy. Narzędzie AzCopy pobierze token uwierzytelniania wymagany do ukończenia operacji. Po zakończeniu operacji token zniknie z pamięci.
Narzędzie AzCopy pobiera token OAuth przy użyciu poświadczeń, które podajesz. Alternatywnie narzędzie AzCopy może używać tokenu OAuth aktywnego interfejsu wiersza polecenia platformy Azure lub sesji programu Azure PowerShell.
Aby uzyskać więcej informacji na temat narzędzia AzCopy, rozpocznij pracę z narzędziem AzCopy.
Weryfikowanie przypisań ról
Potrzebny poziom autoryzacji zależy od tego, czy planujesz przekazać pliki, czy po prostu je pobrać.
Jeśli chcesz pobrać pliki, sprawdź, czy rola Czytelnik danych obiektu blob usługi Storage (Azure Blob Storage) lub rola czytelnika danych plików magazynu (Azure Files) została przypisana do tożsamości użytkownika, tożsamości zarządzanej lub jednostki usługi.
Jeśli chcesz przekazać pliki do usługi Azure Blob Storage, sprawdź, czy do podmiotu zabezpieczeń przypisano jedną z tych ról.
Jeśli chcesz przekazać pliki do udziału plików platformy Azure, sprawdź, czy uprzywilejowany czytelnik danych plików magazynu został przypisany do podmiotu zabezpieczeń.
Te role można przypisać do podmiotu zabezpieczeń w dowolnym z następujących zakresów:
- Kontener (system plików) lub udział plików
- Konto magazynu
- Grupa zasobów
- Subskrypcja
Aby dowiedzieć się, jak weryfikować i przypisywać role, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów blob (Blob Storage) lub Wybieranie sposobu autoryzowania dostępu do danych plików w witrynie Azure Portal (Azure Files).
Uwaga
Należy pamiętać, że propagacja przypisań ról platformy Azure może potrwać do pięciu minut.
Nie musisz mieć jednej z tych ról przypisanych do podmiotu zabezpieczeń, jeśli podmiot zabezpieczeń zostanie dodany do listy kontroli dostępu (ACL) kontenera docelowego lub katalogu. Na liście ACL podmiot zabezpieczeń musi mieć uprawnienia do zapisu w katalogu docelowym i wykonać uprawnienie do kontenera i każdego katalogu nadrzędnego.
Aby dowiedzieć się więcej, zobacz Model kontroli dostępu w usłudze Azure Data Lake Storage.
Autoryzowanie za pomocą narzędzia AzCopy
Narzędzie AzCopy używa poświadczeń, które podajesz, aby autoryzować podmiot zabezpieczeń.
Autoryzowanie tożsamości użytkownika
Po sprawdzeniu, czy tożsamość użytkownika została podana na wymaganym poziomie autoryzacji, wpisz następujące polecenie, a następnie naciśnij ENTER.
export AZCOPY_AUTO_LOGIN_TYPE=DEVICE
Następnie uruchom dowolne polecenie azcopy (na przykład: azcopy list https://contoso.blob.core.windows.net
).
To polecenie zwraca kod uwierzytelniania i adres URL witryny internetowej. Otwórz witrynę internetową, podaj kod, a następnie wybierz przycisk Dalej .
Zostanie wyświetlone okno logowania. W tym oknie zaloguj się do konta platformy Azure przy użyciu poświadczeń konta platformy Azure. Po pomyślnym zalogowaniu można ukończyć operację.
Autoryzacja tożsamości zarządzanej
Jest to świetna opcja, jeśli planujesz użyć narzędzia AzCopy wewnątrz skryptu, który działa bez interakcji użytkownika, a skrypt jest uruchamiany z maszyny wirtualnej platformy Azure. W przypadku korzystania z tej opcji nie trzeba przechowywać żadnych poświadczeń na maszynie wirtualnej.
Możesz zalogować się do konta przy użyciu tożsamości zarządzanej dla całej systemu włączonej na maszynie wirtualnej lub przy użyciu identyfikatora klienta, identyfikatora obiektu lub identyfikatora zasobu tożsamości zarządzanej przypisanej przez użytkownika przypisanej do maszyny wirtualnej.
Aby dowiedzieć się więcej na temat włączania tożsamości zarządzanej w całym systemie lub tworzenia tożsamości zarządzanej przypisanej przez użytkownika, zobacz Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej przy użyciu witryny Azure Portal.
Autoryzowanie przy użyciu tożsamości zarządzanej w całym systemie
Najpierw upewnij się, że na maszynie wirtualnej włączono tożsamość zarządzaną dla całego systemu. Zobacz Tożsamość zarządzana przypisana przez system.
Wpisz następujące polecenie, a następnie naciśnij ENTER.
export AZCOPY_AUTO_LOGIN_TYPE=MSI
Następnie uruchom dowolne polecenie azcopy (na przykład: azcopy list https://contoso.blob.core.windows.net
).
Autoryzowanie przy użyciu tożsamości zarządzanej przypisanej przez użytkownika
Najpierw upewnij się, że włączono tożsamość zarządzaną przypisaną przez użytkownika na maszynie wirtualnej. Zobacz Tożsamość zarządzana przypisana przez użytkownika.
Wpisz następujące polecenie, a następnie naciśnij ENTER.
export AZCOPY_AUTO_LOGIN_TYPE=MSI
Następnie wpisz dowolne z poniższych poleceń, a następnie naciśnij ENTER.
export AZCOPY_MSI_CLIENT_ID=<client-id>
<client-id>
Zastąp symbol zastępczy identyfikatorem klienta tożsamości zarządzanej przypisanej przez użytkownika.
export AZCOPY_MSI_OBJECT_ID=<object-id>
Zastąp <object-id>
symbol zastępczy identyfikatorem obiektu tożsamości zarządzanej przypisanej przez użytkownika.
export AZCOPY_MSI_RESOURCE_STRING=<resource-id>
<resource-id>
Zastąp symbol zastępczy identyfikatorem zasobu tożsamości zarządzanej przypisanej przez użytkownika.
Po ustawieniu tych zmiennych można uruchomić dowolne polecenie azcopy (na przykład: azcopy list https://contoso.blob.core.windows.net
).
Autoryzowanie jednostki usługi
Jest to świetna opcja, jeśli planujesz użyć narzędzia AzCopy wewnątrz skryptu, który działa bez interakcji użytkownika, szczególnie w przypadku uruchamiania lokalnego. Jeśli planujesz uruchomić narzędzie AzCopy na maszynach wirtualnych uruchomionych na platformie Azure, łatwiej jest administrować tożsamością usługi zarządzanej. Aby dowiedzieć się więcej, zobacz sekcję Autoryzowanie tożsamości zarządzanej w tym artykule.
Możesz zalogować się do konta przy użyciu klucza tajnego klienta lub hasła certyfikatu skojarzonego z rejestracją aplikacji jednostki usługi.
Aby dowiedzieć się więcej na temat tworzenia jednostki usługi, zobacz How to: Use the portal to create a Microsoft Entra application and service principal that can access resources (Jak za pomocą portalu utworzyć aplikację Firmy Microsoft Entra i jednostkę usługi, która może uzyskiwać dostęp do zasobów).
Aby dowiedzieć się więcej na temat ogólnych jednostek usługi, zobacz Application and service principal objects in Microsoft Entra ID (Obiekty aplikacji i jednostki usługi w usłudze Microsoft Entra ID)
Autoryzowanie jednostki usługi przy użyciu klucza tajnego klienta
Wpisz następujące polecenie, a następnie naciśnij 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>
<application-id>
Zastąp symbol zastępczy identyfikatorem aplikacji rejestracji aplikacji jednostki usługi. Zastąp <client-secret>
symbol zastępczy kluczem tajnym klienta. <tenant-id>
Zastąp symbol zastępczy identyfikatorem dzierżawy organizacji, do której należy konto magazynu. Aby znaleźć identyfikator dzierżawy, wybierz pozycję Właściwości > dzierżawy Identyfikator dzierżawy w witrynie Azure Portal.
Uwaga
Rozważ użycie monitu o zebranie hasła od użytkownika. Dzięki temu hasło nie będzie wyświetlane w historii poleceń.
Następnie uruchom dowolne polecenie azcopy (na przykład: azcopy list https://contoso.blob.core.windows.net
).
Autoryzowanie jednostki usługi przy użyciu certyfikatu
Jeśli wolisz używać własnych poświadczeń do autoryzacji, możesz przekazać certyfikat do rejestracji aplikacji, a następnie użyć tego certyfikatu do zalogowania.
Oprócz przekazania certyfikatu do rejestracji aplikacji musisz również mieć kopię certyfikatu zapisaną na maszynie lub maszynie wirtualnej, na której będzie uruchomione narzędzie AzCopy. Ta kopia certyfikatu powinna znajdować się w katalogu . PLIK PFX lub . Format PEM i musi zawierać klucz prywatny. Klucz prywatny powinien być chroniony hasłem. Jeśli używasz systemu Windows, a certyfikat istnieje tylko w magazynie certyfikatów, pamiętaj, aby wyeksportować ten certyfikat do pliku PFX (w tym klucza prywatnego). Aby uzyskać wskazówki, zobacz Export-PfxCertificate
Wpisz następujące polecenie, a następnie naciśnij 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>
<application-id>
Zastąp symbol zastępczy identyfikatorem aplikacji rejestracji aplikacji jednostki usługi. <path-to-certificate-file>
Zastąp symbol zastępczy względną lub w pełni kwalifikowaną ścieżką do pliku certyfikatu. Narzędzie AzCopy zapisuje ścieżkę do tego certyfikatu, ale nie zapisuje kopii certyfikatu, dlatego pamiętaj, aby zachować ten certyfikat na miejscu. Zastąp <certificate-password>
symbol zastępczy hasłem certyfikatu. <tenant-id>
Zastąp symbol zastępczy identyfikatorem dzierżawy organizacji, do której należy konto magazynu. Aby znaleźć identyfikator dzierżawy, wybierz pozycję Właściwości > dzierżawy Identyfikator dzierżawy w witrynie Azure Portal.
Uwaga
Rozważ użycie monitu o zebranie hasła od użytkownika. Dzięki temu hasło nie będzie wyświetlane w historii poleceń.
Następnie uruchom dowolne polecenie azcopy (na przykład: azcopy list https://contoso.blob.core.windows.net
).
Autoryzowanie przy użyciu polecenia logowania narzędzia AzCopy
Alternatywą dla używania zmiennych w pamięci jest autoryzowanie dostępu za pomocą polecenia azcopy login.
Polecenie azcopy login pobiera token OAuth, a następnie umieszcza ten token w magazynie wpisów tajnych w systemie. Jeśli system operacyjny nie ma magazynu wpisów tajnych, takiego jak tworzenie kluczy systemu Linux, polecenie azcopy login nie będzie działać, ponieważ nie ma gdzie umieścić tokenu.
Autoryzowanie tożsamości użytkownika (polecenie azcopy login)
Po zweryfikowaniu, że tożsamość użytkownika otrzymała niezbędny poziom autoryzacji, otwórz wiersz polecenia, wpisz następujące polecenie, a następnie naciśnij ENTER.
azcopy login
Jeśli wystąpi błąd, spróbuj uwzględnić identyfikator dzierżawy organizacji, do której należy konto magazynu.
azcopy login --tenant-id=<tenant-id>
<tenant-id>
Zastąp symbol zastępczy identyfikatorem dzierżawy organizacji, do której należy konto magazynu. Aby znaleźć identyfikator dzierżawy, wybierz pozycję Właściwości > dzierżawy Identyfikator dzierżawy w witrynie Azure Portal.
To polecenie zwraca kod uwierzytelniania i adres URL witryny internetowej. Otwórz witrynę internetową, podaj kod, a następnie wybierz przycisk Dalej .
Zostanie wyświetlone okno logowania. W tym oknie zaloguj się do konta platformy Azure przy użyciu poświadczeń konta platformy Azure. Po pomyślnym zalogowaniu można zamknąć okno przeglądarki i rozpocząć korzystanie z narzędzia AzCopy.
Autoryzowanie przy użyciu tożsamości zarządzanej dla całego systemu (polecenie azcopy login)
Najpierw upewnij się, że na maszynie wirtualnej włączono tożsamość zarządzaną dla całego systemu. Zobacz Tożsamość zarządzana przypisana przez system.
Następnie w konsoli poleceń wpisz następujące polecenie, a następnie naciśnij ENTER.
azcopy login --identity
Autoryzowanie przy użyciu tożsamości zarządzanej przypisanej przez użytkownika (polecenie azcopy login)
Najpierw upewnij się, że włączono tożsamość zarządzaną przypisaną przez użytkownika na maszynie wirtualnej. Zobacz Tożsamość zarządzana przypisana przez użytkownika.
Następnie w konsoli poleceń wpisz dowolne z poniższych poleceń, a następnie naciśnij ENTER.
azcopy login --identity --identity-client-id "<client-id>"
<client-id>
Zastąp symbol zastępczy identyfikatorem klienta tożsamości zarządzanej przypisanej przez użytkownika.
azcopy login --identity --identity-object-id "<object-id>"
Zastąp <object-id>
symbol zastępczy identyfikatorem obiektu tożsamości zarządzanej przypisanej przez użytkownika.
azcopy login --identity --identity-resource-id "<resource-id>"
<resource-id>
Zastąp symbol zastępczy identyfikatorem zasobu tożsamości zarządzanej przypisanej przez użytkownika.
Autoryzowanie jednostki usługi (polecenie azcopy login)
Przed uruchomieniem skryptu musisz zalogować się interaktywnie co najmniej raz, aby można było podać narzędzie AzCopy przy użyciu poświadczeń jednostki usługi. Te poświadczenia są przechowywane w zabezpieczonym i zaszyfrowanym pliku, dzięki czemu skrypt nie musi podawać tych poufnych informacji.
Możesz zalogować się do konta przy użyciu klucza tajnego klienta lub hasła certyfikatu skojarzonego z rejestracją aplikacji jednostki usługi.
Aby dowiedzieć się więcej na temat tworzenia jednostki usługi, zobacz How to: Use the portal to create a Microsoft Entra application and service principal that can access resources (Jak za pomocą portalu utworzyć aplikację Firmy Microsoft Entra i jednostkę usługi, która może uzyskiwać dostęp do zasobów).
Autoryzowanie jednostki usługi przy użyciu klucza tajnego klienta (polecenie azcopy login)
Zacznij od ustawienia zmiennej środowiskowej AZCOPY_SPA_CLIENT_SECRET
na klucz tajny klienta rejestracji aplikacji jednostki usługi.
Uwaga
Pamiętaj, aby ustawić tę wartość z wiersza polecenia, a nie w ustawieniach zmiennej środowiskowej systemu operacyjnego. W ten sposób wartość jest dostępna tylko dla bieżącej sesji.
W tym przykładzie pokazano, jak można to zrobić w programie PowerShell.
$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"
Uwaga
Rozważ użycie monitu, jak pokazano w tym przykładzie. Dzięki temu hasło nie będzie wyświetlane w historii poleceń konsoli.
Następnie wpisz następujące polecenie, a następnie naciśnij ENTER.
azcopy login --service-principal --application-id application-id --tenant-id=tenant-id
<application-id>
Zastąp symbol zastępczy identyfikatorem aplikacji rejestracji aplikacji jednostki usługi. <tenant-id>
Zastąp symbol zastępczy identyfikatorem dzierżawy organizacji, do której należy konto magazynu. Aby znaleźć identyfikator dzierżawy, wybierz pozycję Właściwości > dzierżawy Identyfikator dzierżawy w witrynie Azure Portal.
Autoryzowanie jednostki usługi przy użyciu certyfikatu (polecenie azcopy login)
Jeśli wolisz używać własnych poświadczeń do autoryzacji, możesz przekazać certyfikat do rejestracji aplikacji, a następnie użyć tego certyfikatu do zalogowania.
Oprócz przekazania certyfikatu do rejestracji aplikacji musisz również mieć kopię certyfikatu zapisaną na maszynie lub maszynie wirtualnej, na której będzie uruchomione narzędzie AzCopy. Ta kopia certyfikatu powinna znajdować się w katalogu . PLIK PFX lub . Format PEM i musi zawierać klucz prywatny. Klucz prywatny powinien być chroniony hasłem. Jeśli używasz systemu Windows, a certyfikat istnieje tylko w magazynie certyfikatów, pamiętaj, aby wyeksportować ten certyfikat do pliku PFX (w tym klucza prywatnego). Aby uzyskać wskazówki, zobacz Export-PfxCertificate
Następnie ustaw zmienną AZCOPY_SPA_CERT_PASSWORD
środowiskową na hasło certyfikatu.
Uwaga
Pamiętaj, aby ustawić tę wartość z wiersza polecenia, a nie w ustawieniach zmiennej środowiskowej systemu operacyjnego. W ten sposób wartość jest dostępna tylko dla bieżącej sesji.
W tym przykładzie pokazano, jak można wykonać to zadanie w programie PowerShell.
$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"
Następnie wpisz następujące polecenie, a następnie naciśnij ENTER.
azcopy login --service-principal --application-id application-id --certificate-path <path-to-certificate-file> --tenant-id=<tenant-id>
<application-id>
Zastąp symbol zastępczy identyfikatorem aplikacji rejestracji aplikacji jednostki usługi. <path-to-certificate-file>
Zastąp symbol zastępczy względną lub w pełni kwalifikowaną ścieżką do pliku certyfikatu. Narzędzie AzCopy zapisuje ścieżkę do tego certyfikatu, ale nie zapisuje kopii certyfikatu, dlatego pamiętaj, aby zachować ten certyfikat na miejscu. <tenant-id>
Zastąp symbol zastępczy identyfikatorem dzierżawy organizacji, do której należy konto magazynu. Aby znaleźć identyfikator dzierżawy, wybierz pozycję Właściwości > dzierżawy Identyfikator dzierżawy w witrynie Azure Portal.
Uwaga
Rozważ użycie monitu, jak pokazano w tym przykładzie. Dzięki temu hasło nie będzie wyświetlane w historii poleceń konsoli.
Autoryzowanie za pomocą interfejsu wiersza polecenia platformy Azure
Jeśli logujesz się przy użyciu interfejsu wiersza polecenia platformy Azure, interfejs wiersza polecenia platformy Azure uzyskuje token OAuth, którego narzędzie AzCopy może użyć do autoryzowania operacji.
Aby włączyć narzędzie AzCopy do używania tego tokenu, wpisz następujące polecenie, a następnie naciśnij ENTER.
export AZCOPY_AUTO_LOGIN_TYPE=AZCLI
Aby uzyskać więcej informacji na temat logowania się przy użyciu interfejsu wiersza polecenia platformy Azure, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Autoryzowanie za pomocą programu Azure PowerShell
Jeśli logujesz się przy użyciu programu Azure PowerShell, program Azure PowerShell uzyskuje token OAuth, którego narzędzie AzCopy może użyć do autoryzowania operacji.
Aby włączyć narzędzie AzCopy do używania tego tokenu, wpisz następujące polecenie, a następnie naciśnij ENTER.
$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"
Aby uzyskać więcej informacji na temat logowania się przy użyciu programu Azure PowerShell, zobacz Logowanie się przy użyciu programu Azure PowerShell.
Następne kroki
Aby uzyskać więcej informacji na temat narzędzia AzCopy, rozpoczynanie pracy z narzędziem AzCopy
Jeśli masz pytania, problemy lub ogólne opinie, prześlij je na stronie usługi GitHub .