azure cli

Azure CLI 2.60+

Azure CLI(az) 빠른 참조 — 인증, subscription / resource 관리, VM / AKS / Storage / App Service / Key Vault, 쿼리 형식, CI 친화적 워크플로우 — 자주 쓰는 옵션과 실전 예시까지 함께 정리했습니다.

명령어 43개

도움말

az --version

Azure CLI 버전과 사용하는 Python 인터프리터를 출력합니다.

az --version
az find <query>

키워드로 `az` 명령을 검색합니다 — CLI와 함께 제공되는 정적 검색 인덱스를 사용합니다.

az find 'aks'
az <group> --help

그룹 아래의 모든 명령을 표시합니다.

<group> --help; <group> <command> --help

az storage --help
az <group> <command> --help

단일 명령의 플래그 + 예시를 표시합니다.

az vm create --help
az interactive

자동 완성, 신택스 강조, 인라인 문서가 있는 인터랙티브 셸로 들어갑니다.

--style; --update; --no-param-expansion

az interactive

인증

az login

브라우저 기반 로그인을 시작합니다(디스플레이가 없으면 디바이스 코드 흐름 사용).

--use-device-code; --tenant <tenant>; --service-principal -u <id> -p <secret> --tenant <tenant>; --federated-token <token>; --identity

az login
az login --use-device-code

디바이스 코드 흐름 사용 — 임의 디바이스의 브라우저에 붙여넣을 URL + 코드를 출력합니다.

az login --use-device-code --tenant contoso.onmicrosoft.com
az login --service-principal -u <appId> -p <password> --tenant <tenant>

클라이언트 시크릿을 사용해 서비스 프린시플로 로그인합니다(CI / 자동화).

-u <id>; -p <secret>; --tenant <tenant>; --federated-token <jwt>

az login --service-principal -u $APP_ID -p $APP_SECRET --tenant $TENANT
az logout

모든 자격 증명을 지우고 현재 세션을 종료합니다.

--username <upn>

az logout
az account show

현재 활성 subscription, tenant, 사용자를 출력합니다.

--output table; --query

az account show --output table
az account list

계정이 접근할 수 있는 모든 subscription을 나열합니다.

--output table; --query '[].{name:name,id:id}'; --all

az account list --output table
az account set --subscription <id>

이후 명령에 사용할 활성 subscription을 전환합니다.

--subscription <id>; --name <name>

az account set --subscription 'My Dev Subscription'
az account clear

로컬 캐시에서 모든 subscription을 지웁니다(재로그인 강제).

az account clear && az login

출력

az <cmd> --output <format>

출력 형식을 선택합니다: `json`(기본), `table`, `tsv`, `yaml`, `yamlc`, `none`.

json; table; tsv; yaml; yamlc; none

az vm list --output table
az <cmd> --query '<JMES>'

JMESPath 표현식으로 응답을 프로젝션합니다.

--query '[].name'; --query 'length(@)'; --query 'sort_by(@, &name)'

az vm list --query '[].{name:name,rg:resourceGroup,size:hardwareProfile.vmSize}' --output table
az <cmd> --no-wait

장기 실행 작업이 완료될 때까지 기다리지 않고 즉시 반환합니다(나중에 `az <verb> wait`로 폴링).

az vm create --no-wait --resource-group rg --name myvm --image image

리소스 그룹

az group list

활성 subscription의 모든 리소스 그룹을 나열합니다.

--output table; --query '[].name'

az group list --output table
az group create --name <rg> --location <loc>

새 리소스 그룹을 만듭니다.

--name; --location eastus; --tags env=prod

az group create --name rg-prod --location eastus --tags env=prod
az group delete --name <rg>

리소스 그룹과 포함된 모든 리소스를 삭제합니다(되돌릴 수 없음).

--name; --yes; --no-wait

az group delete --name rg-old --yes --no-wait

리소스

az resource list

현재 subscription 아래의 모든 Azure 리소스를 나열합니다.

--resource-group <rg>; --resource-type <type>; --name <name>; --tag env=prod

az resource list --output table
az tag

리소스 그룹 레벨에서 리소스 태그를 규모 있게 관리합니다.

create; update; list; delete

az tag create --resource-group rg-prod --tags env=prod owner=alice

VM

az vm list

모든 VM을 크기 + 상태와 함께 나열합니다.

--resource-group; --show-details; --query

az vm list --output table
az vm start --name <name> --resource-group <rg>

VM을 시작합니다(이전에 중지된 경우 컴퓨팅 할당을 해제).

--no-wait

az vm start -n vm-dev -g rg-dev --no-wait
az vm stop --name <name> --resource-group <rg>

VM을 중지(할당 해제)해 컴퓨팅 비용 청구를 중지합니다.

--no-wait

az vm deallocate -n vm-dev -g rg-dev --no-wait
az ssh vm --name <name> --resource-group <rg>

새로운 네이티브 SSH 지원(Azure CLI 2.30+)을 사용해 명시적인 공인 IP 없이 세션을 엽니다.

-n; -g; --ssh-key-file <path>; --port <p>

az ssh vm --name vm-dev --resource-group rg-dev

AKS

az aks list

모든 AKS 클러스터를 나열합니다.

--resource-group; --output table

