Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Nous introduisons des modifications importantes pour prendre en charge un accès basé sur les rôles plus précis afin d'obtenir des informations sensibles. Dans le cadre de ces modifications, une action peut être nécessaire avant le 3 septembre 2019 si vous utilisez l’une des entités/scénarios concernés.
Qu’est-ce qui change ?
Auparavant, les secrets pouvaient être obtenus par le biais de l’API HDInsight par des utilisateurs du cluster avec les rôles Azure Propriétaire, Contributeur ou Lecteur, car ils étaient accessibles à tout utilisateur ayant l’autorisation */read. Les secrets sont définis comme des valeurs qui peuvent être utilisées pour obtenir un accès plus élevé que le rôle d’un utilisateur doit autoriser, comme les informations d’identification HTTP de passerelle de cluster, les clés de compte de stockage et les informations d’identification de base de données.
À compter du 3 septembre 2019, l'accès à ces secrets nécessitera une autorisation Microsoft.HDInsight/clusters/configurations/action. L'utilisateur ne pourra pas y accéder avec le rôle Lecteur. Les rôles qui disposent de cette autorisation sont Contributeur, Propriétaire et le nouveau rôle Opérateur de cluster HDInsight.
Nous introduisons également un nouveau rôle d’opérateur de cluster HDInsight capable de récupérer des secrets sans avoir reçu les autorisations d’administration du contributeur ou du propriétaire. Pour résumer :
| Rôle | Précédemment | À l’avenir |
|---|---|---|
| Lecteur | - Un accès en lecture, notamment aux secrets. | - Un accès en lecture, sans les secrets |
| Opérateur de cluster HDInsight (Nouveau rôle) |
N/A | - Accès lecture/écriture, dont aux secrets |
| Collaborateur | - Un accès en lecture/écriture, notamment aux secrets. - Création et gestion de tous les types de ressources Azure. - Exécution des actions de script. |
Aucune modification |
| Propriétaire | - Un accès en lecture/écriture, notamment aux secrets. - Accès total à toutes les ressources - Délégation de l’accès à d’autres personnes. - Exécution des actions de script. |
Aucune modification |
Pour plus d’informations sur l’ajout de l’attribution de rôle Opérateur de cluster HDInsight à un utilisateur pour lui accorder un accès en lecture/écriture aux secrets du cluster, consultez Ajouter l’attribution de rôle Opérateur de cluster HDInsight à un utilisateur.
Comprendre si vos entités ou scénarios sont affectés
Les entités et scénarios suivants sont concernés :
-
API : utilisateurs utilisant les points de terminaison
/configurationsou/configurations/{configurationName}. - Informations de connexion Azure HDInsight Tools for Visual Studio Code version 1.1.1 ou inférieure.
- Azure Toolkit for IntelliJ version 3.20.0 ou inférieure.
- Outils Azure Data Lake et Stream Analytics pour Visual Studio version 2.3.9000.1.
- Azure Toolkit pour Eclipse version 3.15.0 ou inférieure.
-
SDK pour .NET
-
versions 1.x ou 2.x : utilisateurs utilisant les méthodes
GetClusterConfigurations,GetConnectivitySettings,ConfigureHttpSettings,EnableHttpouDisableHttpà partir de la classe ConfigurationsOperationsExtensions. -
versions 3.x et ultérieures : utilisateurs utilisant les méthodes
Get,Update,EnableHttpouDisableHttpà partir de la classeConfigurationsOperationsExtensions.
-
versions 1.x ou 2.x : utilisateurs utilisant les méthodes
-
Kit de développement logiciel (SDK) pour Python : utilisateurs utilisant les méthodes
getouupdateà partir de la classeConfigurationsOperations. -
Kit de développement logiciel (SDK) pour Java : utilisateurs utilisant les méthodes
updateougetà partir de la classeConfigurationsInner. -
Kit de développement logiciel (SDK) pour Go : utilisateurs utilisant les méthodes
GetouUpdateà partir de la structureConfigurationsClient. - Az.HDInsight PowerShell version 2.0.0. Consultez les sections suivantes (ou utilisez les liens ci-dessus) pour voir les étapes de migration de votre scénario.
API (Interface de Programmation d'Applications)
Les API suivantes sont modifiées ou obsolètes :
-
GET /configurations/{configurationName} (informations sensibles supprimées)
- Précédemment utilisé pour obtenir les types de configuration individuels (y compris les secrets).
- À compter du 3 septembre 2019, cet appel d’API retourne désormais des types de configuration individuels avec des secrets omis. Pour obtenir toutes les configurations, dont les secrets, utilisez le nouvel appel POST/configurations. Pour obtenir uniquement les paramètres de passerelle, utilisez le nouvel appel POST/getGatewaySettings.
-
GET /configurations (obsolète)
- Précédemment utilisé pour obtenir toutes les configurations (y compris les secrets)
- Depuis le 3 septembre 2019, cet appel d’API est déconseillé et n’est plus pris en charge. Pour obtenir toutes les configurations, à l’avenir, utilisez le nouvel appel POST/configurations. Pour obtenir des configurations avec des paramètres sensibles omis, utilisez l’appel GET /configurations/{configurationName}.
-
POST /configurations/{configurationName} (obsolète)
- Précédemment utilisé pour mettre à jour les informations d’identification de la passerelle.
- Depuis le 3 septembre 2019, cet appel d’API est déconseillé et n’est plus pris en charge. Utilisez le nouvel appel POST /updateGatewaySettings à la place.
Les API de remplacement suivantes ont été ajoutées :
-
POST /configurations
- Utilisez cette API pour obtenir toutes les configurations, y compris les secrets.
-
POST /getGatewaySettings
- Utilisez cette API pour obtenir les paramètres de la passerelle.
-
POST /updateGatewaySettings
- Utilisez cette API pour mettre à jour les paramètres de la passerelle (nom d’utilisateur et/ou mot de passe).
Azure HDInsight Tools pour Visual Studio Code
Si vous utilisez la version 1.1.1 ou ultérieure, mettez à jour vers la dernière version d’Azure HDInsight Tools pour Visual Studio Code afin d’éviter les interruptions.
Kit de ressources Azure pour IntelliJ
Si vous utilisez la version 3.20.0 ou ultérieure, mettez à jour vers la dernière version du plug-in Azure Toolkit pour IntelliJ pour éviter les interruptions.
Azure Data Lake et Stream Analytics Tools pour Visual Studio
Mettez à jour vers la version 2.3.9000.1 ou ultérieure d’Azure Data Lake et Stream Analytics Tools pour Visual Studio afin d’éviter toute interruption. Pour faciliter la mise à jour, consultez notre documentation, Update Data Lake Tools for Visual Studio (Mettre à jour Data Lake Tools pour Visual Studio).
Kit de ressources Azure pour Eclipse
Si vous utilisez la version 3.15.0 ou ultérieure, mettez à jour vers la dernière version du Kit de ressources Azure pour Eclipse pour éviter les interruptions.
Kit SDK pour .NET
Versions 1.x et 2.x
Mettez à jour vers la version 2.1.0 du SDK HDInsight pour .NET. Des modifications de code minimales peuvent être requises si vous utilisez une méthode affectée par ces modifications :
ClusterOperationsExtensions.GetClusterConfigurationsne retourne plus de paramètres sensibles tels que les clés de stockage (core-site) ou les informations d’identification HTTP (passerelle).- Pour récupérer toutes les configurations, y compris les paramètres sensibles, utilisez
ClusterOperationsExtensions.ListConfigurationsà l’avenir. Les utilisateurs disposant du rôle « Lecteur » ne peuvent pas utiliser cette méthode. Il permet un contrôle granulaire sur les utilisateurs qui peuvent accéder aux informations sensibles d'un cluster. - Pour récupérer des données d’identification de passerelle HTTP, utilisez
ClusterOperationsExtensions.GetGatewaySettings.
- Pour récupérer toutes les configurations, y compris les paramètres sensibles, utilisez
ClusterOperationsExtensions.GetConnectivitySettingsest déconseillé et remplacé parClusterOperationsExtensions.GetGatewaySettings.ClusterOperationsExtensions.ConfigureHttpSettingsest déconseillé et remplacé parClusterOperationsExtensions.UpdateGatewaySettings.ConfigurationsOperationsExtensions.EnableHttpetDisableHttpsont déconseillés. HTTP est toujours activé. Ces méthodes ne sont donc plus nécessaires.
Versions 3.x et versions ultérieures
Mettez à jour vers la version 5.0.0 ou versions ultérieures du SDK HDInsight pour .NET. Des modifications de code minimales peuvent être requises si vous utilisez une méthode affectée par ces modifications :
-
ConfigurationOperationsExtensions.Getne retournera plus de paramètres sensibles comme les clés de stockage (core-site) ou les informations d'identification HTTP (passerelle).- Pour récupérer toutes les configurations, y compris les paramètres sensibles, utilisez
ConfigurationOperationsExtensions.Listà l’avenir. Les utilisateurs disposant du rôle « Lecteur » ne peuvent pas utiliser cette méthode. Il permet un contrôle granulaire sur les utilisateurs qui peuvent accéder aux informations sensibles d'un cluster. - Pour récupérer des données d’identification de passerelle HTTP, utilisez
ClusterOperationsExtensions.GetGatewaySettings.
- Pour récupérer toutes les configurations, y compris les paramètres sensibles, utilisez
-
ConfigurationsOperationsExtensions.Updateest déconseillé et remplacé parClusterOperationsExtensions.UpdateGatewaySettings. -
ConfigurationsOperationsExtensions.EnableHttpetDisableHttpsont déconseillés. HTTP est toujours activé. Ces méthodes ne sont donc plus nécessaires.
Kit SDK pour Python
Mettez à jour vers la version 1.0.0 ou versions ultérieures du SDK HDInsight pour Python. Des modifications de code minimales peuvent être requises si vous utilisez une méthode affectée par ces modifications :
-
ConfigurationsOperations.getne retourne plus de paramètres sensibles tels que les clés de stockage (core-site) ou les informations d’identification HTTP (passerelle).- Pour récupérer toutes les configurations, y compris les paramètres sensibles, utilisez
ConfigurationsOperations.listà l’avenir. Les utilisateurs disposant du rôle « Lecteur » ne peuvent pas utiliser cette méthode. Il permet un contrôle granulaire sur les utilisateurs qui peuvent accéder aux informations sensibles d'un cluster. - Pour récupérer des données d’identification de passerelle HTTP, utilisez
ClusterOperations.get_gateway_settings.
- Pour récupérer toutes les configurations, y compris les paramètres sensibles, utilisez
-
ConfigurationsOperations.updateest déconseillé et remplacé parClusterOperations.update_gateway_settings.
Kit SDK pour Java
Mettez à jour vers la version 1.0.0 ou versions ultérieures du SDK HDInsight pour Java. Des modifications de code minimales peuvent être requises si vous utilisez une méthode affectée par ces modifications :
-
ConfigurationsInner.getne retourne plus de paramètres sensibles tels que les clés de stockage (core-site) ou les informations d’identification HTTP (passerelle). -
ConfigurationsInner.updateest déconseillé.
Kit SDK pour Go
Mettez à jour vers la version 27.1.0 ou versions ultérieures du SDK HDInsight pour Go. Des modifications de code minimales peuvent être requises si vous utilisez une méthode affectée par ces modifications :
-
ConfigurationsClient.getne retourne plus de paramètres sensibles tels que les clés de stockage (core-site) ou les informations d’identification HTTP (passerelle).- Pour récupérer toutes les configurations, y compris les paramètres sensibles, utilisez
ConfigurationsClient.listà l’avenir. Les utilisateurs disposant du rôle « Lecteur » ne peuvent pas utiliser cette méthode. Il permet un contrôle granulaire sur les utilisateurs qui peuvent accéder aux informations sensibles d'un cluster. - Pour récupérer des données d’identification de passerelle HTTP, utilisez
ClustersClient.get_gateway_settings.
- Pour récupérer toutes les configurations, y compris les paramètres sensibles, utilisez
-
ConfigurationsClient.updateest déconseillé et remplacé parClustersClient.update_gateway_settings.
Az.HDInsight PowerShell
Mettez à jour vers la version 2.0.0 d’Az PowerShell ou version ultérieure afin d’éviter toute interruption. Des modifications de code minimales peuvent être requises si vous utilisez une méthode affectée par ces modifications.
-
Grant-AzHDInsightHttpServicesAccessest déconseillé et remplacé par la nouvelleSet-AzHDInsightGatewayCredentialapplet de commande. -
Get-AzHDInsightJobOutputa été mise à jour de façon à prendre en charge la précision de l’accès en fonction du rôle à la clé de stockage.- Les utilisateurs disposant d’un opérateur de cluster HDInsight, d’un contributeur ou d’un rôle propriétaire ne sont pas affectés.
- Les utilisateurs disposant uniquement du rôle Lecteur doivent spécifier explicitement le paramètre
DefaultStorageAccountKey.
-
Revoke-AzHDInsightHttpServicesAccessest déconseillé. HTTP est toujours activé. Cette applet de commande n’est donc plus nécessaire. Pour plus de détails, consultez le guide de migration az.HDInsight.
Ajouter l’attribution de rôle Opérateur de cluster HDInsight à un utilisateur
Un utilisateur disposant du rôle Propriétaire peut attribuer le rôle Opérateur de cluster HDInsight aux utilisateurs auxquels vous voulez donner l’accès en lecture/écriture à des valeurs de configuration sensibles de cluster HDInsight (telles que les informations d’identification de la passerelle du cluster et les clés de compte de stockage).
Utilisation de l’interface de ligne de commande Azure (CLI)
La façon la plus simple pour ajouter cette attribution de rôle consiste à utiliser la commande az role assignment create dans Azure CLI.
Remarque
Cette commande doit être exécutée par un utilisateur avec le rôle Propriétaire, car ils sont les seuls à pouvoir accorder ces autorisations.
--assignee correspond au nom du principal de service ou à l’adresse e-mail de l’utilisateur à qui vous souhaitez attribuer le rôle Opérateur de cluster HDInsight. Si vous recevez une erreur d'autorisations insuffisantes, consultez la FAQ.
Attribuer un rôle au niveau des ressources (cluster)
az role assignment create --role "HDInsight Cluster Operator" --assignee <user@domain.com> --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HDInsight/clusters/<ClusterName>
Attribuer un rôle au niveau du groupe de ressources
az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com -g <ResourceGroupName>
Attribuer un rôle au niveau de l’abonnement
az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com
À l’aide du portail Azure
Vous pouvez également utiliser le portail Azure pour ajouter l’attribution du rôle Opérateur de cluster HDInsight à un utilisateur. Consultez la documentation, Attribuer des rôles Azure à l’aide du portail Azure.
Questions fréquentes (FAQ)
Pourquoi est-ce que je vois une réponse 403 (Interdit) après la mise à jour de mes demandes d’API et/ou de l’outil ?
Les configurations de cluster se trouvent maintenant derrière un contrôle d’accès en fonction du rôle précis et nécessitent l’autorisation Microsoft.HDInsight/clusters/configurations/* pour y accéder. Pour obtenir cette autorisation, attribuez le rôle Opérateur de cluster HDInsight, Contributeur ou Propriétaire au principal de service ou à l’utilisateur qui tente d’accéder aux configurations.
Pourquoi est-ce que je vois « Privilèges insuffisants pour effectuer l’opération » lors de l’exécution de la commande Azure CLI pour attribuer le rôle Opérateur de cluster HDInsight à un autre utilisateur ou principal de service ?
En plus d'avoir le rôle de propriétaire, l'utilisateur ou le principal du service exécutant la commande doit disposer d'autorisations Microsoft Entra suffisantes pour rechercher les ID d'objet du destinataire. Ce message indique des autorisations Microsoft Entra insuffisantes. Essayez de remplacer l’argument -–assignee par –assignee-object-id et fournissez l’ID d’objet de la personne responsable en tant que paramètre au lieu du nom (ou l’ID du principal dans le cas d’une identité managée). Pour plus d’informations, consultez la section des paramètres facultatifs de la documentation relative à az role assignment create.
S’il ne fonctionne toujours pas, contactez votre administrateur Microsoft Entra pour obtenir les autorisations appropriées.
Que se passe-t-il si je n’effectue aucune action ?
À compter du 3 septembre 2019, GET /configurations et POST /configurations/gateway les appels ne retournent plus d’informations et l’appel GET /configurations/{configurationName} ne retourne plus de paramètres sensibles, tels que les clés de compte de stockage ou le mot de passe du cluster. Il en va de même pour les méthodes du kit SDK et les applets de commande PowerShell correspondantes.
Si vous utilisez une version antérieure de l’un des outils pour Visual Studio, VS Code, IntelliJ ou Eclipse mentionné, il n’est plus fonctionnel tant que vous n’avez pas mis à jour.
Pour obtenir des informations plus détaillées, consultez la section correspondante de ce document pour votre scénario.