다음을 통해 공유


규정 비준수의 원인 확인

Azure 리소스가 정책 규칙을 준수하지 않는 것으로 확인되면 리소스가 호환되지 않는 규칙의 부분을 이해하는 것이 도움이 됩니다. 또한 이전 준수 리소스를 규정 비준수로 만든 변경 내용을 이해하는 것도 유용합니다. 이 정보를 찾는 방법에는 두 가지가 있습니다.

준수 세부 정보

리소스가 규정 비준수인 경우 해당 리소스에 대한 준수 세부 정보는 정책 준수 페이지에서 사용할 수 있습니다. 준수 세부 정보 창에는 다음 정보가 포함됩니다.

  • 이름, 유형, 위치 및 리소스 ID와 같은 리소스 세부 정보.
  • 현재 정책 할당에 대한 마지막 평가의 준수 상태 및 타임스탬프.
  • 리소스 규정 비준수에 대한 이유 목록.

Important

규정 비준수 리소스에 대한 준수 세부 정보에는 해당 리소스에 대한 현재 속성 값이 표시되므로 사용자에게 리소스 형식에 대한 읽기 작업이 있어야 합니다. 예를 들어, 비준수 리소스가 Microsoft.Compute/virtualMachines인 경우 사용자에게 Microsoft.Compute/virtualMachines/read 작업이 있어야 합니다. 사용자에게 필요한 작업이 없는 경우 액세스 오류가 표시됩니다.

준수 세부 정보를 보려면 다음 단계를 수행합니다.

  1. 모든 서비스를 선택한 후 정책을 검색하고 선택하여 Azure Portal에서 Azure Policy 서비스를 시작합니다.

  2. 개요 또는 준수 페이지에서 규정 비준수준수 상태에서 정책을 선택합니다.

  3. 정책 준수 페이지의 리소스 준수 탭에서 비준수준수 상태에서 리소스의 줄임표를 길게 선택(또는 마우스 오른쪽 단추로 클릭)하거나 선택합니다. 그런 다음, 준수 세부 정보 보기를 선택합니다.

    리소스 준수 탭의 준수 세부 정보 보기 링크 스크린샷

  4. 준수 세부 정보 창에는 현재 정책 할당에 대한 리소스의 최신 평가 정보가 표시됩니다. 이 예에서 Microsoft.Sql/servers/version 필드는 12.0인 것으로 확인되었지만 정책 정의에서는 14.0을 예상했습니다. 여러 가지 이유로 리소스가 규정 비준수인 경우 각각이 이 창에 나열됩니다.

    현재 값이 12이고 목표 값이 14인 비준수 사유 및 준수 세부 정보 창의 스크린샷

    auditIfNotExists 또는 deployIfNotExists 정책 정의의 경우 세부 정보에는 details.type 속성과 선택적 속성이 포함됩니다. 목록은 auditIfNotExists 속성deployIfNotExists 속성을 참조하세요. 마지막으로 평가된 리소스는 정의의 세부 정보 섹션에서 관련된 리소스입니다.

    부분 deployIfNotExists 정의 예:

    {
      "if": {
        "field": "type",
        "equals": "[parameters('resourceType')]"
      },
      "then": {
        "effect": "deployIfNotExists",
        "details": {
          "type": "Microsoft.Insights/metricAlerts",
          "existenceCondition": {
            "field": "name",
            "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]"
          },
          "existenceScope": "subscription",
          "deployment": {
            ...
          }
        }
      }
    }
    

    평가된 리소스 수를 포함하는 ifNotExists에 대한 규정 준수 세부 정보 창 스크린샷

참고 항목

데이터를 보호하기 위해 속성 값이 비밀이면 현재 값이 별표를 표시합니다.

이러한 세부 정보는 리소스가 현재 규정 비준수인 이유를 설명하지만 규정 비준수가 되도록 만든 리소스가 변경된 경우를 표시하지 않습니다. 자세한 내용은 변경 내용(미리 보기)을 참조하세요.

준수 이유

Resource Manager 모드리소스 공급자 모드에는 비규격 이유가 각각 다릅니다.

일반 Resource Manager 모드 규정 준수 이유

다음 표에서는 각 Resource Manager 모드 이유를 정책 정의의 책임 있는 조건에 매핑합니다.

