Создание субъекта-службы Azure с помощью Azure CLI
Автоматические средства, использующие службы Azure, всегда должны иметь ограниченные разрешения, чтобы обеспечить безопасность ресурсов Azure. Поэтому вместо того, чтобы приложения входить в систему в качестве полного привилегированного пользователя, Azure предлагает субъекты-службы. Субъект-служба Azure — это удостоверение, созданное для использования с приложениями, размещенными службами и автоматизированными средствами. Это удостоверение используется для доступа к ресурсам.
В этом руководстве описано следующее:
- Создание субъекта-службы
- Вход с помощью субъекта-службы и пароля
- Вход с помощью субъекта-службы и сертификата
- Управление ролями субъекта-службы
- Создание ресурса Azure с помощью субъекта-службы
- Сброс учетных данных субъекта-службы
Необходимые компоненты
- Для создания субъекта-службы в подписке необходимо иметь
User Access Administrator
разрешения илиRole Based Access Control Administrator
разрешения. Список ролей, доступных для управления доступом на основе ролей Azure (Azure RBAC), см . в статье о встроенных ролях Azure.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Создание субъекта-службы
Используйте команду az ad sp create-for-rbac Azure CLI для создания субъекта-службы. В этом примере параметр не указан --name
, поэтому имя, содержащее метку времени, создается автоматически.
az ad sp create-for-rbac
Выходная консоль:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Если вы не придерживаетесь соглашений об именовании ресурсов и планируете создать роль и область для нового субъекта-службы позже, az ad sp create-for-rbac
команда без параметров является приемлемым решением. Однако без роли и область новый субъект-служба не имеет доступа к ресурсам. Это просто существует.
При создании субъекта-службы без параметров выполните следующие действия:
- Запишите пароль, назначенный системой, так как вы не сможете получить его снова. Если пароль потерян, сбросить его с помощью az ad sp credential reset , как описано в разделе "Сброс учетных данных субъекта-службы".
- Задайте назначение ролей для нового субъекта-службы с помощью az role assignment create , как описано в разделе "Управление ролями субъекта-службы".
Примечание.
Если у вашей учетной записи нет разрешения на создание субъекта-службы, возвращает сообщение об ошибке, az ad sp create-for-rbac
содержащее "Недостаточно привилегий для завершения операции". Чтобы создать субъект-службу, обратитесь к администратору Microsoft Entra.
В каталоге идентификатора Microsoft Entra ID, где пользователи могут зарегистрировать приложения , установлено значение No, необходимо быть членом одной из следующих встроенных ролей Microsoft Entra ID (которые имеют действие: microsoft.directory/applications/createAsOwner
или microsoft.directory/applications/create
):
- Разработчик приложений
- Администратор приложений
- Администратор облачных приложений
- Глобальный администратор
- Администратор гибридных удостоверений
Дополнительные сведения о параметрах пользователей в идентификаторе Microsoft Entra см. в разделе "Ограничение возможностей создания приложений".
Создание субъекта-службы с ролью и область
Рекомендуется всегда назначать конкретный --role
субъект-службу и --scopes
при создании субъекта-службы. Выполните следующие действия:
Определите правильную роль.
При определении роли всегда используйте принцип наименьшей привилегии. Например, не предоставляйте субъекту-службе
contributor
разрешения на подписку, если субъект-служба должен получить доступ только к хранилищу Azure в группе ресурсов. Рассмотрим специализированную роль, например данные BLOB-объектов хранилища участник. Полный список доступных ролей в Azure RBAC см . в статье о встроенных ролях Azure.Получите значение параметра область s.
Найдите и скопируйте идентификатор ресурса ресурса Azure, к которому должен получить доступ новый субъект-служба. Обычно эти сведения находятся на странице свойств или конечных точек портал Azure каждого ресурса. Ниже приведены распространенные
--scopes
примеры, но для фактического формата и значения используется идентификатор ресурса.Область Пример Подписка /subscriptions/mySubscriptionID
Группа ресурсов /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Виртуальная машина /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
служба файлов учетной записи служба хранилища /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Фабрика данных /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Дополнительные область примеры см. в статье "Общие сведения о область для Azure RBAC".
Создайте субъект-службу.
В этом примере создается новый субъект-служба с именем myServicePrincipalName1 с разрешениями читателя для всех ресурсов в группе ресурсов RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
Параметр
--scopes
принимает список область с разделителями пробелов. В этом примере создается новый субъект-служба с именем myServicePrincipalName2 с разрешениями читателя для всех ресурсов в группе ресурсов myRG1. Этот субъект-служба также предоставляет разрешения на читатель для myVM , расположенных в myRG2.# Bash script az ad sp create-for-rbac --name myServicePrincipalName2 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
Если вы решите, что вы предоставили слишком мало или слишком много разрешений новому субъекту-службе, измените разрешения, управляя ролями субъекта-службы.
Создание субъекта-службы с помощью переменных
Вы также можете создать субъект-службу с помощью переменных:
# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"
roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"
resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"
az ad sp create-for-rbac --name $servicePrincipalName \
--role $roleName \
--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
Полный список свойств субъекта-службы используйте az ad sp list и см. в разделе "Получение существующего субъекта-службы".
Предупреждение
При создании субъекта-службы Azure с помощью команды az ad sp create-for-rbac
в выходные данные включаются учетные данные, которые необходимо защитить. Убедитесь, что эти учетные данные не включены в код, или проверьте учетные данные в системе управления версиями. В качестве альтернативы можно использовать управляемые удостоверения (если они доступны), чтобы не работать с учетными данными.
Next Steps
Теперь, когда вы узнали, как создать субъект-службу Azure, перейдите к следующему шагу, чтобы узнать, как использовать субъекты-службы с проверкой подлинности на основе паролей.