빠른 시작: Azure CLI를 사용하여 비준수 리소스를 식별하는 정책 할당 만들기
Azure의 규정 준수를 이해하는 첫 번째 단계는 리소스 상태를 식별하는 것입니다. 이 빠른 시작에서는 Azure CLI를 사용하여 비준수 리소스를 식별하는 정책 할당을 만듭니다. 정책은 리소스 그룹에 할당되고 관리 디스크를 사용하지 않는 가상 머신을 감사합니다. 정책 할당을 만든 후 비준수 가상 머신을 식별합니다.
Azure CLI는 명령줄 또는 스크립트에서 Azure 리소스를 만들고 관리하는 데 사용됩니다. 이 가이드에서는 Azure CLI를 사용하여 Azure 환경 내에서 규정 비준수 리소스를 식별하고 정책 할당을 만듭니다.
기본 제공 정책 또는 이니셔티브 정의를 할당할 때 버전을 참조하는 것은 선택 사항입니다. 기본 제공 정의의 정책 할당은 기본적으로 최신 버전으로 지정되며 별도로 지정하지 않는 한 자동으로 부 버전 변경 내용을 상속합니다.
필수 조건
- Azure 계정이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
- Azure CLI
- Visual Studio Code
Microsoft.PolicyInsights
는 Azure 구독에 등록되어야 합니다. 리소스 공급자를 등록하려면 리소스 공급자를 등록할 수 있는 권한이 있어야 합니다. 해당 권한은 기여자 및 소유자 역할에 포함되어 있습니다.- 관리 디스크를 사용하지 않는 가상 머신이 하나 이상 포함된 리소스 그룹입니다.
Azure에 연결
Visual Studio Code 터미널 세션에서 Azure에 연결합니다. 구독이 두 개 이상인 경우 명령을 실행하여 구독에 대한 컨텍스트를 설정합니다. <subscriptionID>
를 Azure 구독 ID로 바꿉니다.
az login
# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription <subscriptionID>
리소스 공급자 등록
리소스 공급자가 등록되면 Azure 구독에서 사용할 수 있습니다.
Microsoft.PolicyInsights
가 등록되었는지 확인하려면 Get-AzResourceProvider
를 실행합니다. 리소스 공급자에는 여러 리소스 종류가 포함됩니다. 결과가 NotRegistered
이면 Register-AzResourceProvider
를 실행합니다.
az provider show \
--namespace Microsoft.PolicyInsights \
--query "{Provider:namespace,State:registrationState}" \
--output table
az provider register --namespace Microsoft.PolicyInsights
Azure CLI 명령은 가독성 향상을 위해 줄 연속에 백슬래시(\
)를 사용합니다. 자세한 내용은 az provider에서 확인하세요.
정책 할당 만들기
리소스 그룹에 대해 새 정책 할당을 만들려면 다음 명령을 사용합니다. 이 예제에서는 관리 디스크가 없는 가상 머신을 포함하는 기존 리소스 그룹을 사용합니다. 리소스 그룹은 정책 할당의 범위입니다. 이 예제에서는 기본 제공된 관리 디스크를 사용하지 않는 VM 감사 정책 정의를 사용합니다.
다음 명령을 실행하고 <resourceGroupName>
을 리소스 그룹 이름으로 바꿉니다.
rgid=$(az group show --resource-group <resourceGroupName> --query id --output tsv)
definition=$(az policy definition list \
--query "[?displayName=='Audit VMs that do not use managed disks']".name \
--output tsv)
rgid
변수는 리소스 그룹 ID를 저장합니다. definition
변수는 GUID인 정책 정의의 이름을 저장합니다.
다음 명령을 실행하여 정책 할당을 만듭니다.
az policy assignment create \
--name 'audit-vm-managed-disks' \
--display-name 'Audit VM managed disks' \
--scope $rgid \
--policy $definition \
--description 'Azure CLI policy assignment to resource group'
name
은 할당ResourceId
에 사용되는 정책 할당 이름을 만듭니다.display-name
은 정책 할당의 이름이며 Azure Portal에 표시됩니다.scope
는$rgid
변수를 사용하여 리소스 그룹에 정책을 할당합니다.policy
은$definition
변수에 저장된 정책 정의를 할당합니다.description
은 정책 할당에 대한 컨텍스트를 추가하는 데 사용할 수 있습니다.
정책 할당의 결과는 다음 예제와 유사합니다.
"description": "Azure CLI policy assignment to resource group",
"displayName": "Audit VM managed disks",
"enforcementMode": "Default",
"id": "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks",
"identity": null,
"location": null,
"metadata": {
"createdBy": "11111111-1111-1111-1111-111111111111",
"createdOn": "2024-02-23T18:42:27.4780803Z",
"updatedBy": null,
"updatedOn": null
},
"name": "audit-vm-managed-disks",
정책 할당 정보를 다시 표시하려면 다음 명령을 실행합니다.
az policy assignment show --name "audit-vm-managed-disks" --scope $rgid
자세한 내용은 az policy assignment에서 확인하세요.
비규격 리소스 식별
새 정책 할당에 대한 준수 상태가 활성화되고 정책 상태에 대한 결과를 제공하는 데 몇 분 정도 걸립니다.
만든 정책 할당을 준수하지 않는 리소스를 식별하기 위해 다음 명령을 사용합니다.
policyid=$(az policy assignment show \
--name "audit-vm-managed-disks" \
--scope $rgid \
--query id \
--output tsv)
az policy state list --resource $policyid --filter "(isCompliant eq false)"
policyid
변수는 식을 사용하여 정책 할당의 ID를 가져옵니다. filter
매개 변수는 출력을 규정 비준수 리소스로 제한합니다.
az policy state list
출력은 자세하지만 이 문서에서는 complianceState
가 NonCompliant
를 보여 줍니다.
"complianceState": "NonCompliant",
"components": null,
"effectiveParameters": "",
"isCompliant": false,
자세한 내용은 az policy state에서 확인하세요.
리소스 정리
정책 할당을 제거하려면 다음 명령을 실행합니다.
az policy assignment delete --name "audit-vm-managed-disks" --scope $rgid
Azure CLI 세션에서 로그아웃하려면 다음을 수행합니다.
az logout
다음 단계
이 빠른 시작에서는 Azure 환경에서 규정 비준수 리소스를 식별하는 정책 정의를 할당했습니다.
리소스 준수의 유효성을 검사하는 정책을 할당하는 방법에 대해 자세히 알아보려면 자습서를 계속 진행합니다.