A common theme in cloud environments today is the ability to define templates, policies, and procedures. These templates then dictate what can be done and verify that what does exist is correct. A service from Microsoft called Azure Policy is a great way to make that happen.
이 문서에서는 Azure 정책이 작동하는 방법을 배우고 다양한 정책과 복구 조치를 만드는 방법을 살펴볼 것입니다.
Azure 정책 만들기
Azure 포털, PowerShell, Azure CLI 및 ARM 템플릿을 통해 정책을 만드는 여러 가지 방법이 있습니다.
Azure 포털
GUI를 선호하거나 옵션을 탐색하는 경우 여기에서 정책에 대한 좋은 소개를 찾을 수 있습니다. 인터페이스는 간단하며 한눈에 옵션을 확인할 수 있습니다.
- Azure 포털에서 정책을 검색합니다.
- 저자링 섹션에서 할당을 클릭합니다.
- 정책 할당을 클릭합니다.
- 범위 아래의 생략 부호를 클릭하여 적용할 구독 및 선택적으로 리소스 그룹을 선택합니다.
- 정책 정의 아래의 생략 부호를 클릭하여 정의할 정책을 선택합니다.
- 할당 이름 아래의 기본 생성된 이름을 사용하거나 정책을 고유하게 식별하기 위해 이름을 입력합니다.
- 선택한 정책에 따라 필요한 매개 변수를 작성합니다.
- 마지막으로 필요한 경우 관리 식별자를 만들고 위치를 정의합니다.

