Как управлять подписками Azure с помощью Azure CLI

Azure CLI помогает управлять подпиской Azure, создавать группы управления и блокировать подписки. У вас может быть несколько подписок в Azure. Вы можете работать с несколькими организациями, или в вашей организации доступ к определенным ресурсам может быть разделен между группами. Azure CLI поддерживает выбор подписки как глобально, так и для отдельных команд.

См. подробнее о подписках, выставлении счетов и управлении затратами.

Терминология

Клиент — это экземпляр идентификатора Microsoft Entra, в котором находятся сведения об одной организации. Многотенантная организация — это организация с несколькими экземплярами идентификатора Microsoft Entra. В арендаторе содержится одна или несколько подписок и один или несколько пользователей.

Пользователи — это учетные записи для входа в Azure, которые используются, чтобы создавать, использовать и администрировать ресурсы. У пользователя может быть доступ к нескольким клиентам и подпискам.

Подписки — это соглашения с корпорацией Майкрософт на использование облачных служб, в том числе Azure. Каждый ресурс связан с подпиской. Подписки содержат группы ресурсов.

Группа ресурсов Azure — это контейнер, содержащий связанные ресурсы для решения Azure. Сведения об управлении группами ресурсов в подписке см. в статье Управление группами ресурсов Azure с помощью Azure CLI.

Получение активного арендатора

Чтобы получить идентификатор активного арендатора, используйте az account tenant list или az account show.

az account tenant list

az account show

Изменение активного арендатора

Для переключения клиентов есть два варианта.

  • Измените активную подписку.

  • Войдите в качестве пользователя в нужном клиенте. Чтобы изменить активный арендатор и обновить список подписок, к которому вы принадлежите, используйте az login.

    # sign in as a different user
    az login --user <myAlias@myCompany.com> --password <myPassword>
    
    # sign in with a different tenant
    az login --tenant <myTenantID>
    

    Если в вашей организации требуется многофакторная проверка подлинности, при использовании az login --user может возникнуть следующая ошибка:

    Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access...
    

    С помощью альтернативной az login --tenant командной строки можно открыть страницу HTTPS и ввести предоставленный код. После этого вы можете использовать многофакторную проверку подлинности и успешно войти в систему. Дополнительные сведения о вариантах входа с помощью Azure CLI см. в статье Вход с помощью Azure CLI.

Получение сведений о подписке

Большинство команд Azure CLI выполняются в подписке. Вы можете указать, в какой подписке работать с помощью --subscription параметра в команде. Если подписка не указана, в команде используется текущая активная подписка.

Чтобы просмотреть используемую сейчас подписку или получить список доступных подписок, выполните команду az account show или az account list. Перейдите на страницу Learn, чтобы использовать Bash с Azure CLI , чтобы просмотреть дополнительные примеры способов использования этих команд.

Ниже приведены примеры получения сведений о подписке:

# get the current default subscription using show
az account show --output table

# get the current default subscription using list
az account list --query "[?isDefault]"

# get a subscription that contains search words or phrases
az account list --query "[?contains(name,'search phrase')].{SubscriptionName:name, SubscriptionID:id, TenantID:tenantId}" --output table

Вы также можете хранить сведения о подписке в переменной для использования в скрипте.

# store the default subscription in a variable
subscriptionId="$(az account list --query "[?isDefault].id" --output tsv)"
echo $subscriptionId

# store a subscription of certain name in a variable
subscriptionId="$(az account list --query "[?name=='my case sensitive subscription full name'].id" --output tsv)"
echo $subscriptionId

Совет

Параметр --output является глобальным, то есть доступным для всех команд. Значение table позволяет получить выходные данные в удобном формате. Дополнительные сведения см. в статье Форматы выходных данных для команд Azure CLI.

Изменение активной подписки

У подписок Azure есть и имя, и идентификатор. Вы можете переключиться на другую подписку с помощью az account set, указав идентификатор или имя нужной подписки.

