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 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 dostępne dla wszystkich użytkowników z */read uprawnieniami. Wpisy tajne są definiowane jako wartości, które mogą służyć do uzyskania większego poziomu dostępu niż rola użytkownika powinna być dozwolona. Obejmują one wartości, 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 wpisów tajnych będzie wymagało Microsoft.HDInsight/clusters/configurations/action uprawnień, a użytkownik nie może uzyskać do niego dostępu z rolą Czytelnik. 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 usługi HDInsight, która umożliwia pobieranie wpisów tajnych bez udzielenia uprawnień administracyjnych współautora lub właściciela. Podsumowując:

Rola Wcześniej W przyszłości
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)
Nie dotyczy - Dostęp do odczytu/zapisu, w tym wpisy tajne
Współautor - Dostęp do odczytu/zapisu, w tym wpisy tajne.
— 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 wpisów tajnych.
- Pełny dostęp do wszystkich zasobów
— Delegowanie dostępu do innych osób.
- Wykonaj akcje skryptu.
Bez zmian

Aby uzyskać informacje na temat dodawania przypisania roli operator klastra usługi HDInsight do użytkownika w celu udzielenia im dostępu do odczytu/zapisu do wpisów tajnych klastra, zobacz poniższą sekcję Dodawanie przypisania roli Operator klastra usługi HDInsight do użytkownika.

Czy mam wpływ na te zmiany?

Dotyczy to następujących jednostek i scenariuszy:

Interfejs API

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

  • GET /configurations/{configurationName} (usunięte informacje poufne)
    • Wcześniej używane do uzyskiwania poszczególnych typów konfiguracji (w tym wpisów tajnych).
    • Od 3 września 2019 r. to wywołanie interfejsu API zwróci teraz poszczególne typy konfiguracji z pominiętymi wpisami tajnymi. Aby uzyskać wszystkie konfiguracje, w tym wpisy tajne, użyj nowego wywołania POST /configurations. Aby uzyskać tylko ustawienia bramy, użyj nowego wywołania POST /getGateway Ustawienia.
  • GET /configurations (przestarzałe)
    • Wcześniej używane do uzyskiwania wszystkich konfiguracji (w tym wpisów tajnych)
    • Od 3 września 2019 r. to wywołanie interfejsu API zostanie wycofane i nie będzie 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 używane do aktualizowania poświadczeń bramy.
    • Od 3 września 2019 r. to wywołanie interfejsu API zostanie wycofane i nie będzie już obsługiwane. Zamiast tego użyj nowego adresu POST /updateGateway Ustawienia.

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

Azure HDInsight Tools for 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.

Azure Data Lake i Stream Analytics Tools for 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 dla platformy .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 będą już zwracać poufnych parametrów , takich jak klucze magazynu (core-site) lub poświadczenia HTTP (brama).

    • Aby pobrać wszystkie konfiguracje, w tym parametry poufne, użyj ClusterOperationsExtensions.ListConfigurations polecenia w przyszłości. 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 teraz przestarzały i został zastąpiony przez ClusterOperationsExtensions.GetGatewaySettings.

  • ClusterOperationsExtensions.ConfigureHttpSettings jest teraz przestarzały i został zastąpiony przez ClusterOperationsExtensions.UpdateGatewaySettings.

  • ConfigurationsOperationsExtensions.EnableHttp i DisableHttp są teraz przestarzałe. Protokół HTTP jest teraz 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 będą już zwracać poufnych parametrów , takich jak klucze magazynu (core-site) lub poświadczenia HTTP (brama).
  • ConfigurationsInner.update jest teraz przestarzały.

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 teraz przestarzały i został zastąpiony 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 z rolą Czytelnik muszą jawnie określić DefaultStorageAccountKey parametr.
  • Revoke-AzHDInsightHttpServicesAccess jest teraz przestarzały. Protokół HTTP jest teraz zawsze włączony, więc to polecenie cmdlet nie jest już potrzebne. Zobacz az . Aby uzyskać więcej informacji, zobacz Przewodnik migracji usługi HDInsight.

Dodawanie przypisania roli Operator klastra usługi HDInsight do użytkownika

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

Przy użyciu interfejsu wiersza polecenia platformy Azure

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

Uwaga

To polecenie musi być uruchamiane przez użytkownika z rolą Właściciel, ponieważ tylko te uprawnienia mogą zostać przyznane. Jest --assignee to nazwa jednostki usługi lub adresu e-mail użytkownika, któremu chcesz przypisać rolę operatora klastra usługi HDInsight. Jeśli wystąpi błąd niewystarczające uprawnienia, zobacz często zadawane pytania.

Udzielanie roli na poziomie zasobu (klastra)

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

Udzielanie roli na poziomie grupy zasobów

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

Udzielanie roli 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ć witryny Azure Portal, aby dodać przypisanie roli Operator klastra usługi 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 szczegółową kontrolą dostępu opartą Microsoft.HDInsight/clusters/configurations/* na rolach i wymagają uprawnień dostępu do nich. Aby uzyskać to uprawnienie, przypisz rolę Operator klastra usługi HDInsight, Współautor lub Właściciel 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ściciel użytkownik lub jednostka usługi wykonująca polecenie musi mieć wystarczające uprawnienia firmy Microsoft Entra, aby wyszukać identyfikatory obiektów przypisanego. Ten komunikat wskazuje niewystarczające uprawnienia firmy Microsoft Entra. Spróbuj zastąpić -–assignee argument wartością –assignee-object-id i podać identyfikator obiektu osoby przypisanej jako parametr zamiast nazwy (lub identyfikator podmiotu zabezpieczeń w przypadku tożsamości zarządzanej). Aby uzyskać więcej informacji, zobacz sekcję 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 GET /configurationsPOST /configurations/gateway r. wywołania nie będą już zwracać żadnych informacji, a GET /configurations/{configurationName} wywołanie nie zwróci już parametrów poufnych, takich jak klucze konta magazynu 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, VSCode, IntelliJ lub Eclipse, nie będzie już działać do czasu zaktualizowania.

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