Sdílet prostřednictvím


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:

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:

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.GetClusterConfigurationsnebudou 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.
  • ClusterOperationsExtensions.GetConnectivitySettingsje nyní zastaralá a byla nahrazena .ClusterOperationsExtensions.GetGatewaySettings

  • ClusterOperationsExtensions.ConfigureHttpSettingsje nyní zastaralá a byla nahrazena .ClusterOperationsExtensions.UpdateGatewaySettings

  • ConfigurationsOperationsExtensions.EnableHttp a DisableHttp 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:

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:

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.getnebudou 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:

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ář.