Event Grid 원본으로서의 Azure Policy
이 문서에서는 Azure Policy 이벤트의 속성과 스키마를 제공합니다. 이벤트 스키마에 대한 소개는 Azure Event Grid 이벤트 스키마를 참조하세요. 또한 이벤트 원본으로 Azure Policy를 사용하기 위한 빠른 시작 및 자습서의 목록을 제공합니다.
사용할 수 있는 이벤트 유형
Azure Policy는 다음과 같은 이벤트 형식을 내보냅니다.
이벤트 유형 | 설명 |
---|---|
Microsoft.PolicyInsights.PolicyStateCreated | 정책 준수 상태를 만들 때 발생합니다. |
Microsoft.PolicyInsights.PolicyStateChanged | 정책 준수 상태를 변경할 때 발생합니다. |
Microsoft.PolicyInsights.PolicyStateDeleted | 정책 준수 상태를 삭제할 때 발생합니다. |
이벤트 속성
이벤트에는 다음과 같은 최상위 데이터가 있습니다.
속성 | Type | Description |
---|---|---|
topic |
string | 이벤트 원본에 대한 전체 리소스 경로입니다. 이 필드는 쓸 수 없습니다. Event Grid는 이 값을 제공합니다. |
subject |
string | 리소스 이름과 리소스 형식을 포함하여 준수 상태 변경이 적용되는 리소스의 정규화된 ID입니다. /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName> 형식 사용 |
eventType |
string | 이 이벤트 원본에 대해 등록된 이벤트 유형 중 하나입니다. |
eventTime |
string | 공급자의 UTC 시간을 기준으로 이벤트가 생성되는 시간입니다. |
id |
string | 이벤트에 대한 고유 식별자입니다. |
data |
개체 | Azure Policy 이벤트 데이터. |
dataVersion |
string | 데이터 개체의 스키마 버전입니다. 게시자가 스키마 버전을 정의합니다. |
metadataVersion |
string | 이벤트 메타데이터의 스키마 버전입니다. Event Grid는 최상위 속성의 스키마를 정의합니다. Event Grid는 이 값을 제공합니다. |
데이터 개체의 속성은 다음과 같습니다.
속성 | Type | Description |
---|---|---|
timestamp |
string | Azure Policy에서 리소스를 스캔한 시간(UTC)입니다. 이벤트 순서 지정을 위해 최상위 수준 eventTime 이나 time 속성이 아니라 이 속성을 사용합니다. |
policyAssignmentId |
string | 정책 할당의 리소스 ID입니다. |
policyDefinitionId |
string | 정책 정의의 리소스 ID입니다. |
policyDefinitionReferenceId |
string | 이니셔티브의 정책 할당이면 이니셔티브 정의에 있는 정책 정의의 참조 ID입니다. 비어 있을 수 있습니다. |
complianceState |
string | 정책 할당과 관련된 리소스의 준수 상태입니다. |
subscriptionId |
string | 리소스의 구독 ID입니다. |
complianceReasonCode |
string | 준수 이유 코드입니다. 비어 있을 수 있습니다. |
예제 이벤트
다음 예는 구독 수준에서 범위가 지정된 정책 상태 만들기 이벤트의 스키마를 보여 줍니다.
[{
"id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
"topic": "/subscriptions/<SubscriptionID>",
"subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
"data": {
"timestamp": "2021-03-27T18:37:42.4496956Z",
"policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
"policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
"policyDefinitionReferenceId": "",
"complianceState": "NonCompliant",
"subscriptionId": "<subscription-id>",
"complianceReasonCode": ""
},
"eventType": "Microsoft.PolicyInsights.PolicyStateCreated",
"eventTime": "2021-03-27T18:37:42.5241536Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
구독 수준에서 범위가 지정된 정책 상태 변경 이벤트에 대한 스키마는 다음과 유사합니다.
[{
"id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
"topic": "/subscriptions/<SubscriptionID>",
"subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
"data": {
"timestamp": "2021-03-27T18:37:42.4496956Z",
"policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
"policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
"policyDefinitionReferenceId": "",
"complianceState": "NonCompliant",
"subscriptionId": "<subscription-id>",
"complianceReasonCode": ""
},
"eventType": "Microsoft.PolicyInsights.PolicyStateChanged",
"eventTime": "2021-03-27T18:37:42.5241536Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
다음 예는 관리 그룹 수준에서 범위가 지정된 정책 상태 만들기 이벤트의 스키마를 보여 줍니다.
[{
"id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
"topic": "/tenants/<tenantId>/providers/Microsoft.Management/managementGroups/<managementGroupId>",
"subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
"data": {
"timestamp": "2021-03-27T18:37:42.4496956Z",
"policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
"policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
"policyDefinitionReferenceId": "",
"complianceState": "NonCompliant",
"subscriptionId": "<subscription-id>",
"complianceReasonCode": ""
},
"eventType": "Microsoft.PolicyInsights.PolicyStateCreated",
"eventTime": "2021-03-27T18:37:42.5241536Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
관리 그룹 수준에서 범위가 지정된 정책 상태 변경 이벤트에 대한 스키마는 다음과 유사합니다.
[{
"id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
"topic": "/tenants/<tenantId>/providers/Microsoft.Management/managementGroups/<managementGroupId>",
"subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
"data": {
"timestamp": "2021-03-27T18:37:42.4496956Z",
"policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
"policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
"policyDefinitionReferenceId": "",
"complianceState": "NonCompliant",
"subscriptionId": "<subscription-id>",
"complianceReasonCode": ""
},
"eventType": "Microsoft.PolicyInsights.PolicyStateChanged",
"eventTime": "2021-03-27T18:37:42.5241536Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
다음 단계
- Azure Policy 상태 변경 이벤트를 라우팅에 대한 연습은 정책 상태 변경 알림에 Event Grid 사용을 참조하세요.
- Event Grid와 Azure Policy를 통합하는 방법에 관한 개요는 Event Grid를 사용하여 Azure Policy 이벤트에 대응을 참조하세요.
- Azure Event Grid에 대한 소개는 Event Grid란?을 참조하세요.
- Azure Event Grid 구독을 만드는 방법에 대한 자세한 내용은 Event Grid 구독 스키마를 참조하세요.