정책을 사용하여 표준 적용

완료됨

여러분은 현재 리소스 그룹을 사용하여 리소스를 체계적으로 구성 중이며, 청구 보고서 및 모니터링 솔루션에 사용할 수 있도록 리소스에 태그를 적용했습니다. 리소스 그룹화 및 태그 지정이 기존 리소스에서 중요한 역할을 했지만, 새 리소스가 규칙을 따르게 하려면 어떻게 해야 할까요? 정책을 통해 Azure 환경에서 표준을 적용하는 방법을 살펴보겠습니다.

Azure Policy란?

Azure Policy는 정책을 만들고, 할당하고, 관리하는 데 사용하는 서비스입니다. 이러한 정책은 리소스에서 준수해야 하는 규칙을 적용합니다. 이러한 정책은 리소스가 만들어질 때 이러한 규칙을 적용할 수 있으며 기존 리소스와 비교 및 평가하여 규정 준수 여부를 확인할 수 있습니다.

특정 유형의 리소스만 만들 수 있도록 허용하거나 특정 Azure 지역의 리소스만 허용하는 방식으로 규칙을 적용할 수 있습니다. Azure 환경 전체에 명명 규칙을 적용할 수 있습니다. 특정 태그를 리소스에 적용할 수도 있습니다. 정책의 작동 원리를 살펴보겠습니다.

정책 만들기

모든 리소스에 부서 태그를 연결하고, 태그가 없으면 만들지 못하게 차단하려고 합니다. 새 정책 정의를 만들어 범위에 할당해야 합니다. 이 경우 범위는 msftlearn-core-infrastructure-rg 리소스 그룹입니다. Azure Portal, Azure PowerShell 또는 Azure CLI를 통해 정책을 만들고 할당할 수 있습니다. 이 연습에서는 포털에서 정책을 만드는 과정을 안내합니다.

정책 정의 만들기

  1. 웹 브라우저에서 Azure Portal로 이동 합니다. 위쪽 탐색 모음의 검색 상자에서 정책을 검색하고 정책 서비스를 선택합니다.

  2. 왼쪽 메뉴의 작성 섹션에서 정의 창을 선택합니다.

  3. 사용할 수 있는 기본 제공 정책 목록이 표시됩니다. 이 예에서는 사용자 지정 정책을 만들어 보겠습니다. 상단 메뉴에서 + 정책 정의를 선택합니다.

  4. 이 단추를 누르면 새 정책 정의 대화 상자가 나타납니다. 정의 위치를 설정하려면 파란색 범위 선택기 시작(...)을 선택합니다. 정책이 저장된 구독을 선택합니다. 이 구독은 리소스 그룹과 동일한 구독 이어야 합니다. 선택 단추를 누릅니다.

  5. 새 정책 정의 대화 상자로 돌아가서 이름 필드에 리소스에 태그 적용을 입력합니다.

  6. 설명이 정책은 리소스에 태그 적용을 입력합니다.

  7. 범주에서 기존 항목 사용을 선택한 다음, 일반 범주를 선택합니다.

  8. 정책 규칙에서 상자의 모든 텍스트를 삭제하고 다음 JSON을 붙여넣습니다.

    {
      "mode": "Indexed",
      "policyRule": {
        "if": {
          "field": "[concat('tags[', parameters('tagName'), ']')]",
          "exists": "false"
        },
        "then": {
          "effect": "deny"
        }
      },
      "parameters": {
        "tagName": {
          "type": "String",
          "metadata": {
            "displayName": "Tag Name",
            "description": "Name of the tag, such as 'environment'"
          }
        }
      }
    }
    

    다음 예와 비슷한 정책 정의가 표시될 것입니다. 저장을 선택하여 정책 정의를 저장합니다.

    Screenshot of Azure portal showing the new policy definition dialog.

정책 할당 만들기

