이 audit 효과는 비준수 리소스를 평가할 때 활동 로그에 경고 이벤트를 만드는 데 사용되지만 요청을 중지하지는 않습니다.
감사 평가
감사는 리소스를 만들거나 업데이트하는 동안 Azure Policy에서 마지막으로 확인한 효과입니다. Resource Manager 모드의 경우 Azure Policy는 리소스 공급자에게 리소스를 보냅니다. 리소스에 대한 만들기 또는 업데이트 요청을 평가할 때 Azure Policy는 작업 로그에 작업을 추가하고 Microsoft.Authorization/policies/audit/action 리소스를 비준수로 표시합니다. 표준 준수 평가 주기 동안 리소스의 준수 상태만 업데이트됩니다.
감사 속성
Resource Manager 모드의 경우 감사 효과에는 정책 정의 조건에서 사용할 다른 속성이 then 없습니다.
리소스 공급자 모드의 Microsoft.Kubernetes.Data경우 감사 효과에는 다음과 같은 하위 속성이 있습니다 details.
templateInfo이 사용 중지되므로 새 정책 또는 업데이트된 정책 정의에는 constraintTemplate를 사용해야 합니다.
templateInfo(필수)-
constraintTemplate사용할 수 없습니다. -
sourceType(필수)제약 조건 템플릿의 원본 유형을 정의합니다. 허용되는 값:
PublicURL또는Base64Encoded.PublicURL인 경우 속성url과 쌍을 이루어 제약 조건 템플릿의 위치를 제공합니다. 위치는 공개적으로 액세스할 수 있어야 합니다.경고
SAS URI, URL 토큰 또는 일반 텍스트로 비밀을 노출할 수 있는 다른 것은 사용하지 마세요.
Base64Encoded인 경우content속성과 쌍을 이루어 기본 64로 인코딩된 제약 조건 템플릿을 제공합니다. 기존 OPA(Open Policy Agent) Gatekeeper v3 제약 조건 템플릿에서 사용자 지정 정의를 만들려면 제약 조건 템플릿에서 정책 정의 만들기를 참조하세요.
-
constraint(더 이상 사용되지 않음)-
templateInfo사용할 수 없습니다. - 제약 조건 템플릿의 CRD 구현입니다.
values를 통해 전달된 매개 변수를{{ .Values.<valuename> }}으로 사용합니다. 아래 예제 2에서 이들 값은{{ .Values.excludedNamespaces }}및{{ .Values.allowedContainerImagesRegex }}입니다.
-
constraintTemplate(더 이상 사용되지 않음)-
templateInfo사용할 수 없습니다. - 정책 정의를 만들거나 업데이트할 때
templateInfo로 바꿔야 합니다. - 새로운 제약 조건을 정의하는 제약 조건 템플릿 CRD(CustomResourceDefinition)입니다. 이 템플릿은 Azure Policy의
values를 통해 전달되는 Rego 논리, 제약 조건 스키마 및 제약 조건 매개 변수를 정의합니다. 자세한 내용은 Gatekeeper 제약 조건을 참조하세요.
-
constraintInfo(선택 사항)- , ,,
constraintconstraintTemplateapiGroupskindsscopenamespaces또는excludedNamespaces.와 함께labelSelector사용할 수 없습니다. -
constraintInfo가 제공되지 않으면templateInfo및 정책에서 제약 조건을 생성할 수 있습니다. -
sourceType(필수)제약 조건의 원본 유형을 정의합니다. 허용되는 값:
PublicURL또는Base64Encoded.PublicURL인 경우 제약 조건 위치를 제공하기 위해url속성과 쌍을 이룹니다. 위치는 공개적으로 액세스할 수 있어야 합니다.경고
url등에서 비밀을 노출할 수 있는 SAS URI 또는 토큰을 사용하지 마세요.
- , ,,
namespaces(선택 사항)- 정책 평가를 제한할 Kubernetes 네임스페이스의 배열입니다.
- 값이 비어 있거나 누락되면 정책 평가에 excludedNamespaces에 정의되지 않은 모든 네임스페이스가 포함됩니다.
excludedNamespaces(선택 사항)- 정책 평가에서 제외할 Kubernetes 네임스페이스의 배열입니다.
labelSelector(선택 사항)- 제공된 레이블 및 선택기와 일치하는 정책 평가에 포함할 Kubernetes 리소스를 지정할 수 있도록 matchLabels(개체) 및 matchExpression(배열) 속성을 포함하는 개체입니다.
- 값이 비어 있거나 누락되면 정책 평가에 excludedNamespaces에 정의된 네임스페이스를 제외한 모든 레이블 및 선택기가 포함됩니다.
scope(선택 사항)- 클러스터 범위 또는 이름 범위 리소스가 일치하는지 여부를 지정할 수 있도록 범위 속성을 포함하는 문자열입니다.
apiGroups( templateInfo를 사용할 때 필요)- 일치시킬 API 그룹을 포함하는 배열입니다. 빈 배열(
[""])은 핵심 API 그룹입니다. -
["*"]에 대한 정의는 허용되지 않습니다.
- 일치시킬 API 그룹을 포함하는 배열입니다. 빈 배열(
kinds( templateInfo를 사용할 때 필요)- 평가를 제한할 Kubernetes 개체의 종류를 포함하는 배열입니다.
-
["*"]에 대한 정의는 허용되지 않습니다.
values(선택 사항)- 제약 조건에 전달할 매개 변수 및 값을 정의합니다. 각 값은 제약 조건 템플릿 CRD의 유효성
openAPIV3Schema검사 섹션에 있는 속성과 일치해야 합니다.
- 제약 조건에 전달할 매개 변수 및 값을 정의합니다. 각 값은 제약 조건 템플릿 CRD의 유효성
감사 예
예제 1: Resource Manager 모드에 대한 감사 효과 사용
"then": {
"effect": "audit"
}
예제 2: 리소스 공급자 모드 Microsoft.Kubernetes.Data에 대한 감사 효과 사용
details.templateInfo의 추가 정보는 PublicURL의 사용을 선언하고 url을 Kubernetes에서 사용할 제약 조건 템플릿의 위치로 설정하여 허용되는 컨테이너 이미지를 제한합니다.
"then": {
"effect": "audit",
"details": {
"templateInfo": {
"sourceType": "PublicURL",
"url": "https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml",
},
"values": {
"imageRegex": "[parameters('allowedContainerImagesRegex')]"
},
"apiGroups": [
""
],
"kinds": [
"Pod"
]
}
}
다음 단계
- Azure Policy 샘플에서 예제를 검토합니다.
- Azure Policy 정의 구조를 검토합니다.
- 프로그래밍 방식으로 정책을 만드는 방법을 이해합니다.
- 규정 준수 데이터를 가져오는 방법을 알아봅니다.
- 비준수 리소스를 수정하는 방법을 알아봅니다.
- Azure 관리 그룹을 검토합니다.