Udostępnij za pośrednictwem


Kolejki obiektów blob do pozyskiwania przy użyciu uwierzytelniania tożsamości zarządzanej

Podczas kolejkowania obiektów blob do pozyskiwania z własnych kont magazynu można użyć tożsamości zarządzanych jako alternatywy dla tokenów sygnatury dostępu współdzielonego (SAS) i metod uwierzytelniania kluczy udostępnionych. Tożsamości zarządzane to bezpieczniejszy sposób pozyskiwania danych, ponieważ nie wymagają udostępniania tokenów SAS klienta ani kluczy udostępnionych usłudze. Zamiast tego tożsamość zarządzana jest przypisywana do klastra i otrzymuje uprawnienia do odczytu dla konta magazynu używanego do pozyskiwania danych. Te uprawnienia można odwołać w dowolnym momencie.

Uwaga

  • Ta metoda uwierzytelniania dotyczy tylko obiektów blob platformy Azure i plików usługi Azure Data Lake znajdujących się na kontach magazynu należących do klienta. Nie ma ona zastosowania do plików lokalnych przekazanych przy użyciu zestawu Sdk usługi Kusto.
  • Obsługiwane jest tylko pozyskiwanie w kolejce. Pozyskiwanie wbudowane w język zapytań Kusto i bezpośrednie pozyskiwanie przy użyciu interfejsów API zestawu SDK nie jest obsługiwane.

Przypisywanie tożsamości zarządzanej do klastra

Postępuj zgodnie z omówieniem tożsamości zarządzanych, aby dodać tożsamość zarządzaną przypisaną przez użytkownika lub systemową do klastra. Jeśli klaster ma już przypisaną żądaną tożsamość zarządzaną, skopiuj jego identyfikator obiektu, wykonując następujące kroki:

  1. Zaloguj się do witryny Azure Portal przy użyciu konta skojarzonego z subskrypcją platformy Azure, która zawiera klaster.

  2. Przejdź do klastra i wybierz pozycję Tożsamość.

  3. Wybierz odpowiedni typ tożsamości, system lub przypisany przez użytkownika, a następnie skopiuj identyfikator obiektu wymaganej tożsamości.

Zrzut ekranu przedstawiający stronę przeglądu z widocznym obiektem tożsamości zarządzanej systemu

Udzielanie uprawnień tożsamości zarządzanej

  1. W witrynie Azure Portal przejdź do konta magazynu zawierającego dane, które chcesz pozyskać.

  2. Wybierz pozycję Kontrola dostępu, a następnie wybierz pozycję + Dodaj>przypisanie roli.

  3. Udziel tożsamości zarządzanej czytelnikowi danych obiektu blob usługi Storage lub współautorowi danych obiektu blob usługi Storage, jeśli zamierzasz użyć opcji źródła DeleteSourceOnSuccess , uprawnienia do konta magazynu.

Ważne

Udzielanie uprawnień właściciela lub współautora nie jest wystarczające i spowoduje niepowodzenie pozyskiwania.

Zrzut ekranu przedstawiający stronę dodawania przypisania roli z przypisaną przez system rolą do pozyskiwania przy użyciu tożsamości zarządzanych

Ustawianie zasad tożsamości zarządzanej w usłudze Azure Data Explorer

Aby użyć tożsamości zarządzanej do pozyskiwania danych do klastra, zezwól na NativeIngestion użycie wybranej tożsamości zarządzanej. Pozyskiwanie natywne odnosi się do możliwości używania zestawu SDK do pozyskiwania danych ze źródła zewnętrznego. Aby uzyskać więcej informacji na temat dostępnych zestawów SDK, zobacz Biblioteki klienckie.

Zasady tożsamości zarządzanej użycia można zdefiniować na poziomie klastra lub bazy danych klastra docelowego.

Aby zastosować zasady na poziomie bazy danych, uruchom następujące polecenie:

.alter-merge database <database name> policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Aby zastosować zasady na poziomie klastra, uruchom następujące polecenie:

.alter-merge cluster policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Zastąp <managed_identity_id> element identyfikatorem obiektu wymaganej tożsamości zarządzanej.

Uwaga

Aby edytować zasady tożsamości zarządzanej, musisz mieć All Database Admin uprawnienie do klastra.

Kolejki obiektów blob do pozyskiwania przy użyciu tożsamości zarządzanej przy użyciu zestawu Kusto SDK

Podczas pozyskiwania danych przy użyciu zestawu Kusto SDK wygeneruj identyfikator URI obiektu blob przy użyciu uwierzytelniania tożsamości zarządzanej, dołączając ;managed_identity={objectId} do nieautoryzowanego identyfikatora URI obiektu blob. W przypadku pozyskiwania danych przy użyciu przypisanej przez system tożsamości zarządzanej klastra można dołączyć ;managed_identity=system do identyfikatora URI obiektu blob.

Ważne

Należy użyć klienta pozyskiwania w kolejce. Używanie tożsamości zarządzanych z bezpośrednim pozyskiwaniem lub pozyskiwaniem wbudowanym w język zapytań Kusto nie są obsługiwane.

Poniżej przedstawiono przykłady identyfikatorów URI obiektów blob dla tożsamości zarządzanych przypisanych przez system i użytkownika.

  • Przypisano system: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=system
  • Przypisany użytkownik: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=6a5820b9-fdf6-4cc4-81b9-b416b444fd6d

Ważne

  • W przypadku używania tożsamości zarządzanych do pozyskiwania danych za pomocą zestawu SDK języka C# należy podać rozmiar obiektu blob w pliku StorageSourceOptions. Jeśli rozmiar nie zostanie ustawiony, zestaw SDK podejmie próbę wypełnienia rozmiaru obiektu blob przez uzyskanie dostępu do konta magazynu, co spowoduje niepowodzenie.
  • Parametr rozmiaru powinien być nieprzetworzonym (nieskompresowanym) rozmiarem danych, a nie rozmiarem obiektu blob.
  • Jeśli nie znasz rozmiaru w momencie pozyskiwania, określ wartość zero (0). Usługa podejmie próbę odnalezienia rozmiaru przy użyciu tożsamości zarządzanej na potrzeby uwierzytelniania.