정책을 만들었지만, 아직 적용하지는 않았습니다. 정책을 적용하려면 할당을 만들어야 합니다. 이 예의 범위인 msftlearn-core-infrastructure-rg 리소스 그룹에 정책을 할당하면 리소스 그룹 내의 모든 리소스에 적용됩니다.

  1. 정책 창 왼쪽의 작성 섹션에서 할당을 선택합니다.

  2. 상단에서 정책 할당을 선택합니다.

  3. 정책 할당 창에서 리소스 그룹에 정책을 할당하겠습니다. 범위에서 파란색 시작 범위 선택기(...)를 선택합니다. 구독 및 msftlearn-core-infrastructure-rg 리소스 그룹을 선택한 다음 선택 단추를 선택합니다.

  4. 정책 정의에서 파란색 정책 정의 시작 선택기(...)를 선택합니다. 형식 드롭다운에서 사용자 지정을 선택하고, 앞에서 만든 리소스에 태그 적용 정책을 선택한 다음 추가 단추를 선택합니다.

  5. 화면 상단에서 매개 변수 탭을 선택합니다.

  6. 매개 변수 창에서 태그 이름부서를 입력합니다.

  7. 할당을 만들려면 검토 + 만들기를 선택하고 만들기를 선택합니다.

정책 테스트

리소스 그룹에 정책을 할당했으니, 부서 태그가 없는 리소스 만들기 시도는 모두 실패합니다.

Important

정책 할당이 적용되는 데 최대 30분이 걸릴 수 있습니다. 이러한 지연으로 인해 다음 단계에서 정책 유효성 검사는 성공할 수 있지만 배포는 계속 실패합니다. 이런 경우 시간을 늘리고 다시 배포해 보세요.

  1. Azure Portal 메뉴 또는 페이지에서 리소스 만들기를 선택합니다.

  2. 스토리지 계정을 검색하고 스토리지 계정을 선택합니다. 결과에서 만들기를 선택합니다.

  3. 구독과 msftlearn-core-infrastructure-rg 리소스 그룹을 차례로 선택합니다.

  4. 스토리지 계정 이름으로 원하는 이름을 입력합니다. 단, 전역적으로 고유한 이름이어야 합니다.

  5. 나머지 옵션은 기본값으로 두고 검토를 선택합니다.

    리소스에 적용된 부서 태그가 없기 때문에 리소스 만들기의 유효성 검사가 실패합니다. 정책에서 유효성 검사 실패가 발생하지 않은 경우 몇 분 정도 기다렸다가 사용하도록 설정할 수 있습니다.

    Screenshot of Azure portal showing a policy validation failure on a new storage account without a tag.

    스토리지 계정을 성공적으로 배포할 수 있도록 정책 위반을 수정합니다.

  6. 스토리지 계정 만들기 창의 상단에서 태그를 선택합니다.

  7. Department:Finance 태그를 목록에 추가합니다.

    Screenshot of Azure portal showing a new Department tag to add during creation.

  8. 이제 검토를 클릭합니다. 이번에는 유효성 검사를 통과할 것이며, 만들기를 선택하면 스토리지 계정이 만들어집니다.

정책을 사용하여 표준 적용

리소스를 구성하는 태그가 리소스에 지정되도록 정책을 사용하는 방법을 알아보았습니다. 정책을 활용하는 다른 방법도 있습니다.

정책을 사용하여 리소스를 배포할 수 있는 Azure 지역을 제한할 수 있습니다. 엄격한 규제를 받는 조직 또는 데이터가 상주할 수 있는 위치에 대한 법률 또는 규정 제한이 적용되는 조직의 경우 이러한 요구 사항에 위배되는 지리적 영역에는 리소스를 프로비전하지 못하게 방지하는 정책을 사용할 수 있습니다.

정책을 사용하여 배포 가능한 가상 머신의 유형과 크기를 제한할 수 있습니다. 프로덕션 구독에서 대형 VM을 허용하는 한편, 개발 구독의 비용을 최소화할 수도 있습니다. 개발 구독에서 정책을 통해 대형 VM을 거부하면 이러한 환경에 배포되는 것을 막을 수 있습니다.

정책을 사용하여 명명 규칙을 적용할 수도 있습니다. 조직이 특정 명명 규칙을 표준화한 경우 해당 규칙을 적용하는 정책을 사용하면 Azure 리소스에서 일관적인 명명 표준을 유지하는 데 도움이 됩니다.