원인 조건
현재 값은 대상 값을 키로 포함해야 합니다. containsKey 또는 notContainsKey 아님
현재 값은 대상 값을 포함해야 합니다. contains 또는 notContains 아님
현재 값은 대상 값과 같아야 합니다. equals 또는 notEquals 아님
현재 값은 대상 값보다 작아야 합니다. less 또는 greaterOrEquals 아님
현재 값은 대상 값보다 크거나 같아야 합니다. greaterOrEquals 또는 less 아님
현재 값은 대상 값보다 커야 합니다. greater 또는 lessOrEquals 아님
현재 값은 대상 값보다 작거나 같아야 합니다. lessOrEquals 또는 greater 아님
현재 값이 있어야 합니다.
현재 값이 대상 값에 포함되어야 합니다. in 또는 notIn 아님
현재 값은 대상 값과 같아야 합니다. like 또는 notLike 아님
현재 값은 대/소문자를 구분하며 대상 값과 일치해야 합니다. match 또는 notMatch 아님
현재 값은 대/소문자를 구분하지 않으며 대상 값과 일치해야 합니다. matchInsensitively 또는 notMatchInsensitively 아님
현재 값은 대상 값을 키로 포함할 수 없습니다. notContainsKey 또는 containsKey 아님
현재 값은 대상 값을 포함할 수 없습니다. notContains 또는 contains 아님
현재 값은 대상 값과 같을 수 없습니다. notEquals 또는 equals 아님
현재 값이 없어야 합니다. exists 아님
현재 값이 대상 값에 포함될 수 없습니다. notIn 또는 in 아님
현재 값은 대상 값과 같을 수 없습니다. notLike 또는 like 아님
현재 값은 대/소문자를 구분하며 대상 값과 일치할 수 없습니다. notMatch 또는 match 아님
현재 값은 대/소문자를 구분하지 않으며 대상 값과 일치할 수 없습니다. notMatchInsensitively 또는 matchInsensitively 아님
정책 정의의 효과 세부 정보와 일치하는 관련 리소스가 없습니다. then.details.type에 정의되고 정책 규칙의 if 부분에 정의된 리소스와 관련된 형식의 리소스가 존재하지 않습니다.

Azure Policy 리소스 공급자 모드 규정 준수 이유

다음 표에서는 각 Microsoft.PolicyInsights리소스 공급자 모드 이유 코드를 해당 설명에 매핑합니다.

규정 준수 이유 코드 오류 메시지 및 설명
NonModifiablePolicyAlias NonModifiableAliasConflict: API 버전 '{apiVersion}'을 사용하는 요청에서는 '{alias}' 별칭을 수정할 수 없습니다. 이 오류는 별칭이 '수정' 효과를 지원하지 않거나 다른 토큰 형식의 '수정' 효과만 지원하는 API 버전을 사용하는 요청에서 발생합니다.
AppendPoliciesNotApplicable AppendPoliciesUnableToAppend: 별칭: '{ aliases }'는 API 버전: '{ apiVersion }'을 사용하는 요청에서 수정할 수 없습니다. 별칭이 '수정' 효과를 지원하지 않는 API 버전을 사용하는 요청에서 발생하거나 다른 토큰 형식의 '수정' 효과를 지원할 수 있습니다.
ConflictingAppendPolicies ConflictingAppendPolicies: '{notApplicableFields}' 필드를 수정하는 충돌하는 정책 할당을 찾았습니다. 정책 식별자: '{policy}'. 정책 할당을 업데이트하려면 구독 관리자에게 문의합니다.
AppendPoliciesFieldsExist AppendPoliciesFieldsExistWithDifferentValues: 정책 할당은 요청에 이미 있는 필드를 다른 값으로 추가하려고 했습니다. 필드: '{existingFields}'. 정책 식별자: '{policy}'. 정책을 업데이트하려면 구독 관리자에게 문의하세요.
AppendPoliciesUndefinedFields AppendPoliciesUndefinedFields: API 버전 '{apiVersion}'에 대해 정의되지 않은 필드 속성을 참조하는 정책 정의를 찾았습니다. 필드: '{nonExistingFields}'. 정책 식별자: '{policy}'. 정책을 업데이트하려면 구독 관리자에게 문의하세요.
MissingRegistrationForType MissingRegistrationForResourceType: 구독이 리소스 종류 '{ResourceType}'에 등록되지 않았습니다. 리소스 종류가 있고 리소스 종류가 등록되어 있는지 확인합니다.
AmbiguousPolicyEvaluationPaths 요청 콘텐츠에 '{1}' 정책에 필요한 하나 이상의 모호한 '{0}' 경로가 있습니다.
InvalidResourceNameWildcardPosition 정책 정의 '{1}'와 연결된 정책 할당 '{0}'를 평가할 수 없습니다. ifNotExists 조건 내의 리소스 이름 '{2}'에는 와일드카드 '?' 문자가 잘못된 위치에 포함되어 있습니다. 와일드카드는 세그먼트의 이름 끝에만 단독으로 배치할 수 있습니다(예: TopLevelResourceName/?). 정책을 수정하거나 차단을 해제할 정책 할당을 제거합니다.
TooManyResourceNameSegments 정책 정의 '{1}'와 연결된 정책 할당 '{0}'를 평가할 수 없습니다. ifNotExists 조건 내의 리소스 이름 '{2}'에 너무 많은 이름 세그먼트가 포함되어 있습니다. 이름 세그먼트 수는 형식 세그먼트 수(리소스 공급자 네임스페이스 제외)와 같거나 작아야 합니다. 정책 정의를 수정하거나 차단을 해제할 정책 할당을 제거합니다.
InvalidPolicyFieldPath 정책 정의 내의 필드 경로 '{0}'가 잘못되었습니다. 필드 경로에는 빈 세그먼트가 없어야 합니다. 분할 세그먼트에 대한 '.' 문자와 배열 속성에 액세스하기 위한 '[*]' 문자 시퀀스를 제외한 영숫자 문자만 포함될 수 있습니다.

