Udostępnij przez


Migrowanie do szczegółowego dostępu opartego na rolach w przypadku konfiguracji klastrów

Wprowadzamy pewne ważne zmiany w celu zapewnienia bardziej szczegółowego dostępu opartego na rolach w celu uzyskania poufnych informacji. W ramach tych zmian niektóre działania mogą być wymagane do 3 września 2019 r., jeśli używasz jednej z dotkniętych jednostek/scenariuszy.

Co się zmienia?

Wcześniej wpisy tajne można było uzyskać za pośrednictwem interfejsu API usługi HDInsight przez użytkowników klastra posiadających role Właściciela, Współautora lub Czytelnika platformy Azure, ponieważ były one dostępne dla każdego posiadacza tych uprawnień. Tajne wartości są definiowane jako takie, które mogą być użyte do uzyskania wyższego poziomu dostępu, niż na jaki powinna pozwalać rola użytkownika, takie jak poświadczenia HTTP bramy klastra, klucze konta magazynu i poświadczenia bazy danych.

Od 3 września 2019 r. uzyskanie dostępu do tych tajemnic będzie wymagało uprawnień Microsoft.HDInsight/clusters/configurations/action, a użytkownik z rolą Czytelnik nie będzie mógł uzyskać do nich dostępu. Role, które mają te uprawnienia, to Współautor, Właściciel i nowa rola Operatora klastra usługi HDInsight.

Wprowadzamy również nową rolę operatora klastra HDInsight, która umożliwia pobieranie sekretów bez nadawania uprawnień administracyjnych współautora lub właściciela. Podsumowanie:

Rola Poprzednio Działania naprzód
Czytelnik — Dostęp do odczytu, w tym wpisy tajne. - Dostęp do odczytu, z wyłączeniem wpisów tajnych
Operator klastra usługi HDInsight
(Nowa rola)
N/A - Dostęp do odczytu/zapisu, w tym dane poufne
Współpracownik - Dostęp do odczytu/zapisu, w tym sekrety.
— Tworzenie wszystkich typów zasobów platformy Azure i zarządzanie nimi.
- Wykonaj akcje skryptu.
Bez zmian
Właściciel - Dostęp do odczytu/zapisu, w tym tajne informacje.
- Pełny dostęp do wszystkich zasobów
— Delegowanie dostępu innym osobom.
- Wykonaj akcje skryptu.
Bez zmian

Aby uzyskać informacje na temat dodawania przypisania roli operatora klastra HDInsight do użytkownika w celu udzielenia mu dostępu do odczytu/zapisu do sekretów klastra, zobacz Dodawanie przypisania roli operatora klastra HDInsight do użytkownika.

Dowiedz się, czy dotyczy to jednostek lub scenariuszy

Dotyczy to następujących jednostek i scenariuszy:

API

Następujące interfejsy API są zmieniane lub przestarzałe:

  • GET /configurations/{configurationName} (usunięte informacje poufne)
    • Wcześniej używane do uzyskiwania indywidualnych typów konfiguracji (w tym tajnych danych).
    • Od 3 września 2019 r. to wywołanie interfejsu API teraz zwraca poszczególne typy konfiguracji z pominięciem danych poufnych. Aby uzyskać wszystkie konfiguracje, w tym tajne dane, użyj nowego wywołania POST /configurations. Aby uzyskać tylko ustawienia bramy, użyj nowego wywołania POST /getGatewaySettings.
  • GET /configurations (przestarzałe)
    • Wcześniej używane do uzyskiwania wszystkich konfiguracji (w tym tajnych danych)
    • Od 3 września 2019 r. to wywołanie interfejsu API jest przestarzałe i nie jest już obsługiwane. Aby uzyskać wszystkie konfiguracje w przyszłości, użyj nowego wywołania POST /configurations. Aby uzyskać konfiguracje z pominiętymi poufnymi parametrami, użyj wywołania GET /configurations/{configurationName}.
  • POST /configurations/{configurationName} (przestarzałe)
    • Wcześniej służyło do aktualizowania poświadczeń bramy.
    • Od 3 września 2019 r. to wywołanie interfejsu API jest przestarzałe i nie jest już obsługiwane. Zamiast tego użyj nowego polecenia POST /updateGatewaySettings.

Dodano następujące zastępcze interfejsy API:

Narzędzia usługi Azure HDInsight dla programu Visual Studio Code

