다음을 통해 공유


새 Azure Policy 정의의 영향 평가

Azure Policy는 비즈니스 표준과 규정 준수 요구 사항을 충족하기 위해 Azure 리소스를 관리하기 위한 강력한 도구입니다. 사용자, 프로세스 또는 파이프라인이 리소스를 만들거나 업데이트하면 Azure Policy가 요청을 검토합니다. 정책 정의 효과가 수정, 추가 또는 deployIfNotExists인 경우 정책은 요청을 변경하거나 추가합니다. 정책 정의 효과가 audit 또는 auditIfNotExists이면 정책으로 인해 새 리소스 및 업데이트된 리소스에 대한 활동 로그 항목이 만들어집니다. 정책 정의 효과가 deny 또는 denyAction이면 정책은 요청의 생성 또는 변경을 중지합니다.

정책이 올바르게 정의된 것이 확실하다면 정확히 원하는 결과가 나타납니다. 그러나 새 정책이 작업을 변경하거나 차단하도록 허용하기 전에 새 정책이 올바르게 작동하는지 검증해야 합니다. 유효성 검사는 의도된 리소스만 규정을 준수하지 않는 것으로 확인되고, 규정을 준수하는 리소스가 결과에 잘못 포함되지 않도록 해야 합니다(이를 가양성이라고 함).

새 정책 정의의 유효성을 검사할 때 권장되는 방법은 다음과 같습니다.

  • 정책을 꼼꼼하게 정의
  • 정책의 효율성을 테스트합니다.
  • 신규 또는 업데이트된 리소스 요청 감사
  • 리소스에 정책 배포
  • 연속 모니터링.

정책을 꼼꼼하게 정의

비즈니스 정책이 정책 정의로 구현되는 방법, Azure 리소스와 다른 Azure 서비스의 관계를 이해하는 것이 중요합니다. 이 단계에서는 요구 사항을 파악하고 리소스 속성을 결정합니다. 하지만 비즈니스 정책에 대한 좁은 정의에서 벗어나 넓은 시야를 가지는 것도 중요합니다. 예를 들어 정책은 모든 Virtual Machines가 반드시 해야 한다고 명시하나요? HDInsight 또는 AKS(Azure Kubernetes Service)와 같은 VM을 사용하는 다른 Azure 서비스는 어떻습니까? 정책을 정의할 때는 이 정책이 다른 서비스에서 사용하는 리소스에 미치는 영향을 고려해야 합니다.

이러한 이유로 정책 정의는 가능한 한 준수 여부를 평가하는 데 필요한 리소스와 속성에 중점을 두고, 꼼꼼하게 정의되어야 합니다.

정책의 효과 테스트

새 정책 정의를 사용하여 신규 또는 업데이트된 리소스를 관리하기 전에 테스트 리소스 그룹과 같은 기존 리소스의 제한된 하위 집합을 평가하는 방법을 확인하는 것이 가장 좋습니다. Azure Policy VS Code 확장을 사용하면 주문형 평가 스캔을 사용하여 기존 Azure 리소스에 대한 정의를 분리하여 테스트할 수 있습니다. 정책 할당에서 적용 모드 사용 안 함(doNotEnforce)을 사용하여 개발 환경에서 정의를 할당하여 트리거 또는 활동 로그 항목이 생성되지 않도록 할 수도 있습니다.

이 단계를 통해 작업 흐름에 영향을 주지 않고 기존 리소스의 새 정책 준수 결과를 평가할 수 있습니다. 준수 리소스가 미준수로 표시되어 있지 않은지(가양성), 미준수로 예상되는 모든 리소스가 올바르게 표시되는지 확인합니다. 예상되는 리소스의 초기 하위 집합에 대한 유효성 검사를 완료한 후에는 더 많은 기존 리소스와 더 많은 범위로 평가 대상을 점차적으로 확대합니다.

이러한 방식으로 기존 리소스를 평가하면 새로운 정책을 완전히 구현하기 전에 미준수 리소스를 수정할 수도 있습니다. 이 정리는 정책 정의 효과가 있는 경우 수동으로 또는 수정 작업을 통해 수행할 수 있습니다 deployIfNotExists modify.