PowerShell
행운히도 PowerShell을 사용하면 Azure 정책 정의를 정책 할당에 할당하는 것이 빠르고 쉽습니다. 최신 버전의 Azure PowerShell이 설치되어 있어야 하며 Azure 정책 인사이트 리소스 공급자를 등록해야합니다.
Azure CLI
PowerShell을 사용할 수 없거나 선호하지 않는 경우 Azure CLI를 사용하여 동일한 작업을 수행할 수도 있습니다. PowerShell을 모든 운영 체제에서 사용할 수 없는 경우 크로스 플랫폼 시나리오에서도 도움이 될 수 있습니다.
Azure 정책 템플릿
Azure Resource Manager 템플릿은 리소스에 정책을 생성하고 할당하는 또 다른 방법입니다. 아래는 리소스 그룹에 할당할 정책을 선택하는 데 사용할 수 있는 초기 템플릿입니다.
Azure 정책 할당 작동 방식
적용할 정책 정의를 선택하거나 생성한 후 해당 정의를 특정 범위에 할당합니다. 범위는 정책 할당이 적용되는 대상을 정의하는 것으로, 관리 또는 리소스 그룹과 같은 것입니다. 정책 할당은 모든 하위 리소스에서 상속되지만 필요한 경우 하위 범위를 제외할 수 있는 기능이 있습니다.
예시 Azure 정책
많은 정책 정의가 있으며 적용할 최선의 옵션을 결정하기 어려울 수 있습니다. 어떤 옵션이 있으며 언제 사용하고 왜 사용해야 할까요?
- 태그 및 해당 값 필요 – 이는 비용 코드 또는 여러 리소스 그룹에 걸쳐 분산된 여러 다른 리소스를 식별하기 위해 사용할 수 있습니다.
- 허용된 리소스 유형 – 특정 리소스만 허용하려는 경우는 어떻게 할까요? 예를 들어 저장소 리소스만 생성할 수 있도록 강제할 수 있습니다.
- 보류 중인 다시 부팅을 사용하여 Windows VM을 감사하십시오. 아마도 보류 중인 다시 부팅이 필요한 Windows VM을 확인하여 뒤떨어지지 않도록 하고 싶으실 겁니다. 이 정책을 사용하여 일정에 따라 해당 VM을 찾고 필요한 경우 조치할 수 있습니다.
- 진단 설정 감사 – 진단 설정이 활성화되지 않은 경우 이 정책을 통해 비준수 사항을 찾을 수 있습니다.
- 가상 머신의 관리 포트는 닫혀야 합니다 –VM의 관리 포트가 닫혀 있는지 확인하십시오. 보안에 관심이 있는 사람들에게 좋은 정책입니다.
- 구식 계정은 구독에서 제거되어야 합니다 – 디렉토리 내에서 로그인이 차단된 모든 계정을 찾아 필요한 경우 조치할 수 있습니다. 여기에는 많은 내용이 있지만, 매일 더 많은 내용이 생성되고 있기 때문에 매우 강력한 사용자 정의 정책 정의 기능을 사용할 수도 있습니다. 간단한 쿼리 정의 스키마를 사용하여 원하는 대로 정책을 적용할 수 있는 강력한 if-then 구조를 만들 수 있습니다.
Azure 정책을 더 재사용 가능하게 만드는 방법
매개 변수
정책에서 사용할 매개 변수를 정의하는 것은 가장 유용한 도구 중 하나입니다. 정책마다 모든 변형에 대해 고유한 정책을 정의해야 한다면, 수백 개의 정책이 생성될 수 있습니다. 이를 해결하기 위한 훌륭한 방법은 정책을 매개 변수화하는 것입니다. 이를 통해 할당 시에 정책을 사용자 정의하고 하나의 정책 정의를 다양한 용례에 적용할 수 있습니다.
계획
다음으로 논리적인 단계는 여러 정의를 하나의 세트로 수집하는 것입니다. 이렇게 하면 각각을 개별적으로 반복해서 할당할 필요 없이 모든 다른 정의를 범위에 할당할 수 있습니다.
이니셔티브 매개 변수
마지막으로, 이니셔티브에 매개 변수를 추가할 수 있으며 이는 개별 정책으로 상속될 수 있습니다. 이는 이니셔티브에 포함된 각 정책에 개별적으로 매개 변수를 할당할 필요가 없음을 의미합니다. 이렇게 하면 매개 변수에 따라 여러 다른 정책을 여러 가지 다른 방식으로 적용하는 몇 가지 이니셔티브만 정의할 수 있으므로 많은 시간을 절약할 수 있습니다.
개선 작업
정책이 평가되지만 리소스가 규정 준수를 벗어난 경우 어떻게 해야 할까요? 그 때문에 문제를 해결하기 위해 개선 작업을 시작할 수 있습니다. 이는 매우 강력할 수 있지만 잘 설정되지 않은 경우 매우 위험할 수 있습니다. 이러한 작업을 정의하는 여러 가지 방법이 다시 한 번 Azure Portal, PowerShell 또는 Azure CLI를 통해 수행할 수 있습니다.
Azure Portal
이전과 마찬가지로 Azure Portal을 사용하여 개선 작업 생성을 탐색할 수 있습니다. 정책이 표시되지 않는 경우 deployIfNotExists 정책 및 규정 준수가 아닌 정책이 모두 있는지 확인하십시오.
- Azure Portal에서 정책을 검색합니다.
- 왼쪽에 있는 개선 작업을 클릭합니다.
- deployIfNotExists 유형이며 규정 준수가 아닌 리소스가 있는 정책을 클릭합니다.
- 새로운 복구 작업 페이지에서 복구할 리소스를 필터링하여 작업이 적용되는 범위를 제한합니다.
- 작업 자체를 시작하려면 복구를 클릭하십시오.
PowerShell
PowerShell을 사용하여 복구 작업을 생성하는 것은 매우 간단합니다. 기억해야 할 주요 사항은 deployIfNotExists 정책을 사용해야 한다는 것입니다.
Azure CLI
PowerShell 대신 Azure CLI를 사용하여 복구 작업을 시작할 수도 있습니다. PowerShell 작업과 동일한 방식으로 진행됩니다.
요약
Azure 정책을 사용하는 큰 장점은 Azure 구독에 대해 유연한 정책을 정의하여 환경을 관리할 수 있다는 것입니다. 또한 정책, 이니셔티브 및 매개변수를 구조화하는 데 투입된 시간, 노력 및 생각을 통해 잘 정의된 복구 설정을 만들 수 있습니다.
Azure 정책은 Azure 구독에 대해 무료이므로 필요한 것을 구현하는 데 시간을 할애하는 것은 매우 유리합니다. 이러한 정의 및 정책을 생성하고 배포하는 유연성을 고려하면 거의 모든 것에 적용되며 환경을 효과적으로 관리하는 데 도움이 됩니다!