AKS 리소스 공급자 모드 규정 준수 이유

다음 표에서는 각 Microsoft.Kubernetes.Data리소스 공급자 모드 이유를 정책 정의에 있는 제약 조건 템플릿의 책임 상태에 매핑합니다.

원인 제약 조건 템플릿 이유 설명
Constraint/TemplateCreateFailed 리소스 메타데이터 이름으로 클러스터의 기존 제약 조건/템플릿과 일치하지 않는 제약 조건/템플릿을 사용하여 정책 정의에 대한 리소스를 만들지 못했습니다.
Constraint/TemplateUpdateFailed 제약 조건/템플릿이 리소스 메타데이터 이름으로 클러스터의 기존 제약 조건/템플릿과 일치하는 제약 조건/템플릿을 사용하여 정책 정의를 업데이트하지 못했습니다.
Constraint/TemplateInstallFailed 제약 조건/템플릿을 빌드하지 못했으며 만들기 또는 업데이트 작업을 위해 클러스터에 설치할 수 없습니다.
ConstraintTemplateConflicts 템플릿은 원본이 다른 동일한 템플릿 이름을 사용하는 하나 이상의 정책 정의와 충돌합니다.
ConstraintStatusStale 기존 '감사' 상태가 있지만 Gatekeeper가 지난 한 시간 동안 감사를 수행하지 않았습니다.
ConstraintNotProcessed 상태가 없으며 Gatekeeper가 지난 한 시간 동안 감사를 수행하지 않았습니다.
InvalidConstraint/Template 잘못된 제약 조건 템플릿 Rego 콘텐츠, 잘못된 YAML 또는 제약 조건과 제약 조건 템플릿 간의 매개 변수 형식 불일치(정수가 필요한 경우 문자열 값 제공) 이유 중 하나로 인해 리소스가 거부되었습니다.

참고 항목

클러스터에 이미 있는 기존 정책 할당 및 제약 조건 템플릿의 경우 해당 제약 조건/템플릿이 실패하면 기존 제약 조건/템플릿을 유지 관리하여 클러스터를 보호합니다. 클러스터는 정책 할당 또는 추가 기능 자체 복구에서 오류가 해결될 때까지 비규격으로 보고합니다. 충돌 처리에 대한 자세한 내용은 제약 조건 템플릿 충돌을 참조하세요.

리소스 공급자 모드에 대한 규정 준수 세부 정보

