Azure CLI를 사용하여 Azure 구독을 관리하는 방법

Azure CLI를 사용하면 Azure 구독을 관리하고, 관리 그룹을 만들고, 구독을 잠글 수 있습니다. Azure 내에 여러 구독이 있을 수 있습니다. 둘 이상의 조직에 속할 수 있거나 조직에서 그룹화 간에 특정 리소스에 대한 액세스를 나눌 수 있습니다. Azure CLI는 전역 및 명령별로 구독 선택을 지원합니다.

구독, 청구 및 비용 관리에 대한 자세한 내용은 청구 및 비용 관리 설명서를 참조 하세요.

용어

테넌트는 단일 조직에 대한 정보가 상주하는 Microsoft Entra ID의 인스턴스입니다. 다중 테넌트 조직은 Microsoft Entra ID 인스턴스가 두 개 이상 있는 조직입니다. 테넌트에는 하나 이상의 구독사용자가 있습니다.

사용자는 리소스를 만들고 관리하고 사용하기 위해 Azure에 로그인하는 계정입니다. 사용자는 여러 테넌트 및 구독에 액세스할 수 있습니다.

구독은 Azure를 포함한 클라우드 서비스를 사용하기 위해 Microsoft와 체결한 계약입니다. 모든 리소스는 구독과 연결됩니다. 구독에는 리소스 그룹이 포함되어 있습니다.

Azure 리소스 그룹은 Azure 솔루션에 대한 관련 리소스를 보유하는 컨테이너입니다. 구독 내에서 리소스 그룹을 관리하는 방법을 알아보려면 Azure CLI를 사용하여 Azure 리소스 그룹을 관리하는 방법을 참조하세요.

활성 테넌트 가져오기

az account tenant list 또는 az account show를 사용하여 활성 테넌트 ID를 가져옵니다.

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 명령을 실행합니다. Azure CLI에서 Bash를 사용하여 이러한 명령을 사용하는 방법에 대한 더 많은 예제를 보려면 Learn으로 이동합니다.

구독 정보를 가져오는 방법을 보여 주는 예제는 다음과 같습니다.

# 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 구독에는 이름과 ID가 모두 있습니다. 원하는 구독 ID 또는 이름을 지정하는 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 테넌트에 새 구독을 추가하는 방법을 알아보려면 Microsoft Entra 테넌트에 Azure 구독 연결 또는 추가를 참조하세요.

"...의 구독...을 받은 경우 존재하지 않습니다..." 오류, 가능한 해결 방법은 문제 해결을 참조하세요.

Azure 관리 그룹 만들기

Azure 관리 그룹에는 구독이 포함됩니다. 관리 그룹은 해당 구독에 대한 액세스, 정책 및 규정 준수를 관리하는 방법을 제공합니다. 자세한 내용은 Azure 관리 그룹이란?을 참조하세요.

az account management-group 명령을 사용하여 Azure 관리 그룹을 만들고 관리합니다.

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 CLI를 사용하여 Azure 역할 할당 추가 또는 제거를 참조하세요.

잠금에 대한 세부 정보를 보려면 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

참고 항목