Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Мы вносим некоторые важные изменения для поддержки более детализированного доступа на основе ролей к конфиденциальной информации. В рамках этих изменений некоторые действия могут потребоваться к 3 сентября 2019 г., если вы используете одну из затронутых сущностей или сценариев.
Что меняется?
Ранее секреты можно было получить пользователями кластера с помощью API HDInsight, имеющими роли Owner, Contributor или Reader Azure, поскольку они были доступны каждому, у кого есть разрешение */read
. Секреты определяются как значения, которые можно использовать для получения более высокого уровня доступа, чем роль пользователя. К ним относятся такие значения, как учетные данные HTTP шлюза кластера, ключи учетной записи хранения и учетные данные базы данных.
Начиная с 3 сентября 2019 г. доступ к этим секретам потребует Microsoft.HDInsight/clusters/configurations/action
разрешения, пользователь не может получить доступ к нему с ролью читателя. Роли, имеющие это разрешение, — это "Участник", "Владелец" и новая роль "Оператор кластера HDInsight".
Мы также представляем новую роль оператора кластера HDInsight, которая может извлечь секреты без получения административных разрешений сотрудника или владельца. Подведение итогов.
Должность | Ранее | Идти вперед |
---|---|---|
Читатель | — доступ на чтение, включая конфиденциальные данные. | — доступ на чтение, за исключением секретов |
Оператор кластера HDInsight (Новая роль) |
Не применимо | — доступ на чтение и запись, включая секреты |
Вкладчик | — доступ на чтение и запись, включая секреты. — Создание и управление всеми типами ресурсов Azure. — Выполнение действий скрипта. |
Нет изменений |
Владелец | — доступ на чтение и запись, включая секреты. - Полный доступ ко всем ресурсам — делегировать доступ другим пользователям. — Выполнение действий скрипта. |
Нет изменений |
Сведения о добавлении назначения роли оператора кластера HDInsight пользователю, чтобы предоставить пользователю доступ на чтение и запись к секретам кластера, см. в следующем разделе: добавление назначения роли оператора кластера HDInsight пользователю.
Влияет ли я на эти изменения?
Затронуты следующие сущности и сценарии:
-
API: пользователи, использующие конечные точки
/configurations
или/configurations/{configurationName}
. - Средства Azure HDInsight для Visual Studio Code версии 1.1.1 или ниже.
- Набор средств Azure для IntelliJ версии 3.20.0 или ниже.
- Средства Azure Data Lake и Stream Analytics для Visual Studio версии 2.3.9000.1.
- Набор средств Azure для Eclipse версии 3.15.0 или ниже.
-
Пакет SDK для .NET
-
версии 1.x или 2.x: пользователи, использующие методы
GetClusterConfigurations
,GetConnectivitySettings
,ConfigureHttpSettings
,EnableHttp
илиDisableHttp
из класса ConfigurationsOperationsExtensions. -
версии 3.x и выше: пользователи, использующие
Get
,Update
,EnableHttp
, илиDisableHttp
методы изConfigurationsOperationsExtensions
класса.
-
версии 1.x или 2.x: пользователи, использующие методы
-
SDK для Python: пользователи, использующие методы
get
илиupdate
из классаConfigurationsOperations
. -
Пакет SDK для Java: пользователи, использующие методы
update
илиget
из классаConfigurationsInner
. -
Пакет SDK для Go: пользователи, использующие
Get
илиUpdate
методы изConfigurationsClient
структуры. - Az.HDInsight PowerShell версии 2.0.0 . Ознакомьтесь с приведенными ниже разделами (или используйте приведенные выше ссылки), чтобы просмотреть шаги миграции для вашего сценария.
API (Интерфейс программирования приложений)
Следующие API изменены или устарели.
-
GET /configurations/{configurationName} (удалена конфиденциальная информация)
- Ранее использовался для получения отдельных типов конфигурации (включая секреты).
- Начиная с 3 сентября 2019 г., этот вызов API теперь возвращает отдельные типы конфигурации с секретами, исключенными. Чтобы получить все конфигурации, включая секреты, используйте новый вызов POST /configurations. Чтобы получить только параметры шлюза, используйте новый вызов POST /getGatewaySettings.
-
GET /configurations (не рекомендуется)
- Ранее использовался для получения всех конфигураций (включая секреты)
- Начиная с 3 сентября 2019 г., этот вызов API станет устаревшим и больше не будет поддерживаться. Чтобы получить все конфигурации в будущем, используйте новый вызов POST /configurations. Чтобы получить конфигурации с пропущенными конфиденциальными параметрами, используйте вызов GET /configurations/{configurationName}.
-
POST /configurations/{configurationName} (не рекомендуется)
- Ранее использовался для обновления учетных данных шлюза.
- Начиная с 3 сентября 2019 г., этот вызов API будет нерекомендуем и больше не поддерживается. Вместо этого используйте новые POST /updateGatewaySettings.
Добавлены следующие api замены:
-
POST /конфигурации
- Используйте этот API для получения всех конфигураций, включая секреты.
-
POST /getGatewaySettings
- Используйте этот API для получения параметров шлюза.
-
POST /updateGatewaySettings
- Используйте этот API для обновления параметров шлюза (имя пользователя и/или пароль).
Средства Azure HDInsight для Visual Studio Code
Если вы используете версию 1.1.1 или ниже, обновите последнюю версию средств Azure HDInsight для Visual Studio Code , чтобы избежать прерываний.
Набор средств Azure для IntelliJ
Если вы используете версию 3.20.0 или ниже, обновите до последней версии подключаемого модуля Azure Toolkit для IntelliJ, чтобы избежать сбоев.
Средства Azure Data Lake и Stream Analytics для Visual Studio
Обновление до версии 2.3.9000.1 или более поздней версии средств Azure Data Lake и Stream Analytics для Visual Studio , чтобы избежать прерываний. Для получения справки по обновлению см. нашу документацию, Обновление средств Data Lake для Visual Studio.
Набор средств Azure для Eclipse
Если вы используете версию 3.15.0 или ниже, обновите последнюю версию набора средств Azure для Eclipse , чтобы избежать прерываний.
Пакет SDK для .NET
Версии 1.x и 2.x
Обновление до версии 2.1.0 пакета SDK HDInsight для .NET. Минимальные изменения кода могут потребоваться, если вы используете метод, затронутый этими изменениями:
ClusterOperationsExtensions.GetClusterConfigurations
больше не будут возвращать конфиденциальные параметры, такие как ключи хранилища (core-site) или учетные данные HTTP (шлюз).- Чтобы получить все конфигурации, включая конфиденциальные параметры, используйте
ClusterOperationsExtensions.ListConfigurations
в дальнейшем. Пользователи с ролью "Читатель" не могут использовать этот метод. Он позволяет детально контролировать доступ пользователей к конфиденциальной информации для кластера. - Чтобы получить только учетные данные шлюза HTTP, используйте
ClusterOperationsExtensions.GetGatewaySettings
.
- Чтобы получить все конфигурации, включая конфиденциальные параметры, используйте
ClusterOperationsExtensions.GetConnectivitySettings
устарел и был заменен наClusterOperationsExtensions.GetGatewaySettings
.ClusterOperationsExtensions.ConfigureHttpSettings
устарел и был заменен наClusterOperationsExtensions.UpdateGatewaySettings
.ConfigurationsOperationsExtensions.EnableHttp
иDisableHttp
теперь не рекомендуется. Протокол HTTP теперь всегда включен, поэтому эти методы больше не нужны.
Версии 3.x и вверх
Обновление до версии 5.0.0 или более поздней версии пакета SDK HDInsight для .NET. Минимальные изменения кода могут потребоваться, если вы используете метод, затронутый этими изменениями:
-
ConfigurationOperationsExtensions.Get
больше не будут возвращать конфиденциальные параметры, такие как ключи хранилища (core-site) или учетные данные HTTP (шлюз).- Чтобы получить все конфигурации, включая конфиденциальные параметры, используйте
ConfigurationOperationsExtensions.List
в дальнейшем. Пользователи с ролью "Читатель" не могут использовать этот метод. Он позволяет детально контролировать доступ пользователей к конфиденциальной информации для кластера. - Чтобы получить только учетные данные шлюза HTTP, используйте
ClusterOperationsExtensions.GetGatewaySettings
.
- Чтобы получить все конфигурации, включая конфиденциальные параметры, используйте
-
ConfigurationsOperationsExtensions.Update
устарел и был заменен наClusterOperationsExtensions.UpdateGatewaySettings
. -
ConfigurationsOperationsExtensions.EnableHttp
иDisableHttp
теперь не рекомендуется. Протокол HTTP теперь всегда включен, поэтому эти методы больше не нужны.
Пакет SDK для Python
Обновление до версии 1.0.0 или более поздней версии пакета SDK HDInsight для Python. Минимальные изменения кода могут потребоваться, если вы используете метод, затронутый этими изменениями:
-
ConfigurationsOperations.get
больше не будут возвращать конфиденциальные параметры, такие как ключи хранилища (core-site) или учетные данные HTTP (шлюз).- Чтобы получить все конфигурации, включая конфиденциальные параметры, используйте
ConfigurationsOperations.list
в дальнейшем. Пользователи с ролью "Читатель" не могут использовать этот метод. Он позволяет детально контролировать доступ пользователей к конфиденциальной информации для кластера. - Чтобы получить только учетные данные шлюза HTTP, используйте
ClusterOperations.get_gateway_settings
.
- Чтобы получить все конфигурации, включая конфиденциальные параметры, используйте
-
ConfigurationsOperations.update
устарел и был заменен наClusterOperations.update_gateway_settings
.
Пакет SDK для Java
Обновление до версии 1.0.0 или более поздней версии пакета SDK HDInsight для Java. Минимальные изменения кода могут потребоваться, если вы используете метод, затронутый этими изменениями:
-
ConfigurationsInner.get
больше не будут возвращать конфиденциальные параметры, такие как ключи хранилища (core-site) или учетные данные HTTP (шлюз). -
ConfigurationsInner.update
теперь не рекомендуется.
Пакет SDK для Go
Обновление до версии 27.1.0 или более поздней версии пакета SDK HDInsight для Go. Минимальные изменения кода могут потребоваться, если вы используете метод, затронутый этими изменениями:
-
ConfigurationsClient.get
больше не будут возвращать конфиденциальные параметры, такие как ключи хранилища (core-site) или учетные данные HTTP (шлюз).- Чтобы получить все конфигурации, включая конфиденциальные параметры, используйте
ConfigurationsClient.list
в дальнейшем. Пользователи с ролью "Читатель" не могут использовать этот метод. Он позволяет детально контролировать доступ пользователей к конфиденциальной информации для кластера. - Чтобы получить только учетные данные шлюза HTTP, используйте
ClustersClient.get_gateway_settings
.
- Чтобы получить все конфигурации, включая конфиденциальные параметры, используйте
-
ConfigurationsClient.update
устарел и был заменен наClustersClient.update_gateway_settings
.
Az.HDInsight PowerShell
Обновите до Az PowerShell версии 2.0.0 или более поздней, чтобы избежать прерываний. Минимальные изменения кода могут потребоваться, если вы используете метод, затронутый этими изменениями.
-
Grant-AzHDInsightHttpServicesAccess
теперь устарел и заменен новымSet-AzHDInsightGatewayCredential
командлетом. -
Get-AzHDInsightJobOutput
обновлено для поддержки детального доступа на основе ролей к ключу хранилища.- Пользователи с ролью "Оператор кластера HDInsight", "Участник" или "Владелец" не затрагиваются.
- Пользователям с ролью только для чтения необходимо указать параметр
DefaultStorageAccountKey
явно.
-
Revoke-AzHDInsightHttpServicesAccess
теперь не рекомендуется. Http теперь всегда включен, поэтому этот командлет больше не нужен. См. руководство по миграции HDInsight для получения подробностей.
Добавление назначения роли оператора кластера HDInsight пользователю
Пользователь с ролью владельца может назначить роль оператора кластера HDInsight пользователям, которым требуется доступ на чтение и запись к конфиденциальным значениям конфигурации кластера HDInsight (например, учетным данным шлюза кластера и ключам учетной записи хранения).
Использование Azure CLI
Самый простой способ добавить это назначение ролей — использовать az role assignment create
команду в Azure CLI.
Примечание.
Эта команда должна выполняться пользователем с ролью владельца, так как только они могут предоставить эти разрешения. Имя --assignee
субъекта-службы или адреса электронной почты пользователя, которому требуется назначить роль оператора кластера HDInsight. Если вы получаете ошибку из-за недостатка прав доступа, см. часто задаваемые вопросы.
Предоставление роли на уровне ресурса (кластера)
az role assignment create --role "HDInsight Cluster Operator" --assignee <[email protected]> --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HDInsight/clusters/<ClusterName>
Предоставление роли на уровне группы ресурсов
az role assignment create --role "HDInsight Cluster Operator" --assignee [email protected] -g <ResourceGroupName>
Назначить роль на уровне подписки
az role assignment create --role "HDInsight Cluster Operator" --assignee [email protected]
Использование портала Azure
Можно также использовать портал Azure для добавления назначения роли оператора кластера HDInsight пользователю. См. документацию по назначению ролей Azure с помощью портала Azure.
Вопросы и ответы
Почему я вижу ответ 403 (запрещено) после обновления запросов API и /или средства?
Конфигурации кластеров теперь защищены подробным контролем доступа на основе ролей и требуют разрешения Microsoft.HDInsight/clusters/configurations/*
для доступа к ним. Чтобы получить это разрешение, назначьте роль оператора кластера HDInsight, участника или владельца пользователю или служебному принципалу, которому требуется доступ к конфигурациям.
Почему при выполнении команды Azure CLI отображается "Недостаточно привилегий для выполнения операции", чтобы назначить роль оператора кластера HDInsight другому пользователю или субъекту-службе?
Помимо роли владельца, пользователь или служебный принципал, выполняющий команду, должен иметь достаточные разрешения Microsoft Entra для поиска идентификаторов объектов назначаемого лица. Это сообщение указывает на недостаточно разрешений Microsoft Entra. Попробуйте заменить аргумент -–assignee
на –assignee-object-id
и указать ID объекта адресата в качестве параметра вместо имени (или идентификатор субъекта в случае управляемой идентичности). Дополнительные сведения см. в разделе о необязательных параметрах в документации по созданию назначений ролей az.
Если он по-прежнему не работает, обратитесь к администратору Microsoft Entra, чтобы получить правильные разрешения.
Что произойдет, если я не буду действовать?
Начиная с 3 сентября 2019 года, вызовы GET /configurations
и POST /configurations/gateway
больше не будут возвращать какие-либо сведения, а вызов GET /configurations/{configurationName}
больше не вернет конфиденциальные параметры, такие как ключи учетной записи хранения или пароль кластера. То же самое касается соответствующих методов SDK и командлетов PowerShell.
Если вы используете более старую версию одного из упомянутых инструментов для Visual Studio, VS Code, IntelliJ или Eclipse, он больше не будет работать до тех пор, пока вы не обновите его.
Дополнительные сведения см. в соответствующем разделе этого документа для вашего сценария.