A와 함께 deployIfNotExists 정책 정의는 ARM 템플릿배포할 때 발생하는 변경 내용의 유효성을 검사하고 테스트하려면 Azure Resource Manager 템플릿을 사용해야 합니다.

신규 또는 업데이트된 리소스 감사

새 정책 정의가 기존 리소스에 대해 올바르게 보고되고 있는지 유효성을 검사한 후에는 리소스를 만들거나 업데이트할 때 정책의 영향을 살펴볼 차례입니다. 정책 정의가 효과 매개 변수화를 지원하는 경우 audit 또는 auditIfNotExist를 사용합니다. 이 구성을 사용하면 리소스의 생성 및 업데이트를 모니터링하여 새 정책 정의가 기존 작업 또는 요청에 영향을 주지 않고 비준수 리소스에 대한 Azure 활동 로그의 항목을 트리거하는지 여부를 확인할 수 있습니다.

정책 정의와 일치하는 새 리소스를 업데이트하고 만들어 예상 시 또는 auditIfNotExists 효과가 올바르게 트리거되는지 확인하는 audit 것이 좋습니다. 또는 auditIfNotExists 효과를 트리거 audit 하는 새 정책 정의의 영향을 받지 않아야 하는 리소스 요청을 경계해야 합니다. 이러한 영향을 받는 리소스는 가양성의 또 다른 예이며 전체 구현 전에 정책 정의에서 수정해야 합니다.

이 테스트 단계에서 정책 정의가 변경되는 경우 기존 리소스의 감사로 유효성 검사 프로세스를 시작하는 것이 좋습니다. 신규 또는 업데이트된 리소스에 대한 가양성 정책 정의 변경은 기존 리소스에도 영향을 줄 수 있습니다.

리소스에 정책 배포

기존 리소스와 신규 또는 업데이트된 리소스 요청을 모두 사용하여 새 정책 정의의 유효성 검사를 완료한 후에는 정책을 구현하는 프로세스를 시작합니다. 새 정책 정의에 대한 정책 할당을 먼저 리소스 그룹과 같은 모든 리소스의 하위 집합에 만드는 것이 좋습니다. 정책 할당 내에서 resourceSelectors 속성을 사용하여 리소스 종류 또는 위치별로 추가로 필터링할 수 있습니다. 초기 배포의 유효성을 검사한 후 정책 범위를 리소스 그룹으로 더 광범위하게 확장합니다. 초기 배포의 유효성을 검사한 후 필터를 조정하여 더 많은 위치 또는 리소스 유형을 대상으로 지정하여 resourceSelector 정책의 효과를 확장합니다. 또는 할당을 제거하고 구독 및 관리 그룹과 같은 광범위한 범위에서 새 할당으로 대체합니다. 새 정책 정의에서 적용할 수 있는 전체 리소스에 할당될 때까지 점진적인 롤아웃을 계속 진행합니다.

롤아웃 중에 새 정책 정의에서 제외해야 하는 리소스가 있는 경우 다음 방법 중 하나로 처리합니다.

  • 의도하지 않은 효과를 줄이기 위해 정책 정의를 보다 명시적으로 업데이트합니다.
  • 할당을 제거하고 새로 만들어 정책 할당 범위를 변경합니다.
  • 정책 할당 제외 목록에 리소스 그룹을 추가합니다.

범위에 대한 모든 변경 내용(수준 또는 제외 대상)은 완전히 유효성을 검사하고 보안 및 규정 준수 조직에게 전달하여 범위에 차이가 생기지 않도록 해야 합니다.

정책 및 규정 준수 모니터링

정책 정의를 구현하고 할당하는 것은 최종 단계가 아닙니다. 새 정책 정의에 대한 준수 수준의 리소스를 지속적으로 모니터링하고 미준수 디바이스가 식별된 경우 적절한 Azure Monitor 경고 및 알림을 설정합니다. 정책 정의 및 관련 할당을 예약된 기준으로 평가하여 정책 정의가 비즈니스 정책 및 규정 준수 요구 사항을 충족하고 있는지 확인하는 것이 좋습니다. 더 이상 필요 없는 정책은 제거해야 합니다. 또한 기본 Azure 리소스가 진화하고 새 속성 및 기능을 추가함에 따라 정책을 수시로 업데이트해야 합니다.

다음 단계