azure-resource-lookup
작성자 microsoftazure-resource-lookup는 Azure Resource Graph를 사용해 구독과 리소스 그룹 전반의 Azure 리소스를 목록화하고, 검색하고, 세부 확인할 수 있게 해줍니다. 인벤토리, 태그 분석, 미사용(고아) 리소스 탐지, 크로스 구독 조회에 적합합니다. 배포 변경, 비용 최적화, 비-Azure 클라우드용으로 설계된 스킬은 아닙니다.
개요
azure-resource-lookup란 무엇인가요?
azure-resource-lookup는 여러 구독과 리소스 그룹에 걸쳐 거의 모든 유형의 Azure 리소스를 목록화하고, 검색하고, 살펴볼 수 있는 Azure 리포팅 및 디스커버리 스킬입니다.
이 스킬은 Azure Resource Graph(ARG)를 사용해 Azure Resource Manager(ARM) 메타데이터에 대해 빠른 크로스 구독 쿼리를 수행합니다. 덕분에 다음과 같은 인벤토리 성격의 질문에 특히 잘 맞습니다.
- "list websites"
- "list virtual machines"
- "list my VMs in subscription X"
- "show storage accounts in this resource group"
- "find container apps in region Y"
- "what resources do I have?"
백그라운드에서는 azure-resource-lookup가 이런 의도를 ARG 쿼리로 변환하여, 매번 KQL을 직접 작성하지 않고도 환경을 구조화된, 거의 실시간 뷰로 확인할 수 있게 해줍니다.
이 스킬은 누구를 위한 것인가요?
azure-resource-lookup는 다음과 같은 사용자를 대상으로 합니다.
- 여러 구독 전반의 Azure 리소스를 빠르게 파악해야 하는 클라우드/플랫폼 엔지니어
- 운영 워크플로의 일부로 특정 리소스 유형, 상태, 태그를 검색하고 싶은 DevOps 및 SRE 팀
- 필수 태그나 구성값이 제대로 적용되어 있는지 점검해야 하는 보안 및 컴플라이언스 팀
- Azure Portal을 일일이 탐색하지 않고도 "이 앱/컴포넌트가 어디에서 돌고 있지?", "이번 배포로 어떤 리소스가 만들어졌지?" 같은 질문에 쉽게 답하고 싶은 개발자
주요 목적이 Azure 전반의 리포팅, 인벤토리, 리소스 디스커버리라면 이 스킬이 잘 맞는 선택입니다.
azure-resource-lookup는 어떤 문제를 해결하나요?
다음과 같은 상황에서 azure-resource-lookup를 사용하세요.
- 일반적인 리소스 유형 목록이 필요할 때
- Virtual machines, web apps, storage accounts, container apps, databases 등.
- 범위별 리소스를 보고 싶을 때
- 특정 구독, 여러 구독 세트, 특정 리소스 그룹으로 결과를 제한.
- 크로스 구독 검색을 수행할 때
- 여러 번 컨텍스트를 바꾸지 않고도 "show all storage accounts in all production subscriptions" 같은 질문에 답하고 싶을 때.
- 고아 또는 미사용 리소스를 찾을 때
- 연결되지 않은 디스크, 사용되지 않는 NIC, 유휴 IP 등 정리 대상으로 의심되는 리소스를 탐지.
- 태그 적용 현황과 규칙을 점검할 때
- 필수 태그가 없는 리소스를 찾거나,
env,owner,costCenter같은 태그 값 기준으로 리소스를 그룹화.
- 필수 태그가 없는 리소스를 찾거나,
- 리소스 인벤토리를 구축할 때
- 문서화나 감사 목적을 위해 리소스를 유형, 지역, 구독별로 집계.
- 리소스 상태로 필터링할 때
- Resource Graph에 인덱싱된 메타데이터를 활용해 정지, 비정상 상태, 프로비저닝 실패 상태의 리소스를 찾을 때.
이 기능들은 기존 Azure 인프라에 대한 명확하고 쿼리 가능한 전체 현황이 필요한 리포팅·가시성 시나리오와 잘 맞습니다.
이 스킬이 적합하지 않은 경우는 언제인가요?
azure-resource-lookup는 다음 용도로는 설계되지 않았습니다.
- 리소스 배포 또는 수정
- Azure 리소스를 생성, 업데이트, 삭제하지 않습니다.
- 비용 및 최적화 분석
- 사용량, 사이징 권장사항, 상세 비용 내역을 계산하지 않습니다.
- 비-Azure 클라우드 또는 온프레미스 리소스
- Azure Resource Graph를 통해 노출되는 Azure Resource Manager 리소스에만 특화되어 있습니다.
- 특정 리소스에 대한 심층 전문 도구 역할
- 예를 들어 데이터베이스 스키마 작업, Kubernetes 오브젝트 관리, 상세 VM 구성 변경 등 고도로 특화된 작업에는 전용 도구나 다른 스킬을 사용해야 합니다.
Azure 전반에 대한 운영 인사이트와 인벤토리가 필요하다면 azure-resource-lookup가 잘 맞습니다. 반대로 변경, 자동화, 비용 분석이 필요하다면 이 스킬은 다른 도구와 함께 사용하는 보조 역할로 두는 것이 좋습니다.
사용 방법
사전 준비 사항
azure-resource-lookup를 설치하고 사용하기 전에 다음을 확인하세요.
- 대상 구독의 리소스를 읽을 수 있는 적절한 권한을 가진 Azure 계정이 있어야 합니다.
- 테넌트에서 Azure Resource Graph를 사용할 수 있어야 합니다(대부분의 환경에서는 기본적으로 활성화되어 있습니다).
- 에이전트 또는 자동화 환경이 Azure에 인증할 수 있어야 합니다(구성에 따라
az login, managed identity, service principal 등 사용).
스킬 자체는 microsoft/azure-skills GitHub 저장소의 skills/azure-resource-lookup 경로에 들어 있으며, 이 repo의 스킬을 지원하는 호환 에이전트 런타임에 플러그인 형태로 연결되도록 설계되어 있습니다.
설치 단계
1. azure-skills 저장소와 이 스킬 추가
에이전트 런타임이 npx skills(예: Microsoft skills tooling)를 지원한다면, GitHub에서 azure-resource-lookup를 바로 추가할 수 있습니다.
npx skills add https://github.com/microsoft/azure-skills --skill azure-resource-lookup
이 명령은 다음을 수행합니다.
microsoft/azure-skills저장소를 스킬 소스로 등록합니다.- 에이전트 환경에
azure-resource-lookup스킬 정의와 관련 레퍼런스 자료를 설치합니다.
다른 방식의 스킬 추가 메커니즘을 사용하는 플랫폼이라면 다음을 지정하세요.
- Repository:
https://github.com/microsoft/azure-skills - Skill path:
skills/azure-resource-lookup
이후 해당 플랫폼 문서에 나와 있는 스킬 추가 절차를 따르면 됩니다.
2. 스킬 정의 검토
설치가 끝나면 azure-resource-lookup 디렉터리의 SKILL.md 파일을 열어보세요. 이 파일에는 다음 내용이 들어 있습니다.
- 공식 설명과 주요 사용 사례
- 같은 repo 내 다른 스킬과 비교했을 때 언제 이 스킬을 써야 하는지에 대한 가이드
이를 통해 이 스킬이 귀하의 시나리오(전역 Azure 리소스 인벤토리 및 조회)에 적합한지 확인할 수 있습니다.
3. 에이전트의 Azure 액세스 구성
에이전트가 실행되는 환경에서 Azure Resource Graph를 쿼리할 수 있도록 인증을 설정해야 합니다. 일반적인 패턴은 다음과 같습니다.
- 로컬 테스트용 대화형 로그인 (Azure CLI 사용):
az login - 비대화형 자동화를 위한 service principal:
az login --service-principal -u <APP_ID> -p <PASSWORD_OR_CERT> --tenant <TENANT_ID> - Managed identity를 지원하는 Azure 호스팅 서비스에서 실행할 때는 managed identity 사용.
스킬은 리소스 메타데이터를 활용하므로, 쿼리 대상 구독에 대해 일반적으로 Reader 같은 읽기 전용 권한이면 충분합니다.
4. 스킬을 에이전트에 연결
이 repo를 지원하는 대부분의 에이전트 플랫폼은 스킬 설치 후 자동으로 스킬을 노출합니다. 설정 UI나 JSON manifest에서 다음을 확인하세요.
- 활성 스킬 목록에
azure-resource-lookup가 포함되어 있는지. - 이전 단계에서 구성한 Azure 자격 증명에 이 스킬이 접근할 수 있는지.
구체적인 연결 방법은 사용하는 에이전트 프레임워크 문서를 참고해 스킬과 도구를 마무리 연동하세요.
스킬로 Azure 리소스 조회하기
자주 쓰는 자연어 프롬프트
연동이 끝나면 자연어 프롬프트로 azure-resource-lookup를 호출할 수 있습니다. SKILL.md에 정의된 의도에 맞는 예시는 다음과 같습니다.
-
리소스 목록 조회
- "List virtual machines in my production subscription."
- "Show storage accounts in resource group
rg-app-prod." - "List container apps in region
westeurope."
-
태그 기반 검색
- "Find resources tagged
env=prodin all subscriptions." - "Which resources are missing the
ownertag in subscription X?"
- "Find resources tagged
-
고아 리소스 탐지
- "List unattached managed disks in all subscriptions."
- "Show idle IP addresses that are not associated with any resource."
-
인벤토리 및 개수 집계
- "Count all resources by type across all subscriptions."
- "How many storage accounts are in each region?"
-
상태 기반 쿼리
- "Show virtual machines that are stopped."
- "List resources in a failed provisioning state."
스킬은 이런 요청을 Azure Resource Graph 쿼리로 변환하고, 리포팅이나 후속 분석에 활용하기 좋은 구조화된 결과를 반환합니다.
Azure Resource Graph 쿼리 패턴 활용하기
더 고급 시나리오가 필요하다면 저장소의 references/azure-resource-graph.md 레퍼런스 파일을 확인하세요. 여기에는 다음 내용이 정리되어 있습니다.
- 표준
az graph query명령 형식:az graph query -q "<KQL>" --query "data[].{col1:field1, col2:field2}" -o table Resources,ResourceContainers,HealthResources등 핵심 테이블 설명- Resource Graph용 KQL 기본 문법 (
=~대소문자 무시 비교,mv-expand,isempty(),tostring()등) - 실무 인벤토리 패턴 예시:
- 리소스를 유형별로 카운트하기
- 리소스를 location 기준으로 그룹화하기
직접 az graph query를 실행하지 않더라도, 이러한 패턴을 알고 있으면 스킬이 내부적으로 무엇을 하는지, 결과를 어떻게 해석해야 하는지 이해하는 데 도움이 됩니다.
워크플로와 리포팅에 통합하기
azure-resource-lookup는 읽기 전용 인벤토리와 디스커버리에 초점을 맞추고 있어 다음과 같은 용도에 자연스럽게 녹아듭니다.
- 운영 대시보드 – 리포팅 도구로 결과를 전달해 일별 리소스 수량과 커버리지를 한눈에 보는 데 활용.
- 거버넌스 및 컴플라이언스 점검 – 누락된 태그나 허용되지 않은 구성을 정기적으로 스캔.
- 정리 캠페인 – 다른 도구로 삭제 워크플로를 실행하기 전에 고아 디스크, 사용되지 않는 NIC, 유휴 IP 등을 먼저 식별.
- 릴리스 및 환경 리뷰 – 배포 이후 각 환경에 어떤 리소스가 존재하는지 검증.
이 스킬을 더 큰 워크플로에서 정보 레이어로 활용하세요. 현재 무엇이 어떤 상태로 존재하는지는 이 스킬로 파악하고, 실제 변경 작업은 필요한 경우 다른 도구에 맡기는 구조입니다.
FAQ
azure-resource-lookup는 내부적으로 무엇을 기반으로 동작하나요?
azure-resource-lookup는 ARM 리소스용 인덱싱 메타데이터 서비스인 Azure Resource Graph를 기반으로 동작합니다. 이 스킬은 ARG 스타일 쿼리를 발행해 여러 구독과 리소스 그룹 전반에서 리소스를 빠르게 검색·필터링한 뒤, 그 결과를 에이전트를 통해 반환합니다.
azure-resource-lookup로 Azure 리소스를 생성하거나 삭제할 수 있나요?
아니요. azure-resource-lookup는 읽기 전용 디스커버리 및 리포팅 스킬입니다. Azure 리소스를 배포, 변경, 삭제하는 용도로는 설계되지 않았습니다. 그런 작업이 필요하다면 ARM/Bicep 템플릿, Terraform 같은 배포 도구나 별도의 자동화 스킬과 함께 사용하세요.
이 스킬은 비-Azure 클라우드를 지원하나요?
지원하지 않습니다. azure-resource-lookup는 Azure Resource Graph를 통해 노출되는 Azure Resource Manager 리소스에만 특화되어 있습니다. AWS, GCP, 온프레미스 환경은 쿼리하지 않습니다.
azure-resource-lookup는 비용 분석이나 최적화에 적합한가요?
직접적인 용도는 아닙니다. 인벤토리 관점에서 리소스를 파악할 수 있기 때문에 비용 작업의 입력 데이터로 활용할 수는 있지만, 이 스킬 자체는 비용 최적화용으로 설계되지 않았습니다. 비용 계산, 가격 추정, 리사이징 권장사항을 제공하지 않습니다.
이 스킬을 사용하려면 어떤 권한이 필요한가요?
쿼리하려는 구독과 리소스 그룹에 대해 최소한 읽기 권한(예: Reader 역할)이 필요합니다. azure-resource-lookup는 읽기 전용이며 Resource Graph를 사용하므로, 일반적으로 읽기 이상의 높은 권한은 필요하지 않습니다.
azure-resource-lookup와 Azure Portal의 리소스 검색은 어떻게 다른가요?
Azure Portal은 인터랙티브한 검색과 필터링 기능을 제공합니다. 반면 azure-resource-lookup는 다음과 같은 장점을 제공합니다.
- 여러 구독에 걸친 스크립트 가능한 반복 쿼리
- 에이전트와 워크플로가 자동으로 소비할 수 있는 구조화된 출력
- 질문마다 KQL을 직접 작성하지 않아도 되는 자연어 기반 진입점
수시로 하는 수동 검색보다, 일관된 자동 인벤토리 및 디스커버리가 필요한 경우에 특히 유용합니다.
더 많은 쿼리 예제를 보려면 어디를 참고하면 되나요?
microsoft/azure-skills 저장소의 azure-resource-lookup 디렉터리에서 다음 파일을 열어보세요.
SKILL.md: 스킬의 상위 동작 방식과 사용 팁references/azure-resource-graph.md: 구체적인 Azure Resource Graph 쿼리 패턴과 KQL 팁
이 예제들을 참고해, 스킬을 통해 어떤 질문들을 확장해서 할 수 있는지 이해하고 필요한 패턴을 응용해 보세요.
언제는 다른 스킬을 선택하는 게 좋을까요?
다음과 같은 요구가 있을 때는 다른 스킬을 추가로 사용하거나, 아예 다른 스킬을 선택하는 것이 좋습니다.
- 인프라 변경이 필요할 때(리소스 생성, 업데이트, 삭제, 스케일 조정 등).
- 리소스 내부의 워크로드 관리가 필요할 때(예: 애플리케이션 배포, 데이터베이스 스키마 작업, Kubernetes 오브젝트 관리 등).
- 메타데이터 수준 리포팅을 넘는 상세 비용·성능·보안 분석이 필요할 때.
이런 경우에는 디스커버리와 인벤토리는 azure-resource-lookup로 수행하고, 실제 배포·모니터링·보안 점검은 특화된 도구나 스킬로 넘기는 방식으로 조합해 사용하세요.
