클라우드 CLI 명령은 빠른 만큼 잘못된 구독이나 리소스 그룹에 실행되기 쉽다. 명령 자체를 외우기보다 '어느 계정 범위에 어떤 변경을 하는가'를 먼저 확인하는 습관이 더 중요하다.
현재 컨텍스트를 먼저 확인한다
Azure CLI와 PowerShell 모두 로그인한 계정과 선택된 구독 컨텍스트를 가진다. 새 리소스를 만들거나 변경하기 전에는 현재 구독, 대상 리소스 그룹, 리전을 목록 조회로 확인한다. 이름이 비슷한 개발·검토·운영 환경을 구분하는 태그와 명명 규칙도 도움이 된다.
az account show --query '{name:name,id:id}' -o json
az group list --query '[].name' -o table두 명령은 현재 선택된 구독과 보이는 리소스 그룹을 읽는다. 출력에 실제 구독 ID가 포함되므로 화면 공유나 로그에 붙이기 전에는 식별 정보를 가린다. PowerShell을 쓰는 환경에서는 Get-AzContext, Get-AzResourceGroup으로 같은 범위를 점검할 수 있다.
읽기 명령과 변경 명령을 나눈다
목록·조회 명령으로 대상이 맞는지 확인한 뒤 생성·수정·삭제 명령을 실행한다. 삭제처럼 되돌리기 어려운 명령에는 확인 절차와 백업 상태를 먼저 검토한다. 스크립트에 구독 ID, 비밀값, 개인 토큰을 직접 넣지 않고 인증과 설정은 안전한 환경 경계를 사용한다.
사람이 한 번 확인하는 절차를 자동화할 때는 기대한 범위가 아니면 즉시 중단하게 만든다. 다음 예시는 리소스를 바꾸지 않고 현재 구독을 읽은 뒤, 실행 환경이 제공한 기대 값과 비교한다.
current_subscription="$(az account show --query id -o tsv)"
if [ -z "$EXPECTED_SUBSCRIPTION_ID" ] || [ "$current_subscription" != "$EXPECTED_SUBSCRIPTION_ID" ]; then
printf '예상한 구독이 아니므로 중단합니다.\n' >&2
exit 1
fi실제 구독 ID를 스크립트나 게시물에 적지 않고 실행 환경에서 주입한다. PowerShell에서도 같은 방식으로 현재 컨텍스트를 읽고 기대 값과 다르면 변경 단계로 넘어가지 않게 할 수 있다.
자동화는 멱등성과 실패 처리를 갖춰야 한다
같은 스크립트를 다시 실행했을 때 중복 리소스를 만들지 않는지, 중간 실패 시 어떤 상태가 남는지 정한다. 출력값은 다음 명령의 입력이 될 수 있으므로 형식을 확인하고, 사람이 읽는 표 출력에만 의존하지 않는다.
조회 결과가 예상한 구독·그룹과 다르면 변경 명령을 실행하지 않는다. 자동화라면 '대상이 하나여야 한다'는 조건을 확인하고, 0개 또는 여러 개가 반환되면 중단하는 편이 잘못된 환경에 리소스를 만드는 것보다 안전하다.
핵심 요약
Azure CLI·PowerShell은 명령보다 범위 확인이 먼저다. 현재 구독과 리소스 그룹을 조회하고, 읽기·변경·삭제를 단계로 나누자. 자동화에는 재실행 가능성, 오류 처리, 비밀값 분리를 포함해야 운영 환경에서 안전하다.