az aks list --output table
az aks get-credentials --name <name> --resource-group <rg> --overwrite-existing

클러스터의 kubeconfig을 `~/.kube/config`에 병합하고 컨텍스트를 전환합니다.

--name; --resource-group; --admin; --overwrite-existing; --file <kubeconfig>

az aks get-credentials --name my-cluster --resource-group rg-prod --overwrite-existing
az aks create --name <name> --resource-group <rg>

AKS 클러스터를 만듭니다. 가장 흔한 플래그: `--node-count`, `--node-vm-size`, `--kubernetes-version`, `--generate-ssh-keys`.

--name; -g; --node-count; --node-vm-size; --kubernetes-version; --generate-ssh-keys; --service-principal; --no-ssh-key

az aks create -g rg-prod -n my-cluster --node-count 3 --generate-ssh-keys

Storage

az storage account list

모든 storage 계정을 나열합니다.

--output table; --query '[].name'

az storage account list --output table
az storage blob upload --account-name <acc> --container-name <c> --name <blob> --file <path>

파일을 blob으로 업로드합니다. `--account-key`, SAS 토큰 또는 auth-mode login을 사용하세요.

--account-name; --container-name; --name; --file <local>; --auth-mode login; --sas-token; --overwrite

az storage blob upload --account-name mysa --container-name uploads --name backup.zip --file backup.zip --auth-mode login
az storage blob download --account-name <acc> --container-name <c> --name <blob> --file <path>

blob을 로컬 경로로 다운로드합니다.

--account-name; --container-name; --name; --file <local>; --auth-mode login

az storage blob download --account-name mysa --container-name uploads --name backup.zip --file ./backup.zip

App Service

az webapp list

모든 App Service webapp을 나열합니다.

--resource-group; --output table

az webapp list --output table
az webapp deploy --name <name> --resource-group <rg> --src-path <local-zip>

빌드된 아티팩트를 webapp에 배포합니다(zip 배포).

--src-path <zip>; --type zip; --target-path; --async

az webapp deploy -g rg-prod -n web-prod --src-path ./app.zip
az webapp log tail --name <name> --resource-group <rg>

컨테이너 로그 출력을 터미널로 스트리밍합니다.

--name; -g; --provider

az webapp log tail -n web-prod -g rg-prod

Key Vault

az keyvault list

subscription의 모든 Key Vault를 나열합니다.

--output table; --resource-type vault

az keyvault list --output table
az keyvault secret set --vault-name <kv> --name <name> --value <value>

시크릿을 추가하거나 업데이트합니다. 파일에서 로드하려면 `--file <path>`를 사용하세요.

--vault-name; --name; --value; --file; --encoding utf-8

az keyvault secret set --vault-name my-kv --name DB-PASSWORD --value $DB_PASSWORD
az keyvault secret show --vault-name <kv> --name <name>

시크릿의 메타데이터 + 값을 읽습니다.

az keyvault secret show --vault-name my-kv --name DB-PASSWORD --query 'value' -o tsv

Container Registry

az acr list

모든 Container Registry를 나열합니다.

--resource-group; --output table

az acr list --output table
az acr login --name <name>

ACR에 Docker 로그인 — 이후 `docker push/pulling`이 바로 동작합니다.

az acr login --name myregistry

진단

az configure

CLI 기본값(출력 형식, 기본 location, 기본 그룹 등)을 관리합니다.

--defaults; --list-defaults

az configure --defaults location=eastus group=rg-prod
az upgrade

Azure CLI를 최신 릴리스로 업그레이드합니다(Linux 전용 — Windows에서는 설치 프로그램 사용).

az upgrade
az extension list

설치된 CLI 확장을 나열합니다(az aks-preview, az spring 등).

list; show; add; remove; update

az extension add --name aks-preview
az --debug <cmd>

HTTP 요청 / 응답 디버그 정보를 stderr에 출력합니다.

--debug; --only-show-errors

az --debug vm list 2> az.log

관련 명령어 치트시트

Azure CLI 소개

Azure CLI(`az`)는 Azure 리소스를 관리하기 위한 Microsoft의 공식 CLI 도구입니다. 2014년에 출시되고 Python으로 만들어진 `az`는는 크로스 플랫폼(Windows, macOS, Linux)이며, 단일 MSI / pkg / apt / brew 설치로 제공되며, 이전에 PowerShell `Az` 모듈이 필요했던 모든 Azure 시나리오의 기본 CLI가 되었습니다. 현재 안정 라인은 Azure CLI 2.60+(Python 3.11+ 런타임)입니다. `az`는 동사-명사 규칙을 따릅니다: `az <verb> <noun>`(예: `az storage blob upload`, `az aks get-credentials`, `az vm list`). 명령은 JMESPath 쿼리(`--query`), 테이블 / json / yaml / tsv 출력(`--output`), 매개변수 완성을 위한 리소스 레벨 자동 프롬프트를 지원합니다. 인증은 인터랙티브 `az login`, 서비스 프린시플, 관리 ID, OIDC / 페더레이션 자격 증명(시크릿 없는 CI)을 지원합니다. Azure CLI는 MIT 라이선스이며 명시적인 API 호출 외에는 소스 코드를 업로드하지 않습니다.

치트시트 버전 1.0.0