Поделиться через


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

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

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

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

Тенант — это экземпляр Microsoft Entra ID, в котором находятся сведения об одной организации. Мультитенантная организация — это организация с несколькими экземплярами идентификатора 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 <[email protected]> --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. Дополнительные примеры способов использования этих команд см. в статье Об использовании 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».

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

Очистка кэша подписки

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

az account clear

az login

Очистка кэша подписок технически не совпадает с процессом выхода из Azure. При очистке кэша подписок, однако, команды Azure CLI, включая az account set, не могут выполняться, пока не выполнен повторный вход.

Создание групп управления 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 logout , а затем az 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

# You can also clear your cache to refresh the
#    available subscription list
az account clear
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

См. также