Jeśli używasz wersji 1.1.1 lub nowszej, zaktualizuj program Azure HDInsight Tools for Visual Studio Code do najnowszej wersji , aby uniknąć przerw.

Azure Toolkit for IntelliJ

Jeśli używasz wersji 3.20.0 lub nowszej, zaktualizuj do najnowszej wersji wtyczki Azure Toolkit for IntelliJ , aby uniknąć przerw.

Narzędzia Azure Data Lake i Analizy Strumieniowej dla Visual Studio

Przeprowadź aktualizację do wersji 2.3.9000.1 lub nowszej narzędzi Azure Data Lake i Stream Analytics Tools for Visual Studio , aby uniknąć przerw. Aby uzyskać pomoc dotyczącą aktualizowania, zobacz naszą dokumentację Update Data Lake Tools for Visual Studio.

Azure Toolkit for Eclipse

Jeśli używasz wersji 3.15.0 lub nowszej, zaktualizuj zestaw narzędzi Azure Toolkit for Eclipse do najnowszej wersji , aby uniknąć przerw.

Zestaw SDK środowiska .NET

Wersje 1.x i 2.x

Aktualizacja do wersji 2.1.0 zestawu SDK usługi HDInsight dla platformy .NET. W przypadku używania metody objętej tymi zmianami może być wymagana minimalna modyfikacja kodu:

  • ClusterOperationsExtensions.GetClusterConfigurations Nie zwraca już poufnych parametrów, takich jak klucze przechowywania (core-site) lub poświadczenia HTTP (brama).

    • Aby pobrać wszystkie konfiguracje, w tym parametry poufne, stosuj ClusterOperationsExtensions.ListConfigurations od tej pory. Użytkownicy z rolą "Czytelnik" nie mogą używać tej metody. Umożliwia ona szczegółową kontrolę nad tym, którzy użytkownicy mogą uzyskiwać dostęp do poufnych informacji dla klastra.
    • Aby pobrać tylko poświadczenia bramy HTTP, użyj polecenia ClusterOperationsExtensions.GetGatewaySettings.
  • ClusterOperationsExtensions.GetConnectivitySettings jest przestarzały i zastępowany przez ClusterOperationsExtensions.GetGatewaySettings.

  • ClusterOperationsExtensions.ConfigureHttpSettings jest przestarzały i zastępowany przez ClusterOperationsExtensions.UpdateGatewaySettings.

  • ConfigurationsOperationsExtensions.EnableHttp i DisableHttp są przestarzałe. Protokół HTTP jest zawsze włączony, więc te metody nie są już potrzebne.

Wersje 3.x i nowsze

Przeprowadź aktualizację do wersji 5.0.0 lub nowszej zestawu SDK usługi HDInsight dla platformy .NET. W przypadku używania metody objętej tymi zmianami może być wymagana minimalna modyfikacja kodu:

Zestaw SDK dla środowiska Python

Przeprowadź aktualizację do wersji 1.0.0 lub nowszej zestawu SDK usługi HDInsight dla języka Python. W przypadku używania metody objętej tymi zmianami może być wymagana minimalna modyfikacja kodu:

Zestaw SDK dla języka Java

Przeprowadź aktualizację do wersji 1.0.0 lub nowszej zestawu SDK usługi HDInsight dla języka Java. W przypadku używania metody objętej tymi zmianami może być wymagana minimalna modyfikacja kodu:

  • ConfigurationsInner.get Nie zwraca już poufnych parametrów , takich jak klucze magazynu (core-site) lub poświadczenia HTTP (brama).
  • ConfigurationsInner.update jest przestarzałe.

Zestaw SDK dla języka Go

Przeprowadź aktualizację do wersji 27.1.0 lub nowszej zestawu SDK usługi HDInsight dla języka Go. W przypadku używania metody objętej tymi zmianami może być wymagana minimalna modyfikacja kodu:

Az.HDInsight PowerShell

Przeprowadź aktualizację do modułu Az programu PowerShell w wersji 2.0.0 lub nowszej, aby uniknąć przerw w działaniu. W przypadku używania metody objętej tymi zmianami może być wymagana minimalna modyfikacja kodu.

  • Grant-AzHDInsightHttpServicesAccess jest przestarzały i zastępowany przez nowe Set-AzHDInsightGatewayCredential polecenie cmdlet.
  • Get-AzHDInsightJobOutput został zaktualizowany w celu zapewnienia szczegółowego dostępu opartego na rolach do klucza magazynu.
    • Nie ma to wpływu na użytkowników z rolami operatora klastra usługi HDInsight, współautora lub właściciela.
    • Użytkownicy jedynie z rolą Czytelnik muszą jawnie określić parametr DefaultStorageAccountKey.
  • Revoke-AzHDInsightHttpServicesAccess jest przestarzałe. Protokół HTTP jest zawsze włączony, więc to polecenie cmdlet nie jest już potrzebne. Zobacz Przewodnik migracji az.HDInsight, aby uzyskać więcej informacji.

