미사용 Azure 리소스 감지
3777 단어 governancekqlcloudazure
이는 어려울 수 있습니다. 이러한 리소스는 여전히 청구됩니다.
구독에서 혼자 남길 수 있는 3가지 유형의 리소스를 찾을 수 있습니다.
어떻게 감지합니까? 둘 이상의 구독에 대해 이야기할 때 가장 효과적인 도구는 Azure Resource Graph입니다. 구독당 리소스 구독을 쿼리하는 대신 Azure 메타데이터를 쿼리합니다.
이제 각 리소스에 대한 쿼리를 만드는 방법을 살펴보겠습니다.
디스크의 경우
resources
| where type == "microsoft.compute/disks"
그러나 VM에 연결되지 않은 디스크만 있으면 diskState 속성을 테스트하고 값이 Unattached인지 테스트해야 합니다.
resources
| where type == "microsoft.compute/disks"
| where properties.diskState == "Unattached"
*공용 IP의 경우 *
resources
| where type == "microsoft.network/publicipaddresses"
독립 실행형 공용 IP를 가지려면 리소스에 연결되지 않은 IP를 사용하려면 IP 구성 ID가 없는지 테스트해야 합니다.
resources
| where type == "microsoft.network/publicipaddresses"
| where isnull(properties.ipConfiguration.id)
앱 서비스 플랜의 경우
Azure 함수에서 사용하지 않는 계획을 찾아야 합니다.
resources
| where type == "microsoft.web/serverfarms"
| where properties.kind <> "functionapp"
연결된 웹사이트 없이 앱 서비스만 받으려면 mumbeOfSites 속성을 살펴봐야 합니다.
resources
| where type == "microsoft.web/serverfarms"
| where properties.kind <> "functionapp"
| where properties.numberOfSites == 0
그러나 이러한 모든 개체를 동시에 포함하는 단일 쿼리를 만들 수 있습니다.
이를 위해서는 출력을 표준화해야 합니다. ResourceID, SubscriptionID, 리소스 그룹 및 리소스 이름의 3개 쿼리에 동일한 열이 있어야 하며 공용 IP 또는 App Service 계획에 대한 SKU 또는 계획에 대한 디스크 크기도 있어야 합니다. .
새 쿼리는 다음과 같습니다.
resources
| where type == "microsoft.network/publicipaddresses"
| where isnull(properties.ipConfiguration.id)
| project id, subscriptionId, resourceGroup, resourceName = name, type, resourceValue = sku.name
resources
| where type == "microsoft.compute/disks"
| where properties.diskState == 'Unattached'
| project id, subscriptionId,resourceGroup, resourceName = name, type, resourceValue = properties.diskSizeBytes
resources
| where type == "microsoft.web/serverfarms"
| where properties.kind <> "functionapp"
| where properties.numberOfSites == 0
| project id, subscriptionId,resourceGroup, resourceName = name, resourceValue = sku.tier
고유한 쿼리를 생성하기 위한 해결책은 UNION을 사용하는 것입니다. UNION은 두 테이블을 단일 결과로 결합합니다. 통합 연산자를 사용하여 최대 3개의 쿼리를 결합할 수 있습니다.
resources
| where type == "microsoft.network/publicipaddresses"
| where isnull(properties.ipConfiguration.id)
| project id, subscriptionId, resourceGroup, resourceName = name, type, resourceValue = sku.name
| union (resources
| where type == "microsoft.compute/disks"
| where properties.diskState == 'Unattached'
| project id, subscriptionId,resourceGroup, resourceName = name, type, resourceValue = properties.diskSizeBytes)
|union (resources
| where type == "microsoft.web/serverfarms"
| where properties.kind <> "functionapp"
| where properties.numberOfSites == 0
| project id, subscriptionId,resourceGroup, resourceName = name, resourceValue = sku.tier)
Reference
이 문제에 관하여(미사용 Azure 리소스 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/omiossec/detecting-unused-azure-resources-2mdk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)