리소스 공급자 모드를 사용한 할당의 경우 비준수 리소스를 선택하여 해당 구성 요소 준수 기록을 확인합니다. 구성 요소 규정 준수 탭에는 구성 요소 이름, 구성 요소 ID형식과 같은 리소스 공급자 모드와 관련된 추가 정보가 표시됩니다.

구성 요소 규정 준수 대시보드 및 리소스 공급자 모드 할당에 대한 규정 준수 세부 정보의 스크린샷

게스트 구성에 대한 규정 준수 세부 정보

게스트 구성 범주에 있는 정책 정의의 경우 가상 머신 내에서 여러 설정이 평가될 수 있으며 설정별 세부 정보를 확인해야 합니다. 예를 들어 보안 설정 목록을 감사하고 있고 그중 하나만 규정 비준수 상태가 있는 경우 준수하지 않는 특정 설정 및 이유를 알아야 합니다.

또한 가상 머신에 직접 로그인할 수 있는 액세스 권한이 없을 수도 있지만 가상 머신이 규정 비준수인 이유를 보고해야 합니다.

Azure Portal

먼저 규정 준수 세부 정보 섹션의 동일한 단계에 따라 정책 준수 세부 정보를 확인합니다.

규정 준수 세부 정보 창 보기에서 마지막으로 평가된 리소스 링크를 선택합니다.

auditIfNotExists 정의 규정 준수 세부 정보를 보여주는 스크린샷

게스트 할당 페이지에는 사용 가능한 모든 준수 세부 정보가 표시됩니다. 뷰의 각 행은 머신 내에서 수행된 평가를 나타냅니다. Reason 열에서 게스트 할당이 규정 비준수인 이유를 설명하는 구가 표시됩니다. 예를 들어 암호 정책을 감사하는 경우 Reason 열에 각 설정에 대한 현재 값을 포함한 텍스트가 표시됩니다.

게스트 할당 규정 준수 세부 정보 스크린샷

대규모 구성 할당 세부 정보 보기

게스트 구성 기능은 Azure Policy 할당 외부에서 사용할 수 있습니다. 예를 들어 Azure Automanage는 게스트 구성 할당을 만들거나 컴퓨터를 배포할 때 구성을 할당할 수 있습니다.

테넌트 전체에서 모든 게스트 구성 할당을 보려면 Azure Portal에서 게스트 할당 페이지를 엽니다. 자세한 규정 준수 정보를 보려면 이름 열의 링크를 사용하여 각 할당을 선택합니다.

게스트 할당 페이지의 스크린샷

변경 기록(미리 보기)

공개 미리 보기의 일부로, 전체 모드 삭제를 지원하는 모든 Azure 리소스에 대해 지난 14일 간의 변경 기록을 사용할 수 있습니다. 변경 기록은 변경이 검색된 시간 및 각 변경의 시각적 차이에 대한 세부 정보를 제공합니다. 변경 검색은 Azure Resource Manager 속성이 추가, 제거 또는 변경될 때 트리거됩니다.

  1. 모든 서비스를 선택한 후 정책을 검색하고 선택하여 Azure Portal에서 Azure Policy 서비스를 시작합니다.

  2. 개요 또는 준수 페이지에서 준수 상태에 있는 정책을 선택합니다.

  3. 정책 준수 페이지의 리소스 준수 탭에서 리소스를 선택합니다.

  4. 리소스 준수 페이지에서 변경 기록(미리 보기) 탭을 선택합니다. 검색된 변경 목록이 표시됩니다(있는 경우).

    변경 기록 탭 및 리소스 규정 준수 창에서 검색된 변경 시간 스크린샷

  5. 검색된 변경 중 하나를 선택합니다. 리소스의 시각적 차이변경 기록 페이지에 표시됩니다.

    변경 기록 페이지에서 속성의 이전 및 이후 상태에 대한 변경 기록 시각적 차이 스크린샷

    시각적 차이는 리소스 변경 내용을 식별하는 데 도움이 됩니다. 검색된 변경 내용은 리소스의 현재 규정 준수 상태와 관련이 없을 수 있습니다.

변경 기록 데이터는 Azure Resource Graph에 의해 제공됩니다. Azure Portal 외부에서 이 정보를 쿼리하려면 리소스 변경 내용 가져오기를 참조하세요.

다음 단계