Migrace na podrobné řízení přístupu na základě role pro konfigurace clusteru
Zavádíme několik důležitých změn, které podporují jemněji odstupňovaný přístup na základě role za účelem získání citlivých informací. V rámci těchto změn může být některá akce vyžadována do 3. září 2019 , pokud používáte některou z ovlivněných entit nebo scénářů.
Co se mění?
Dříve bylo možné tajné kódy získat prostřednictvím rozhraní HDInsight API tím, že uživatelé clusteru mají role Vlastník, Přispěvatel nebo Čtenář Azure, protože jsou k dispozici všem uživatelům s oprávněním*/read
. Tajné kódy jsou definovány jako hodnoty, které by bylo možné použít k získání vyššího přístupu, než by měla být povolena role uživatele. Patří mezi ně hodnoty, jako jsou přihlašovací údaje HTTP brány clusteru, klíče účtu úložiště a přihlašovací údaje databáze.
Od 3. září 2019 bude přístup k těmto tajným kódům vyžadovat Microsoft.HDInsight/clusters/configurations/action
oprávnění, uživatel k němu nebude mít přístup s rolí Čtenář. Role s tímto oprávněním jsou přispěvatel, vlastník a nová role operátora clusteru HDInsight.
Zavádíme také novou roli operátora clusteru HDInsight, která dokáže načíst tajné kódy bez udělení oprávnění správce přispěvatele nebo vlastníka. Shrnutí:
Role | Dříve | Do budoucna |
---|---|---|
Čtenář | - Přístup pro čtení, včetně tajných kódů. | - Přístup pro čtení, s výjimkou tajných kódů |
Operátor clusteru HDInsight (Nová role) |
– | - Přístup pro čtení a zápis, včetně tajných kódů |
Přispěvatel | - Přístup pro čtení a zápis, včetně tajných kódů. – Umožňuje vytvářet a spravovat všechny typy prostředků Azure. - Provádění akcí skriptu. |
Beze změny |
Vlastník | - Přístup pro čtení a zápis včetně tajných kódů. - Úplný přístup ke všem prostředkům - Delegujte přístup k ostatním. - Provádění akcí skriptu. |
Beze změny |
Informace o tom, jak přidat přiřazení role operátora clusteru HDInsight uživateli, aby mu udělil přístup pro čtení a zápis k tajným kódům clusteru, najdete v následující části Přidání přiřazení role operátora clusteru HDInsight uživateli.
Mám na tyto změny vliv?
Ovlivněné jsou následující entity a scénáře:
- Rozhraní API: Uživatelé používající
/configurations
/configurations/{configurationName}
koncové body - Azure HDInsight Tools for Visual Studio Code verze 1.1.1 nebo starší
- Azure Toolkit for IntelliJ verze 3.20.0 nebo starší
- Nástroje Azure Data Lake a Stream Analytics pro Visual Studio verze 2.3.9000.1
- Azure Toolkit for Eclipse verze 3.15.0 nebo novější.
- SDK pro .NET
- verze 1.x nebo 2.x: Uživatelé používající
GetClusterConfigurations
,GetConnectivitySettings
,ConfigureHttpSettings
EnableHttp
neboDisableHttp
metody z ConfigurationsOperationsExtensions třídy. - verze 3.x a up: Uživatelé používající
Get
třídy ,Update
,EnableHttp
neboDisableHttp
metodyConfigurationsOperationsExtensions
.
- verze 1.x nebo 2.x: Uživatelé používající
- SDK pro Python: Uživatelé používající
get
třídy neboupdate
metodyConfigurationsOperations
. - SDK pro Javu: Uživatelé používající
update
třídy neboget
metodyConfigurationsInner
. - SDK for Go: Uživatelé používající
Get
metody neboUpdate
metody zeConfigurationsClient
struktury. - Az.HDInsight PowerShell verze 2.0.0. Kroky při migraci pro váš scénář najdete v následujících částech (nebo použijte odkazy uvedené výš).
API
Následující rozhraní API jsou změněna nebo zastaralá:
- GET /configurations/{configurationName} (odebrané citlivé informace)
- Dříve se používaly k získání jednotlivých typů konfigurace (včetně tajných kódů).
- Od 3. září 2019 teď toto volání rozhraní API vrátí jednotlivé typy konfigurace s vynechanými tajnými kódy. K získání všech konfigurací, včetně tajných kódů, použijte nové volání POST /configurations. Pokud chcete získat pouze nastavení brány, použijte nové volání POST /getGateway Nastavení.
- GET /configurations (zastaralé)
- Dříve se používalo k získání všech konfigurací (včetně tajných kódů).
- Od 3. září 2019 bude toto volání rozhraní API zastaralé a už nebude podporováno. Pokud chcete získat všechny konfigurace, použijte nové volání POST /configurations. Pokud chcete získat konfigurace s vynechanými citlivými parametry, použijte volání GET /configurations/{configurationName}.
- POST /configurations/{configurationName} (zastaralé)
- Dříve se použilo k aktualizaci přihlašovacích údajů brány.
- Od 3. září 2019 bude toto volání rozhraní API zastaralé a už se nepodporuje. Místo toho použijte nový POST /updateGateway Nastavení.
Přidali jsme následující náhradní rozhraní API:
- POST /configurations
- Toto rozhraní API slouží k získání všech konfigurací, včetně tajných kódů.
- POST /getGateway Nastavení
- Toto rozhraní API slouží k získání nastavení brány.
- POST /updateGateway Nastavení
- Toto rozhraní API slouží k aktualizaci nastavení brány (uživatelské jméno nebo heslo).
Nástroje Azure HDInsight pro Visual Studio Code
Pokud používáte verzi 1.1.1 nebo novější, aktualizujte na nejnovější verzi nástrojů Azure HDInsight pro Visual Studio Code , abyste se vyhnuli přerušení.
Azure Toolkit for IntelliJ
Pokud používáte verzi 3.20.0 nebo novější, aktualizujte na nejnovější verzi modulu plug-in Azure Toolkit for IntelliJ, abyste se vyhnuli přerušení.
Nástroje Azure Data Lake a Stream Analytics pro Visual Studio
Aktualizujte na verzi 2.3.9000.1 nebo novější služby Azure Data Lake a Stream Analytics Tools for Visual Studio , abyste se vyhnuli přerušení. Nápovědu k aktualizaci najdete v naší dokumentaci, aktualizaci nástrojů Data Lake pro Visual Studio.
Azure Toolkit for Eclipse
Pokud používáte verzi 3.15.0 nebo novější, aktualizujte na nejnovější verzi sady Azure Toolkit for Eclipse , abyste se vyhnuli přerušení.
SDK pro .NET
Verze 1.x a 2.x
Aktualizujte na verzi 2.1.0 sady HDInsight SDK pro .NET. Minimální úpravy kódu mohou být vyžadovány, pokud používáte metodu ovlivněnou těmito změnami:
ClusterOperationsExtensions.GetClusterConfigurations
už nebudou vracet citlivé parametry , jako jsou klíče úložiště (jádro-lokalita) nebo přihlašovací údaje HTTP (brána).- Pokud chcete načíst všechny konfigurace, včetněcitlivýchch
ClusterOperationsExtensions.ListConfigurations
Uživatelé s rolí Čtenář nemůžou tuto metodu používat. Umožňuje podrobnou kontrolu nad tím, kteří uživatelé mají přístup k citlivým informacím pro cluster. - Pokud chcete načíst jenom přihlašovací údaje brány HTTP, použijte
ClusterOperationsExtensions.GetGatewaySettings
.
- Pokud chcete načíst všechny konfigurace, včetněcitlivýchch
ClusterOperationsExtensions.GetConnectivitySettings
je nyní zastaralá a byla nahrazena .ClusterOperationsExtensions.GetGatewaySettings
ClusterOperationsExtensions.ConfigureHttpSettings
je nyní zastaralá a byla nahrazena .ClusterOperationsExtensions.UpdateGatewaySettings
ConfigurationsOperationsExtensions.EnableHttp
aDisableHttp
jsou zastaralé. Protokol HTTP je teď vždycky povolený, takže tyto metody už nejsou potřeba.
Verze 3.x a vyšší
Aktualizujte na verzi 5.0.0 nebo novější sady HDInsight SDK pro .NET. Minimální úpravy kódu mohou být vyžadovány, pokud používáte metodu ovlivněnou těmito změnami:
ConfigurationOperationsExtensions.Get
už nebudou vracet citlivé parametry , jako jsou klíče úložiště (jádro-lokalita) nebo přihlašovací údaje HTTP (brána).- Pokud chcete načíst všechny konfigurace, včetněcitlivýchch
ConfigurationOperationsExtensions.List
Uživatelé s rolí Čtenář nemůžou tuto metodu používat. Umožňuje podrobnou kontrolu nad tím, kteří uživatelé mají přístup k citlivým informacím pro cluster. - Pokud chcete načíst jenom přihlašovací údaje brány HTTP, použijte
ClusterOperationsExtensions.GetGatewaySettings
.
- Pokud chcete načíst všechny konfigurace, včetněcitlivýchch
ConfigurationsOperationsExtensions.Update
je nyní zastaralá a byla nahrazena .ClusterOperationsExtensions.UpdateGatewaySettings
ConfigurationsOperationsExtensions.EnableHttp
aDisableHttp
jsou zastaralé. Protokol HTTP je teď vždycky povolený, takže tyto metody už nejsou potřeba.
SDK pro Python
Aktualizujte na verzi 1.0.0 nebo novější sady HDInsight SDK pro Python. Minimální úpravy kódu mohou být vyžadovány, pokud používáte metodu ovlivněnou těmito změnami:
ConfigurationsOperations.get
už nebudou vracet citlivé parametry , jako jsou klíče úložiště (jádro-lokalita) nebo přihlašovací údaje HTTP (brána).- Pokud chcete načíst všechny konfigurace, včetněcitlivýchch
ConfigurationsOperations.list
Uživatelé s rolí Čtenář nemůžou tuto metodu používat. Umožňuje podrobnou kontrolu nad tím, kteří uživatelé mají přístup k citlivým informacím pro cluster. - Pokud chcete načíst jenom přihlašovací údaje brány HTTP, použijte
ClusterOperations.get_gateway_settings
.
- Pokud chcete načíst všechny konfigurace, včetněcitlivýchch
ConfigurationsOperations.update
je nyní zastaralá a byla nahrazena .ClusterOperations.update_gateway_settings
SADA SDK pro Javu
Aktualizujte na verzi 1.0.0 nebo novější sady HDInsight SDK pro Javu. Minimální úpravy kódu mohou být vyžadovány, pokud používáte metodu ovlivněnou těmito změnami:
ConfigurationsInner.get
už nebudou vracet citlivé parametry , jako jsou klíče úložiště (jádro-lokalita) nebo přihlašovací údaje HTTP (brána).ConfigurationsInner.update
je teď zastaralý.
SDK For Go
Aktualizujte na verzi 27.1.0 nebo novější sady HDInsight SDK pro Go. Minimální úpravy kódu mohou být vyžadovány, pokud používáte metodu ovlivněnou těmito změnami:
ConfigurationsClient.get
už nebudou vracet citlivé parametry , jako jsou klíče úložiště (jádro-lokalita) nebo přihlašovací údaje HTTP (brána).- Pokud chcete načíst všechny konfigurace, včetněcitlivýchch
ConfigurationsClient.list
Uživatelé s rolí Čtenář nemůžou tuto metodu používat. Umožňuje podrobnou kontrolu nad tím, kteří uživatelé mají přístup k citlivým informacím pro cluster. - Pokud chcete načíst jenom přihlašovací údaje brány HTTP, použijte
ClustersClient.get_gateway_settings
.
- Pokud chcete načíst všechny konfigurace, včetněcitlivýchch
ConfigurationsClient.update
je nyní zastaralá a byla nahrazena .ClustersClient.update_gateway_settings
Az.HDInsight PowerShell
Aktualizujte na Az PowerShell verze 2.0.0 nebo novější, abyste se vyhnuli přerušení. Minimální úpravy kódu mohou být vyžadovány, pokud používáte metodu ovlivněnou těmito změnami.
Grant-AzHDInsightHttpServicesAccess
je teď zastaralý a nahradila ji nováSet-AzHDInsightGatewayCredential
rutina.Get-AzHDInsightJobOutput
byla aktualizována tak, aby podporovala podrobný přístup na základě role ke klíči úložiště.- Na uživatele s rolemi operátora clusteru HDInsight, přispěvatele nebo vlastníka to nemá vliv.
- Uživatelé, kteří mají pouze roli Čtenář, potřebují explicitně zadat
DefaultStorageAccountKey
parametr.
Revoke-AzHDInsightHttpServicesAccess
je teď zastaralý. Protokol HTTP je teď vždycky povolený, takže tato rutina už není potřebná. Podívejte se na az. Další podrobnosti najdete v průvodci migrací služby HDInsight.
Přidání přiřazení role operátora clusteru HDInsight uživateli
Uživatel s rolí Vlastník může přiřadit roli operátora clusteru HDInsight uživatelům, kterým chcete mít přístup pro čtení a zápis k citlivým hodnotám konfigurace clusteru HDInsight (například přihlašovací údaje brány clusteru a klíče účtu úložiště).
Použití Azure CLI
Nejjednodušší způsob, jak toto přiřazení role přidat, je použít az role assignment create
příkaz v Azure CLI.
Poznámka:
Tento příkaz musí spustit uživatel s rolí Vlastník, protože tato oprávnění můžou udělit jenom oni. Jedná se --assignee
o název instančního objektu nebo e-mailové adresy uživatele, kterému chcete přiřadit roli operátora clusteru HDInsight. Pokud se zobrazí chybová zpráva o nedostatečných oprávněních, přečtěte si nejčastější dotazy.
Udělení role na úrovni prostředku (clusteru)
az role assignment create --role "HDInsight Cluster Operator" --assignee <user@domain.com> --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HDInsight/clusters/<ClusterName>
Udělení role na úrovni skupiny prostředků
az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com -g <ResourceGroupName>
Udělení role na úrovni předplatného
az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com
Pomocí webu Azure Portal
Případně můžete k přidání přiřazení role operátora clusteru HDInsight k uživateli použít Azure Portal. Podívejte se na dokumentaci a přiřaďte role Azure pomocí webu Azure Portal.
Často kladené dotazy
Proč se po aktualizaci požadavků rozhraní API nebo nástroje zobrazuje odpověď 403 (Zakázáno)?
Konfigurace clusteru jsou teď za podrobným řízením přístupu na základě role a vyžadují Microsoft.HDInsight/clusters/configurations/*
oprávnění k přístupu k nim. Chcete-li získat toto oprávnění, přiřaďte uživateli nebo instančnímu objektu roli operátora clusteru HDInsight, přispěvatele nebo vlastníka, který se pokouší o přístup ke konfiguracím.
Proč se při spuštění příkazu Azure CLI zobrazí nedostatečná oprávnění k dokončení operace, aby se role operátora clusteru HDInsight přiřadil jinému uživateli nebo instančnímu objektu?
Kromě role Vlastník musí mít uživatel nebo instanční objekt, který příkaz spouští, dostatečná oprávnění Microsoft Entra k vyhledání ID objektů přiřazeného. Tato zpráva indikuje nedostatečná oprávnění Microsoft Entra. Zkuste argument –assignee-object-id
nahradit -–assignee
a zadat ID objektu přiřazeného jako parametr místo názvu (nebo ID objektu zabezpečení v případě spravované identity). Další informace najdete v části volitelné parametry v dokumentaci az role assignment create.
Pokud to stále nefunguje, požádejte správce Microsoft Entra o získání správných oprávnění.
Co se stane, když neprojdu žádnou akcí?
Od 3. září 2019 GET /configurations
se už nebudou vracet žádné informace a POST /configurations/gateway
volání už nebudou GET /configurations/{configurationName}
vracet citlivé parametry, jako jsou klíče účtu úložiště nebo heslo clusteru. Totéž platí pro odpovídající metody sady SDK a rutiny PowerShellu.
Pokud používáte starší verzi některého z nástrojů pro Visual Studio, VSCode, IntelliJ nebo Eclipse, nebude už fungovat, dokud neaktualizujete.
Podrobnější informace najdete v odpovídající části tohoto dokumentu pro váš scénář.