# change the active subscription using the subscription name
az account set --subscription "My Demos"

# change the active subscription using the subscription ID
az account set --subscription "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Вы также можете изменить подписку с помощью переменной. Рассмотрим пример:

# change the active subscription using a variable
subscriptionId="$(az account list --query "[?name=='my case sensitive subscription full name'].id" --output tsv)"
az account set --subscription $subscriptionId

Если вы измените подписку, которая находится в другом клиенте, вы также измените активный клиент. Чтобы узнать, как добавить новую подписку в клиент Microsoft Entra, см . статью "Связать или добавить подписку Azure" в клиент Microsoft Entra.

Если вы получили подписку ... не существует..." ошибка см. в разделе "Устранение неполадок " для возможных решений.

Создание групп управления Azure

Группы управления Azure содержат подписки. Группы управления предоставляют возможность управления доступом, политиками и соответствием для этих подписок. Дополнительные сведения см. в статье Что такое группы управления Azure?

Создавать и администрировать группы управления Azure можно с помощью команд az account management-group.

Группу управления для нескольких подписок можно создать с помощью команды az account management-group create:

az account management-group create --name Contoso01

Чтобы просмотреть все группы управления, воспользуйтесь командой az account management-group list:

az account management-group list

Добавьте подписки в новую группу с помощью команды az account management-group subscription add:

az account management-group subscription add --name Contoso01 --subscription "My Demos"
az account management-group subscription add --name Contoso01 --subscription "My Second Demos"

Чтобы удалить подписку, используйте команду az account management-group subscription remove:

az account management-group subscription remove --name Contoso01 --subscription "My Demos"

Чтобы удалить группу управления, выполните команду az account management-group delete:

az account management-group delete --name Contoso01

При удалении подписки или группы управления подписка не удаляется без возможности восстановления и не деактивируется.

Установка блокировки подписки Azure

Администратору может потребоваться заблокировать подписку, чтобы запретить пользователям удалять или изменять ее. Дополнительные сведения см. в статье Блокировка ресурсов для предотвращения непредвиденных изменений.

В Azure CLI используйте команды az account lock. Например, с помощью команды az account lock create можно запретить удаление подписки пользователями:

az account lock create --name "Cannot delete subscription" --lock-type CanNotDelete

Примечание.

Для создания или изменения блокировок необходимо иметь contributor разрешения на подписку.

Чтобы просмотреть текущие блокировки в подписке, воспользуйтесь командой az account lock list:

az account lock list --output table

Если сделать учетную запись доступной только для чтения, результат будет подобен назначению разрешений роли читателя всем пользователям. Дополнительные сведения о настройке разрешений для отдельных пользователей и ролей см. в статье Добавление и удаление назначений ролей Azure с помощью Azure CLI.

Чтобы просмотреть сведения о блокировке, воспользуйтесь командой az account lock show:

az account lock show --name "Cannot delete subscription"

Снять блокировку можно с помощью команды az account lock delete:

az account lock delete --name "Cannot delete subscription"

Устранение неполадок

Подписка не существует

Помимо типографической ошибки, вы можете получить эту ошибку при возникновении проблемы с временем разрешений. Например, если вы получили разрешения на новые подписки во время открытия текущего окна терминала, эта ошибка может возникнуть. Решение заключается в закрытии и повторном открытии окна терминала или обновлении az logoutaz login списка доступных подписок.

Ниже приведен скрипт, который поможет вам найти и изменить подписку.

# See what subscription you are currently using.
az account show

# Get a list of available subscriptions.
az account list --output table

# If the subscription you are seeking is not in the list
#   close and reopen your terminal window,
#   or logout and then sign in again.
az logout
az login

# Did your available subscription list change?
az account list --output table

# If the subscription you are seeking is still not in the list,
#    contact your system administrator. You cannot change your
#    subscription to an ID that is not in the list.

# If the subscription you are seeking is now in the list,
#   change your subscription.
az account set --subscription 00000000-0000-0000-0000-00000000000

См. также