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: użytkownicy korzystający z
/configurations
punktów końcowych lub/configurations/{configurationName}
. - Narzędzia Azure HDInsight Tools for Visual Studio Code w wersji 1.1.1 lub starszej.
- Zestaw narzędzi platformy Azure dla środowiska IntelliJ w wersji 3.20.0 lub starszej.
- Azure Data Lake i Stream Analytics Tools for Visual Studio w wersji 2.3.9000.1.
- Azure Toolkit for Eclipse w wersji 3.15.0 lub nowszej.
- Zestaw SDK dla platformy .NET
- wersje 1.x lub 2.x: użytkownicy korzystający z
GetClusterConfigurations
metod ,GetConnectivitySettings
,ConfigureHttpSettings
EnableHttp
lubDisableHttp
z klasy ConfigurationsOperationsExtensions. - wersje 3.x i nowsze: użytkownicy korzystający z
Get
metod ,Update
,EnableHttp
lubDisableHttp
zConfigurationsOperationsExtensions
klasy .
- wersje 1.x lub 2.x: użytkownicy korzystający z
- Zestaw SDK dla języka Python: użytkownicy korzystający z
get
metod lubupdate
zConfigurationsOperations
klasy . - Zestaw SDK dla języka Java: użytkownicy korzystający z
update
metod lubget
zConfigurationsInner
klasy . - Zestaw SDK dla języka Go: użytkownicy korzystający z
Get
metod lubUpdate
zConfigurationsClient
struktury . - Az.HDInsight PowerShell w wersji 2.0.0. Procedurę migracji dla danego scenariusza można znaleźć w poniższych sekcjach (lub za pomocą powyższych linków).
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:
- POST /configurations
- Użyj tego interfejsu API, aby uzyskać wszystkie konfiguracje, w tym wpisy tajne.
- POST /getGateway Ustawienia
- Użyj tego interfejsu API, aby uzyskać ustawienia bramy.
- POST /updateGateway Ustawienia
- Użyj tego interfejsu API, aby zaktualizować ustawienia bramy (nazwa użytkownika i/lub hasło).
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
.
- Aby pobrać wszystkie konfiguracje, w tym parametry poufne, użyj
ClusterOperationsExtensions.GetConnectivitySettings
jest teraz przestarzały i został zastąpiony przezClusterOperationsExtensions.GetGatewaySettings
.ClusterOperationsExtensions.ConfigureHttpSettings
jest teraz przestarzały i został zastąpiony przezClusterOperationsExtensions.UpdateGatewaySettings
.ConfigurationsOperationsExtensions.EnableHttp
iDisableHttp
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:
ConfigurationOperationsExtensions.Get
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
ConfigurationOperationsExtensions.List
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
.
- Aby pobrać wszystkie konfiguracje, w tym parametry poufne, użyj
ConfigurationsOperationsExtensions.Update
jest teraz przestarzały i został zastąpiony przezClusterOperationsExtensions.UpdateGatewaySettings
.ConfigurationsOperationsExtensions.EnableHttp
iDisableHttp
są teraz przestarzałe. Protokół HTTP jest teraz zawsze włączony, więc te metody nie są już potrzebne.
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:
ConfigurationsOperations.get
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
ConfigurationsOperations.list
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
ClusterOperations.get_gateway_settings
.
- Aby pobrać wszystkie konfiguracje, w tym parametry poufne, użyj
ConfigurationsOperations.update
jest teraz przestarzały i został zastąpiony przezClusterOperations.update_gateway_settings
.
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:
ConfigurationsClient.get
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
ConfigurationsClient.list
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
ClustersClient.get_gateway_settings
.
- Aby pobrać wszystkie konfiguracje, w tym parametry poufne, użyj
ConfigurationsClient.update
jest teraz przestarzały i został zastąpiony przezClustersClient.update_gateway_settings
.
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 noweSet-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 /configurations
POST /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.