{ "mode": "인덱싱됨", "정책 규칙": { "만약": { "모두": [ { "필드": "유형", "같음": "Microsoft.Resources/subscriptions/resourceGroups" }, { "필드": "태그['환경']", "존재하다": "거짓" } ] }, "그때": { "효과": "거부" } } } ````
* **설명**: 이 정책은 리소스가 리소스 그룹(`Microsoft.Resources/subscriptions/resourceGroups`)이고 `Environment` 태그가 존재하지 않는지(`exists: false`) 확인합니다. 두 조건이 모두 true인 경우 '거부' 효과로 인해 리소스 그룹이 생성되거나 업데이트되지 않습니다.
- 저장을 클릭합니다.
3. 사용자 지정 정책 할당
이제 방금 만든 정책을 특정 리소스 그룹에 할당해 보겠습니다.
- 정책 서비스 왼쪽 탐색 창의 '생성'에서 할당을 선택합니다.
-
+ 정책 할당을 클릭합니다. -
기본사항:
- 범위: 세 개의 점(
...)을 클릭하고 정책을 적용하려는 구독 및 리소스 그룹(예:my-resource-group)을 선택합니다. - 정책 정의: 세 개의 점(
...)을 클릭하고 생성한 정책(리소스 그룹에 환경 태그 필요)을 찾습니다. 선택하세요. - 과제 이름: 자동으로 채워지지만 변경할 수 있습니다(예:
Attribution-Tag-Environment-RG). - 설명: 설명을 입력합니다.
- 정책 시행: '활성화'를 유지하세요.
- 범위: 세 개의 점(
-
'다음'을 클릭하세요.
-
매개변수: 이 정책에 대한 매개변수가 없습니다. '다음'을 클릭하세요.
- 수정:
DeployIfNotExists또는Modify와 같은 효과가 있는 정책의 경우 여기에서 수정 작업을 구성합니다.Deny의 경우 해당되지 않습니다. '다음'을 클릭하세요. - 부적합 메시지: 선택적으로 사용자가 부적합 리소스를 생성하려고 할 때 표시되는 메시지를 사용자 정의합니다. '다음'을 클릭하세요.
- 검토 + 생성: 설정을 검토하고 만들기를 클릭합니다.
4. 필수 태그 지정 정책 테스트
- Azure Portal에서 할당 범위 내에서 새 리소스 그룹(
my-resource-group)을 만들어 보세요. - 리소스 그룹 세부 정보를 입력할 때
Environment태그를 추가하지 마세요. -
리소스 그룹을 만들어 보십시오.
- 예상 결과: 'Environment' 태그가 누락되어 '리소스 그룹에 대한 환경 태그 필요' 정책이 작업을 거부했음을 나타내는 오류 메시지와 함께 리소스 그룹 생성이 실패해야 합니다.
-
이제 새 리소스 그룹을 생성하고
Environment태그에 값을 추가해 보세요(예:Environment: Development).- 예상 결과: 리소스 그룹 생성이 성공해야 합니다.
5. 이니셔티브 생성(정책 세트)
스토리지 계정에 HTTPS를 요구하고 VM 디스크에 암호화를 요구하는 등 공통 보안 정책을 그룹화하는 이니셔티브를 만들어 보겠습니다.
- 정책 서비스 왼쪽 탐색 창의 '생성'에서 이니셔티브를 선택합니다.
-
+이니셔티브 정의를 클릭합니다. -
기본사항:
- 정의 위치: 구독 또는 관리 그룹을 선택합니다.
- 이름: '기본 보안 이니셔티브'.
- 설명:
기본 준수를 위한 필수 보안 정책 세트 - 카테고리: '기존 항목 사용'을 선택하고 '보안'을 선택하세요.
-
'다음'을 클릭하세요.
-
정책: '+ 정책 정의 추가'를 클릭합니다.
- '스토리지 계정은 HTTPS만 사용해야 합니다', '가상 머신 디스크는 암호화해야 합니다'와 같은 내부 정책을 찾아보세요.
- 해당 항목을 선택하고 '추가'를 클릭하세요.
-
이니셔티브 매개변수: 추가된 정책에 매개변수가 있는 경우 여기에서 구성할 수 있습니다. '다음'을 클릭하세요.
- 검토 + 생성: 설정을 검토하고 만들기를 클릭합니다.
6. 이니셔티브 할당
전체 구독에 보안 이니셔티브를 할당하여 구독 내의 모든 정책이 적용되도록 합니다.
- 정책 서비스 왼쪽 탐색 창의 '생성'에서 할당을 선택합니다.
-
+ 이니셔티브 할당을 클릭합니다. -
기본사항:
- 범위: 전체 구독을 선택합니다.
- 이니셔티브: '기본 보안 이니셔티브'를 검색하여 선택하세요.
- 과제 이름: Ser자동으로 채워집니다.
- 정책 시행: '활성화'를 유지하세요.
-
'다음'을 클릭하세요.
-
매개변수: 이니셔티브에 정의된 매개변수를 구성합니다. '다음'을 클릭하세요.
- 수정: '감사' 정책의 경우 수정 작업을 생성하여 비준수 리소스를 수정할 수 있습니다.
Deny의 경우 해당되지 않습니다. '다음'을 클릭하세요. - 비준수 메시지: 선택적으로 메시지를 사용자 정의합니다. '다음'을 클릭하세요.
- 검토 + 생성: 설정을 검토하고 만들기를 클릭합니다.
7. 규정 준수 검토
할당 후 Azure Policy는 기존 리소스를 평가하고 규정 준수를 보고하는 데 시간이 걸립니다.
- 정책 서비스 왼쪽 탐색 창의 '작성'에서 규정 준수를 선택합니다.
-
정책 및 이니셔티브 할당의 전반적인 규정 준수 상태를 보여주는 규정 준수 대시보드가 표시됩니다.
-
할당을 클릭하면 규정을 준수하는 리소스와 준수하지 않는 리소스를 포함한 세부 정보를 볼 수 있습니다. '적합성 상태'로 필터링하여 비준수 리소스만 볼 수 있습니다.
-
'DeployIfNotExists' 또는 'Modify' 정책을 준수하지 않는 리소스의 경우 수정 작업을 생성하여 이러한 리소스를 자동으로 수정할 수 있습니다.
- 과제 세부정보 페이지에서 '교정 작업 만들기'를 클릭하세요.
- 수정하려는 정책을 선택하고 '수정'을 클릭하세요.
보안 팁 및 모범 사례
- '감사'로 시작: 새로운 정책을 구현할 때 '감사' 효과부터 시작하여 영향을 이해하고 작업을 차단하지 않고 비준수 리소스를 식별합니다. 유효성을 검사한 후 'Deny' 또는 'Modify'/'DeployIfNotExists'로 변경합니다.
- 적절한 범위: 가능한 가장 높은 범위(관리 그룹 또는 구독)에서 정책을 할당하고 필요한 경우 더 낮은 범위에 대한 제외를 사용합니다. 이는 광범위하고 일관된 적용 범위를 보장합니다.
- 이니셔티브 사용: 관련 정책을 이니셔티브로 그룹화하여 관리를 단순화하고 전체 규칙 집합이 적용되도록 합니다.
- 명명 규칙: 보다 쉽게 식별하고 관리할 수 있도록 정책 정의, 이니셔티브 및 할당에 명확하고 일관된 명명 규칙을 사용합니다.
- 버전 제어: 사용자 정의 정책 정의를 버전 제어 시스템(예: Git)에 저장하여 변경 사항을 추적하고, 협업하고, 자동화된 배포를 촉진합니다.
- 지속적 모니터링: Azure Policy 규정 준수 대시보드를 정기적으로 모니터링합니다. 심각한 부적합에 대한 경고를 구성합니다.
- Azure DevOps/GitHub Actions와의 통합: CI/CD 파이프라인을 사용하여 정책 배포를 자동화하여 정책이 일관되고 추적 가능한 방식으로 적용되도록 합니다.
- 문서화: 정책, 목표, 효과 및 예외 사항에 대한 명확한 문서를 유지합니다.
일반적인 문제 해결
- 리소스가 부적절하게 차단됨:
- Azure Monitor의 활동 로그를 확인하여 작업을 거부한 정책을 확인하세요. 오류에는 일반적으로 정책 이름이 포함됩니다.
- 정책 정의 및 할당을 검토하여 조건과 범위가 올바른지 확인하세요.
- 차단이 의도적인 경우 특정 리소스 또는 리소스 그룹에 대한 제외 사용을 고려하세요.
- 부적합 리소스가 감지되지 않습니다:
- 정책이 올바른 범위에 할당되어 있고 시행이 '사용'으로 설정되어 있는지 확인하세요.
- 정책 정의가 올바른지, 부적합 리소스에 대한 조건이 'true'로 평가되는지 확인하세요.
- 정책 변경사항이 전파되고 규정 준수 보고서가 업데이트되는 데 최대 30분이 걸릴 수 있습니다.
- 수정 작업 실패:
- 수정 작업 로그를 확인하여 오류를 식별하세요.
- 정책 역할에 할당된 관리 ID에 리소스를 수정하는 데 필요한 권한이 있는지 확인하세요.
- 'DeployIfNotExists' 또는 'Modify' 정책의 배포 모델이나 수정 작업에 오류가 있을 수 있습니다.
- 정책은 기존 리소스에 적용되지 않습니다:
- '거부' 또는 '감사' 효과가 있는 정책은 기존 리소스와 새 리소스를 평가합니다. 'DeployIfNotExists' 및 'Modify'가 포함된 정책에는 색상 수정 작업이 필요합니다.기존 리소스를 수정하거나 새로운 생성/업데이트에 대해서만 조치를 취하세요.
- 정책 충돌: 동일한 리소스에 여러 정책이 적용되는 경우 일반적으로 가장 제한적인 효과가 있는 정책이 우선 적용됩니다(예: '감사'보다 '거부'). 할당 및 범위를 검토합니다.
결론
Azure Policy는 효과적인 거버넌스를 설정하고 Azure 클라우드에서 리소스의 규정 준수를 보장하려는 모든 조직을 위한 기본 도구입니다. 리소스 태그 지정부터 중요한 보안 구성까지 규칙 적용을 자동화함으로써 Azure Policy는 복잡하고 지속적으로 발전하는 환경에서 질서를 유지하고, 위험을 줄이고, 비용을 최적화하는 데 도움이 됩니다. 맞춤형 정책을 생성하고 이를 이니셔티브로 그룹화하는 기능은 특정 비즈니스 및 규제 요구 사항을 충족할 수 있는 유연성을 제공합니다. 이 실용적인 가이드를 통해 보안 전문가와 IT 관리자는 Azure Policy를 구성, 검증 및 관리하여 안전하고 규정을 준수하는 클라우드 거버넌스 전략을 위한 견고한 기반을 구축할 수 있는 준비를 갖추게 됩니다.
참고자료:
[1] 마이크로소프트 런. Azure Policy란 무엇입니까?. 사용 가능: https://learn.microsoft.com/pt-br/azure/governance/policy/overview [2] 마이크로소프트 런. 튜토리얼: 규정 준수를 시행하기 위한 정책을 생성하고 관리합니다. 사용 가능: https://learn.microsoft.com/pt-br/azure/governance/policy/tutorials/create-and-manage [3] 마이크로소프트 런. Azure RBAC의 Azure Policy 권한. 사용 가능: https://learn.microsoft.com/pt-br/azure/governance/policy/overview#azure-rbac-permissions-in-azure-policy [4] 마이크로소프트 런. Azure 정책 정의 프레임워크. 사용 가능: https://learn.microsoft.com/pt-br/azure/governance/policy/concepts/definition-structure [5] 마이크로소프트 런. Azure 정책 이니셔티브 정의 프레임워크. 사용 가능: https://learn.microsoft.com/pt-br/azure/governance/policy/concepts/initiative-definition-structure [6] 마이크로소프트 런. 튜토리얼: 사용자 정의 정책 정의를 생성합니다. 사용 가능: https://learn.microsoft.com/pt-br/azure/governance/policy/tutorials/create-custom-policy-definition [7] 마이크로소프트 런. Azure 정책을 준수하지 않는 리소스를 수정하는 방법. 사용 가능: https://learn.microsoft.com/pt-br/azure/governance/policy/how-to/remediate-resources