Azure Virtual Network Manager에서 Azure Policy로 네트워크 그룹 구성
이 문서에서는 Azure Virtual Network Manager에서 Azure Policy를 사용하여 동적 네트워크 그룹 멤버 자격을 정의하는 방법에 대해 알아봅니다. 동적 네트워크 그룹을 사용하면 조직에서 확장 가능하고 동적으로 적응하는 가상 네트워크 환경을 만들 수 있습니다.
Azure Policy 개요
Azure Policy는 해당 리소스의 속성을 비즈니스 규칙과 비교하여 Azure의 리소스를 평가합니다. JSON 형식에서 설명하는 이러한 비즈니스 규칙을 정책 정의라고 합니다. 비즈니스 규칙이 구성되면 정책 정의가 Azure에서 지원하는 리소스의 범위(예: 관리 그룹, 구독, 리소스 그룹, 개별 리소스)에 할당됩니다. 할당은 해당 할당의 Resource Manager 범위 내에 있는 모든 리소스에 적용됩니다. Azure Policy의 범위에서 범위 사용에 대해 자세히 알아봅니다.
참고 항목
Azure Policy는 동적 네트워크 그룹 멤버 자격의 정의에만 사용됩니다.
네트워크 그룹 정책 정의
Azure Policy에서 정책을 만들고 구현하는 것은 정책 정의 리소스를 만드는 것으로 시작됩니다. 모든 정책 정의에는 시행되는 조건과 조건이 충족될 경우 발생하는 정의된 효과가 있습니다.
네트워크 그룹을 사용하면 정책 정의에 조건을 충족하는 일치하는 가상 네트워크에 대한 조건식이 포함되며 일치하는 리소스가 배치되는 대상 네트워크 그룹을 지정합니다. addToNetworkGroup
효과는 대상 네트워크 그룹에 리소스를 배치하는 데 사용됩니다. addToNetworkGroup
효과가 있는 정책 규칙 정의의 샘플입니다. 모든 사용자 지정 정책의 경우 mode
속성은 네트워크 그룹 리소스 공급자를 대상으로 Microsoft.Network.Data
가 설정되며 Azure Virtual Network Manager에 대한 정책 정의를 만드는 데 필요합니다.
"mode": "Microsoft.Network.Data",
"policyRule": {
"if": {
"allOf": [
{
"field": "Name",
"contains": "-gen"
}
]
},
"then": {
"effect": "addToNetworkGroup",
"details": {
"networkGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup2/providers/Microsoft.Network/networkManagers/myAVNM/networkGroups/myNG"
}
}
}
Important
정책을 정의할 때 networkGroupId
는 샘플 정의에 표시된 것처럼 대상 네트워크 그룹의 전체 리소스 ID여야 합니다. 정책 정의에서 매개 변수화를 지원하지 않습니다. 네트워크 그룹을 매개 변수화해야 하는 경우 Azure Resource Manager 템플릿을 활용하여 정책 정의 및 할당을 만들 수 있습니다.
Azure Policy를 Azure Virtual Network Manager에서 사용하는 경우 정책은 Microsoft.Network.Data
의 리소스 공급자 속성을 대상으로 합니다. 이 때문에 정책 정의에 Custom
의 policyType을 지정해야 합니다. Virtual Network Manager에서 멤버를 동적으로 추가하는 정책을 만드는 경우 정책이 만들어질 때 자동으로 적용됩니다. Azure Policy 또는 Virtual Network Manager 대시보드 외부의 다른 도구를 통해 새 정책 정의를 만들 때만 custom
을 선택해야 합니다.
다음은 policyType
속성이 Custom
으로 설정된 정책 정의의 샘플입니다.
"properties": {
"displayName": "myProdAVNM",
"policyType": "Custom",
"mode": "Microsoft.Network.Data",
"metadata": {
"category": "Azure Virtual Network Manager",
"createdBy": "-----------------------------",
"createdOn": "2023-04-10T15:35:35.9308987Z",
"updatedBy": null,
"updatedOn": null
}
}
정책 정의 구조에 대해 자세히 알아봅니다.
정책 할당 만들기
Virtual Network Manager 구성과 유사하게 정책 정의는 만들 때 즉시 적용되지 않습니다. 적용을 시작하려면 할당된 범위에서 평가할 정의를 할당하는 정책 할당을 만들어야 합니다. 현재 범위 내의 모든 리소스는 정의에 대해 평가되므로 보다 세부적인 그룹 구성원 제어를 위해 여러 위치에서 할당할 수 있는 재사용 가능한 단일 정의를 허용합니다. Azure Policy의 할당 구조에 대해 자세히 알아봅니다.
API/PS/CLI 또는 Azure Policy Portal을 통해 정책 정의 및 할당을 만들 수 있습니다.
필요한 사용 권한
Azure Policy와 함께 네트워크 그룹을 사용하려면 사용자에게 다음 권한이 필요합니다.
- 할당하는 범위에
Microsoft.Authorization/policyassignments/Write
및Microsoft.Authorization/policydefinitions/Write
가 필요합니다. - 네트워크 그룹에 추가 섹션에서 참조하는 대상 네트워크 그룹에
Microsoft.Network/networkManagers/networkGroups/join/action
작업이 필요합니다. 이 권한을 통해 대상 네트워크 그룹에서 개체를 추가하고 제거할 수 있습니다. - 집합 정의를 사용하여 여러 정책을 동시에 할당하는 경우 할당 시 할당되는 모든 정의에 대한 동시
Microsoft.Network/networkManagers/networkGroups/join/action
권한이 필요합니다.
필요한 권한을 설정하기 위해 사용자에게 역할 기반 액세스 제어가 있는 기본 제공 역할을 할당할 수 있습니다.
- 대상 네트워크 그룹에 대한 네트워크 기여자 역할.
- 대상 범위 수준에서 리소스 정책 기여자 역할.
보다 세분화된 역할 할당을 위해 Microsoft.Network/networkManagers/networkGroups/join/action
권한 및 policy/write
권한을 사용하여 사용자 지정 역할을 만들 수 있습니다.
Important
AVNM 동적 그룹을 수정하려면 Azure RBAC 역할 할당을 통해서만 액세스 권한을 부여해야 합니다. 클래식 관리자/레거시 권한 부여는 지원되지 않습니다. 즉, 계정에 공동 관리자 구독 역할만 할당된 경우 AVNM 동적 그룹에 대한 권한이 없습니다.
필요한 권한과 함께 구독 및 관리 그룹이 다음 리소스 공급자에 등록되어야 합니다.
Microsoft.Network
는 가상 네트워크를 만드는 데 필요합니다.Microsoft.PolicyInsights
는 Azure Policy를 사용해야 합니다.
필요한 공급자 등록을 설정하려면 Azure PowerShell의 경우 Register-AzResourceProvider를 사용하고 Azure CLI의 경우 az provider register를 사용합니다.
유용한 팁
형식 필터링
정책 정의를 구성할 때 형식 조건을 포함하여 범위를 가상 네트워크로 지정하는 것이 좋습니다. 이 조건을 사용하면 정책이 가상 네트워크가 아닌 작업을 필터링하고 정책 리소스의 효율성을 개선시킬 수 있습니다.
지역 조각화
정책 리소스는 전역적입니다. 즉, 모든 변경 내용은 지역에 관계없이 할당 범위에 있는 모든 리소스에 적용됩니다. 지역 조각화 및 점진적 롤아웃이 우려되는 경우 where location in []
조건도 포함하는 것이 좋습니다. 그런 다음 위치 목록을 점진적으로 확장하여 효과를 점진적으로 롤아웃할 수 있습니다.
할당 범위 할당
Azure 관리 그룹을 사용하여 관리 그룹 모범 사례를 따르고 있다면 이미 리소스를 계층 구조로 구성했을 가능성이 큽니다. 할당을 사용하면 계층 구조 내의 여러 고유 범위에 동일한 정의를 할당할 수 있으므로 네트워크 그룹에 적합한 리소스를 더 세밀하게 제어할 수 있습니다.
네트워크 그룹과 연결된 Azure Policy 정의 삭제
더 이상 Azure Policy 정의가 필요하지 않은 인스턴스가 될 수 있습니다. 정책과 연결된 네트워크 그룹이 삭제되거나 더 이상 필요하지 않고 사용되지 않는 정책이 있는 경우입니다. 정책을 삭제하려면 정책 연결 개체를 삭제한 다음, Azure Policy에서 정책 정의를 삭제해야 합니다. 삭제가 완료되면 새 정의를 네트워크 그룹에 연결할 때 정의 이름을 다시 사용하거나 다시 참조할 수 없습니다.
다음 단계
- Azure Virtual Network Manager 인스턴스를 만듭니다.
- Azure Virtual Network Manager의 구성 배포에 대해 알아봅니다.
- 보안 관리자 구성을 사용하여 네트워크 트래픽을 차단하는 방법에 대해 알아봅니다.