https://docs.microsoft.com/en-us/azure/governance/policy/overview
정책을 생성, 할당 및 관리하는 데 사용하는 Azure의 서비스
리소스에 대해 다양한 규칙과 효과를 적용하여 회사 표준 및 서비스 수준 계약을 준수할 수 있다
RBAC와의 차이
RBAC는 다양한 범위의 사용자의 action에 초점을 맞춘다. 리소스 그룹의 작성자 역할에 추가되어 해당 리소스 그룹 변경 가능
Azure Policy는 리소스의 유형 또는 위치와 같은 속성을 제어. RBAC와 달리 기본 허용 및 명시적 거부 시스템
Azure Policy를 사용하여 리소스 제어 및 감시
Azure Policy
리소스를 제어하거나 감사하는 정책을 만들고, 할당하고, 관리할 수 있는 Azure의 서비스
Azure Policy 정책 정의 방법
- ‘이니셔티브’라는 개별 정책 및 관련 정책 그룹을 둘 다 정의 가능
- 스토리지, 네트워킹, 컴퓨팅, Security Center 및 모니터링과 같은 범주에서 사용할 수 있는 다양한 기본 정책과 이니셔티브 정의가 제공
- ex. VM(가상 머신)의 특정 SKU(Stock Keeping Unit) 크기만 사용할 수 있도록 하는 정책을 정의 ⇒ 새 VM을 만들거나 기존 VM의 크기를 조정할때 해당 정책 적용. Azure Policy 환경에 있는 모든 현재 VM 평가
- 정책 미준수 리소스 및 구성을 통해 리소스 상태의 무결성 보장 가능
- 애플리케이션 배포 전 및 배포 후 단계에 적용되는 파이프라인 정책을 적용하여 Azure DevOps와 통합 가능
-
Azure Policy 실제 작동 방식
1. 정책 정의 만들기
- 평가할 내용과 수행할 작업을 나타냄
- 모든 정책 정의에는 정책이 적용 되는 조건이 존재
정책 정의 예제
- 허용된 가상 머신 SKU 이 정책을 사용하면 조직에서 배포할 수 있는 일련의 VM SKU를 지정할 수 있습니다.
- 허용된 위치 이 정책을 사용하면 조직에서 리소스를 배포할 때 지정할 수 있는 위치를 제한할 수 있습니다. 해당 효과는 지리적 규정 준수 요구 사항을 적용하는 데 사용됩니다.
- 구독에서 쓰기 권한이 있는 계정에 대해 MFA를 사용하도록 설정 이 정책의 경우 계정 또는 리소스 위반을 방지하려면 쓰기 권한이 있는 모든 구독 계정에 대해 MFA(Multi-Factor Authentication)를 사용하도록 설정해야 합니다.
- CORS에서 모든 리소스가 웹 애플리케이션에 액세스하도록 허용하지 않아야 함 CORS(원본 간 리소스 공유)는 한 도메인에서 실행되는 웹 애플리케이션이 다른 도메인의 리소스에 액세스할 수 있게 해주는 HTTP 기능입니다. 보안상 이유로 최신 웹 브라우저는 기본적으로 사이트 간 스크립팅을 제한합니다. 이 정책은 필요한 도메인만 웹앱과 상호 작용하도록 허용합니다.
- 머신에 시스템 업데이트를 설치해야 함 이 정책을 사용하면 Azure Security Center가 서버에서 누락된 보안 시스템 업데이트를 추천할 수 있습니다.
2. 리소스에 정의 할당
- 정책 정의를 구현하려면 리소스에 정의를 할당
- ‘정책 할당’은 특정 범위 내에서 발생하는 정책 정의
- 정책 할당은 해당 범위 내 모든 자식 리소스에 상속
- 정책 할당에서 제외해야 하는 특정 자식 리소스가 있는 경우 정책 할당에서 하위 범위를 제외 가능
3. 평가 결과 검토
- 평가 시 리소스 준수 또는 미준수로 표시
- 정책 평가는 시간당 한 번정도 수행 됨
Azure Policy 이니셔티브
- Azure Policy 이니셔티브는 관련 정책을 하나의 세트로 그룹화하는 방법
Azure Security Center 에서 모니터링 사용 이니셔티브에는 다음 정책 정의
- Security Center에서 암호화되지 않은 SQL Database 모니터링 이 정책은 암호화되지 않은 SQL 데이터베이스 및 서버를 모니터링합니다.
- Security Center에서 OS 취약성 모니터링 이 정책은 구성된 OS 취약성 기준을 충족하지 않는 서버를 모니터링합니다.
- Security Center에서 누락된 Endpoint Protection 모니터링 이 정책은 엔드포인트 보호 에이전트가 설치되지 않은 서버를 모니터링합니다.
이니셔티브를 정의하려면 어떻게 할까?
- Azure Portal 또는 CLI 도구를 사용하여 이니셔티브 정의
- Azure Portal에서는 기본 이니셔티브 목록 검색 가능
이니셔티브를 할당하려면 어떻게 할까?
- 정책 할당과 마찬가지로 이니셔티브 할당은 관리 그룹, 구독 또는 리소스 그룹의 특정 범위에 할당되는 이니셔티브 정의
만약 이미 리소스를 만든 상태에서 azure policy를 적용하게 되면 삭제되거나 하는게 아니라 정상적으로 동작하게 된다