Przypisz rolę Operatora klastra HDInsight użytkownikowi

Użytkownik z rolą Właściciel może przyznać rolę Operator klastra usługi HDInsight użytkownikom, którym chcesz nadać dostęp do odczytu/zapisu do poufnych wartości konfiguracji klastra usługi HDInsight (takich jak poświadczenia bramy klastra i klucze konta magazynu).

Korzystanie z Azure CLI

Najprostszym sposobem dodania tego przypisania roli jest użycie polecenia w Azure CLI az role assignment create.

Uwaga

To polecenie musi być uruchamiane przez użytkownika z rolą Właściciel, ponieważ tylko te uprawnienia mogą zostać przyznane. --assignee to nazwa jednostki usługi lub adres e-mail użytkownika, któremu chcesz przypisać rolę Operatora Klastra HDInsight. Jeśli wystąpi błąd dotyczący niewystarczających uprawnień, zobacz FAQ.

Przyznanie roli na poziomie zasobu (klaster)

az role assignment create --role "HDInsight Cluster Operator" --assignee <user@domain.com> --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HDInsight/clusters/<ClusterName>

Przydzielić rolę na poziomie grupy zasobów

az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com -g <ResourceGroupName>

Nadaj rolę na poziomie subskrypcji

az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com

Korzystanie z witryny Azure Portal

Możesz również użyć portalu Azure, aby dodać przypisanie roli Operator klastra HDInsight do użytkownika. Zapoznaj się z dokumentacją Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

Często zadawane pytania

Dlaczego widzę odpowiedź 403 (Zabronione) po zaktualizowaniu żądań interfejsu API i/lub narzędzia?

Konfiguracje klastra są teraz za kontrolą dostępu opartą na rolach z poziomami szczegółowymi i wymagają uprawnienia Microsoft.HDInsight/clusters/configurations/* do uzyskania dostępu do nich. Aby uzyskać te uprawnienia, przypisz rolę Operatora klastra HDInsight, Współautora lub Właściciela do użytkownika lub jednostki usługi próbującej uzyskać dostęp do konfiguracji.

Dlaczego widzę komunikat "Niewystarczające uprawnienia do ukończenia operacji" podczas uruchamiania polecenia interfejsu wiersza polecenia platformy Azure w celu przypisania roli operatora klastra usługi HDInsight do innego użytkownika lub jednostki usługi?

Oprócz posiadania roli Właściciela, użytkownik lub jednostka usługi wykonująca polecenie musi mieć wystarczające uprawnienia usługi Microsoft Entra, aby wyszukać identyfikatory obiektów przypisanych. Ten komunikat wskazuje niewystarczające uprawnienia firmy Microsoft Entra. Spróbuj zastąpić argument -–assignee wartością –assignee-object-id i podać identyfikator obiektu przypisanego jako parametr zamiast nazwy (lub identyfikator użytkownika w przypadku tożsamości zarządzanej). Aby uzyskać więcej informacji, zajrzyj do sekcji parametrów opcjonalnych w dokumentacji az role assignment create.

Jeśli nadal nie działa, skontaktuj się z administratorem firmy Microsoft Entra, aby uzyskać odpowiednie uprawnienia.

Co się stanie, jeśli nie podejmę żadnych działań?

Od 3 września 2019 wywołania GET /configurations i POST /configurations/gateway nie zwracają już żadnych informacji, a wywołanie GET /configurations/{configurationName} nie zwraca już poufnych parametrów, takich jak klucze konta magazynowego lub hasło klastra. To samo dotyczy odpowiednich metod zestawu SDK i poleceń cmdlet programu PowerShell.

Jeśli używasz starszej wersji jednego z narzędzi programu Visual Studio, VS Code, IntelliJ lub Eclipse, nie będzie już działać, dopóki nie zostanie zaktualizowana.

Aby uzyskać bardziej szczegółowe informacje, zobacz odpowiednią sekcję tego dokumentu dla danego scenariusza.