HCP Packer 감사 로그 참조
HCP Packer 감사 로그 참조
이 주제는 HCP Packer가 기록하는 감사 데이터에 대한 참조 정보를 제공해요.
HCP Standard 등급 레지스트리가 필요해요. 감사 로그를 활성화하려면 HCP Standard 구독이 있어야 해요. HCP Standard에 대해 자세히 알아보기.
출처: 문서
본문
개요
HCP Packer 감사 로그에는 다음 구성 요소가 포함돼요:
- description: 이벤트에 대한 간략한 설명
- metadata:
organization,project,actor를 포함한 관련 리소스에 대한 정보
공통 메타데이터 필드
각 감사 로그의 metadata는 JSON 객체예요. 다음 메타데이터 필드는 모든 HCP Packer 감사 로그에 있어요. 설명이 달리 명시하지 않는 한 모든 메타데이터 필드는 string 타입을 반환해요.
| 필드 | 설명 |
|---|---|
status |
감사 로그를 보내는 이벤트의 상태 또는 결과. "OK" 또는 "FAILED"를 반환해요. |
action |
이벤트의 유형. "create", "update", "delete" 또는 "read"를 반환해요. |
description |
이벤트에 대한 간략한 설명. 각 리소스 섹션은 다양한 시나리오에서 기대할 수 있는 설명을 다루어요. |
organization_id |
HCP 조직 ID |
project_id |
HCP Packer 프로젝트 ID |
timestamp |
이벤트가 발생한 UTC datetime. ISO 8601 형식. 예: 2023-07-12T15:50:02Z |
actor |
이벤트를 시작한 엔티티(사용자, 서비스 또는 내부 운영자). 이 필드는 JSON 객체를 반환해요. |
actor.principal_id |
액터의 ID |
actor.type |
액터의 유형. "TYPE_UNSET", "TYPE_USER", "TYPE_SERVICE", "TYPE_INTERNAL_OPERATOR", "TYPE_ANONYMOUS"를 반환해요. |
actor.user.email |
actor가 "TYPE_USER"인 경우 존재하는 필드 |
actor.user.name |
actor가 "TYPE_USER"인 경우 존재하는 필드 |
actor.user.id |
actor가 "TYPE_USER"인 경우 존재하는 필드 |
actor.service.id |
actor가 "TYPE_SERVICE"인 경우 존재하는 필드 |
actor.service.name |
actor가 "TYPE_SERVICE"인 경우 존재하는 필드 |
actor.service.user_managed |
actor가 "TYPE_SERVICE"인 경우 존재하며 bool 데이터 타입을 반환하는 필드 |
actor.internal_operator.id |
actor가 "TYPE_INTERNAL_OPERATOR"인 경우 존재하는 필드 |
error |
이벤트가 실패하면 사용할 수 있고 오류를 설명하는 필드. 이 필드가 존재하면 감사 로그 메타데이터는 위 표에 나열된 필드만 반환해요. |
버킷 이벤트 및 메타데이터 필드
HCP Packer는 Bucket 및 Bucket Labels 리소스에 대해 다음 이벤트에 대한 감사 로그를 보내요.
| 이벤트 | 설명 |
|---|---|
| Created | 버킷 생성됨 |
| Deleted | 버킷 삭제됨 |
| Updated | 버킷 업데이트됨 |
| Created labels | 버킷 라벨 추가됨 |
| Updated labels | 버킷 라벨 업데이트됨 |
이벤트의 상태에 따라 감사 로그의 메타데이터에 다음 필드를 사용할 수 있어요.
| 필드 | 설명 |
|---|---|
registry.id |
HCP Packer 레지스트리의 ID |
bucket.id |
버킷의 ID |
bucket.name |
버킷의 사용자 지정 이름 |
bucket.labels |
버킷 생성 또는 업데이트 시 부여된 모든 라벨. 데이터 타입: JSON Object |
bucket.new_labels |
버킷 업데이트 시 새로 추가된 라벨. 데이터 타입: JSON Object. 버킷 업데이트 이벤트에만 존재해요. |
bucket.updated_labels |
버킷 업데이트 시 업데이트된 기존 라벨. 데이터 타입: JSON Object. 버킷 업데이트 이벤트에만 존재해요. |
예시
{
"action":"create",
"actor":{
"principal_id":"test-auditlogs-911479@77f447d4-def0-46f2-bf09-6850d36745ed",
"service":{
"id":"test-auditlogs-911479@77f447d4-def0-46f2-bf09-6850d36745ed",
"name":"test-auditlogs",
"user_managed":true
},
"type":"TYPE_SERVICE"
},
"bucket":{
"id":"01H5APVEP375TRT23HGH10YTXR",
"labels":{
"test":"test label"
},
"name":"bucket-test-2"
},
"description":"Added bucket labels",
"organization_id":"77f447d4-def0-46f2-bf09-6850d36745ed",
"project_id":"a98c3c31-5760-4db1-b62b-0988080a66ad",
"registry":{
"id":"01GNZQS84K3PTGVVB2YY9R81BC"
},
"status":"OK",
"timestamp":"2023-07-14T17:23:21Z"
}
버전 이벤트 및 메타데이터 필드
HCP Packer는 Version 리소스에 대해 다음 이벤트에 대한 감사 로그를 보내요.
| 이벤트 | 설명 |
|---|---|
| Started | 버전 생성됨 |
| Finished | 버전 완료됨 |
| Revoked | 버전 폐기됨 |
| Restored | 버전 복원됨 |
| Deleted | 버전 삭제됨 |
| Revocation Scheduled | 버전 폐기 예약됨 |
| Revocation Cancelled | 버전 폐기 취소됨 |
이벤트의 상태에 따라 감사 로그의 메타데이터에 다음 필드를 사용할 수 있어요.
| 필드 | 설명 |
|---|---|
registry.id |
HCP Packer 레지스트리의 ID |
bucket.id |
버킷의 ID |
bucket.name |
버킷의 사용자 지정 이름 |
version.id |
버전의 ID |
version.fingerprint |
버전의 사용자 지정 식별자 |
version.name |
모든 빌드가 성공하면 단계적으로 설정되는 버전의 사람이 읽을 수 있는 이름 |
version.revoke_at |
버전이 폐기되었거나 폐기 예정인 날짜와 시간 |
version.revocation_message |
버전을 폐기하거나 폐기 예약할 때 사용자가 제공한 메시지 |
version.revocation_author |
버전을 폐기하거나 폐기 예약한 액터 |
version.status |
버전의 현재 상태. 가능한 값: RUNNING, CANCELLED, REVOKED, REVOCATION_SCHEDULED, ACTIVE |
builds |
버전에서 빌드된 빌드 목록 |
builds.id |
빌드의 ID |
builds.platform |
빌드의 플랫폼. 예: aws 또는 azure |
builds.component_type |
빌드에 사용된 빌더 또는 포스트 프로세서. 예: amazon-ebs.ubuntu |
builds.labels |
빌드의 라벨. 데이터 타입: JSON Object |
builds.artifacts |
빌드의 아티팩트 목록(배열) |
builds.artifacts.region |
아티팩트의 리전. 예: eu-west-1 |
builds.artifacts.external_identifier |
아티팩트의 외부 식별자. 예: ami-13245456 |
예시
{
"action":"update",
"actor":{
"principal_id":"6f212631-5bcc-48a2-9082-37d752904032",
"type":"TYPE_USER",
"user":{
"email":"[email protected]",
"id":"6f212631-5bcc-48a2-9082-37d752904032",
"name":"[email protected]"
}
},
"bucket":{
"id":"01GXXGSNEE1EMJEZ0TEH7KCQVX",
"name":"bucket-test"
},
"description":"Revoked version",
"version":{
"fingerprint":"f2",
"id":"01GXXGWAF8ZKF151591R6YXWEM",
"revocation_author":"[email protected]",
"revocation_message":"test",
"revoke_at":"2023-07-14 17:34:31.196808811 +0000 UTC",
"status":"VERSION_REVOKED",
"name":"v3"
},
"builds":[
{
"platform":"aws",
"component_type":"amazon-ebs.ubuntu",
"id":"01H5APPBYYF4D0NMVZCRKR85E7",
"artifacts":[
{
"external_identifier":"ami-f2",
"region":"us-west-2"
}
],
"labels":{
"os":"ubuntu"
}
}
],
"organization_id":"77f447d4-def0-46f2-bf09-6850d36745ed",
"project_id":"a98c3c31-5760-4db1-b62b-0988080a66ad",
"registry":{
"id":"01GNZQS84K3PTGVVB2YY9R81BC"
},
"skip_descendants_revocation":true,
"status":"OK",
"timestamp":"2023-07-14T17:34:31Z"
}
빌드 이벤트 및 메타데이터 필드
HCP Packer는 Build 리소스에 대해 다음 이벤트에 대한 감사 로그를 보내요.
| 이벤트 | 설명 |
|---|---|
| Build Started | 빌드 생성됨 |
| Build finished successfully OR with an error, timed out | 빌드 업데이트됨 |
이벤트의 상태에 따라 감사 로그의 메타데이터에 다음 필드를 사용할 수 있어요.
| 필드 | 설명 |
|---|---|
registry.id |
HCP Packer 레지스트리의 ID |
bucket.id |
버킷의 ID |
bucket.name |
버킷의 사용자 지정 이름 |
version.id |
버전의 ID |
version.fingerprint |
버전의 사용자 지정 식별자 |
version.name |
모든 빌드가 성공하면 단계적으로 설정되는 버전의 사람이 읽을 수 있는 이름 |
version.revoke_at |
버전이 폐기되었거나 폐기 예정인 날짜와 시간 |
version.revocation_message |
버전을 폐기하거나 폐기 예약할 때 사용자가 제공한 메시지 |
version.revocation_author |
버전을 폐기하거나 폐기 예약한 액터 |
build.id |
빌드의 ID |
build.source_external_identifier |
기본 레이어의 외부 식별자. 예: ami-13245456 |
build.source_version_id |
부모 버전 ID |
build.source_build_id |
부모 빌드 ID |
build.source_channel_id |
채널에서 생성된 경우 기본 채널 ID |
build.source_channel_name |
소스 채널의 사용자 읽기 가능 이름 |
build.source_channel_managed |
소스 채널이 HCP Packer에 의해 관리되는지 여부. 예: latest 채널. 데이터 타입: bool |
build.platform |
빌드의 플랫폼. 예: aws 또는 azure |
build.component_type |
빌드에 사용된 빌더 또는 포스트 프로세서. 예: amazon-ebs.ubuntu |
build.status |
빌드의 현재 상태. 가능한 값: UNSET, RUNNING, DONE, CANCELLED, FAILED |
build.labels |
빌드의 라벨. 데이터 타입: JSON Object |
build.artifacts |
빌드의 아티팩트 목록(배열) |
build.artifacts.region |
아티팩트의 리전. 예: eu-west-1 |
build.artifacts.external_identifier |
아티팩트의 외부 식별자. 예: ami-13245456 |
build.metadata |
Packer, 해당 플러그인, 빌드 환경 상태와 관련된 메타데이터 |
예시
{
"action":"update",
"actor":{
"principal_id":"test-auditlogs-911479@77f447d4-def0-46f2-bf09-6850d36745ed",
"service":{
"id":"test-auditlogs-911479@77f447d4-def0-46f2-bf09-6850d36745ed",
"name":"test-auditlogs",
"user_managed":true
},
"type":"TYPE_SERVICE"
},
"bucket":{
"id":"01GXXGSNEE1EMJEZ0TEH7KCQVX",
"name":"bucket-test"
},
"build":{
"platform":"aws",
"component_type":"aws",
"id":"01H5APPBYYF4D0NMVZCRKR85E7",
"artifacts":[
{
"external_identifier":"ami-f2",
"region":"us-west-2"
}
],
"metadata": {
"packer" : {
"version": "1.10.2",
"plugins": [
{
Name: "Azure",
Version: "2.1.4"
}
]
}
},
"labels":{
"os":"ubuntu"
},
"status":"DONE"
},
"description":"Updated build",
"version":{
"fingerprint":"f14",
"id":"01H5APNAK1BNEVMK3HPS7KZANV",
"name":"v5"
},
"organization_id":"77f447d4-def0-46f2-bf09-6850d36745ed",
"project_id":"a98c3c31-5760-4db1-b62b-0988080a66ad",
"registry":{
"id":"01GNZQS84K3PTGVVB2YY9R81BC"
},
"status":"OK",
"timestamp":"2023-07-14T17:21:09Z"
}
오류가 있는 예시
{
"action":"create",
"actor":{
"principal_id":"test-auditlogs-911479@77f447d4-def0-46f2-bf09-6850d36745ed",
"service":{
"id":"test-auditlogs-911479@77f447d4-def0-46f2-bf09-6850d36745ed",
"name":"test-auditlogs",
"user_managed":true
},
"type":"TYPE_SERVICE"
},
"bucket":{
"id":"01GXXGSNEE1EMJEZ0TEH7KCQVX",
"name":"bucket-test"
},
"description":"Created build",
"error":"rpc error: code = FailedPrecondition desc = This version is complete. If you wish to add a new build a new version must be created by changing the build fingerprint.",
"version":{
"fingerprint":"f14",
"id":"01H5APNAK1BNEVMK3HPS7KZANV",
"name":"v5"
},
"organization_id":"77f447d4-def0-46f2-bf09-6850d36745ed",
"project_id":"a98c3c31-5760-4db1-b62b-0988080a66ad",
"registry":{
"id":"01GNZQS84K3PTGVVB2YY9R81BC"
},
"status":"FAILED",
"timestamp":"2023-07-14T17:31:11Z"
}
채널 이벤트 및 메타데이터 필드
HCP Packer는 Channel 리소스에 대해 다음 이벤트에 대한 감사 로그를 보내요.
| 이벤트 | 설명 |
|---|---|
| Created | 채널 생성됨 |
| Deleted | 채널 삭제됨 |
| Updated settings | 채널 업데이트됨 |
| Version Assigned | 채널에 버전 할당됨 |
이벤트의 상태에 따라 감사 로그의 메타데이터에 다음 필드를 사용할 수 있어요.
| 필드 | 설명 |
|---|---|
registry.id |
HCP Packer 레지스트리의 ID |
bucket.id |
버킷의 ID |
bucket.name |
버킷의 사용자 지정 이름 |
version.id |
버전의 ID. 버전이 채널에 할당된 경우 |
version.fingerprint |
버전의 사용자 지정 식별자. 버전이 채널에 할당된 경우 |
version.name |
모든 빌드가 성공하면 단계적으로 설정되는 버전의 사람이 읽을 수 있는 이름. 버전이 채널에 할당된 경우 |
version.revoke_at |
버전이 폐기되었거나 폐기 예정인 날짜와 시간. 버전이 채널에 할당된 경우 |
version.revocation_message |
버전을 폐기하거나 폐기 예약할 때 사용자가 제공한 메시지. 버전이 채널에 할당된 경우 |
version.revocation_author |
버전을 폐기하거나 폐기 예약한 액터. 버전이 채널에 할당된 경우 |
builds |
버전에서 빌드된 빌드 목록 |
builds.id |
빌드의 ID |
builds.platform |
빌드의 플랫폼. 예: aws 또는 azure |
builds.component_type |
빌드에 사용된 빌더 또는 포스트 프로세서. 예: amazon-ebs.ubuntu |
builds.labels |
빌드의 라벨. 데이터 타입: JSON Object |
builds.artifacts |
빌드의 아티팩트 목록(배열) |
builds.artifacts.region |
아티팩트의 리전. 예: eu-west-1 |
builds.artifacts.external_identifier |
아티팩트의 외부 식별자. 예: ami-13245456 |
previous_version.id |
버전 ID. 이전에 채널에 할당된 버전이 있는 경우 |
previous_version.fingerprint |
버전의 사용자 지정 식별자. 이전에 채널에 할당된 버전이 있는 경우 |
previous_version.name |
모든 빌드가 성공하면 단계적으로 설정되는 버전의 사람이 읽을 수 있는 이름. 이전에 채널에 할당된 버전이 있는 경우 |
previous_builds |
이전에 채널에 할당된 버전에서 빌드된 빌드 목록. 이전에 할당된 버전이 있는 경우에만 존재해요. |
previous_builds.id |
빌드의 ID |
previous_builds.platform |
빌드의 플랫폼. 예: aws 또는 azure |
previous_builds.component_type |
빌드에 사용된 빌더 또는 포스트 프로세서. 예: amazon-ebs.ubuntu |
previous_builds.labels |
빌드의 라벨. 데이터 타입: JSON Object |
previous_builds.artifacts |
빌드의 아티팩트 목록(배열) |
previous_builds.artifacts.region |
아티팩트의 리전. 예: eu-west-1 |
previous_builds.artifacts.external_identifier |
아티팩트의 외부 식별자. 예: ami-13245456 |
channel.id |
채널의 ID |
channel.name |
채널의 사용자 읽기 가능 이름 |
channel.author_id |
채널을 만든 액터의 ID |
channel.managed |
채널이 HCP Packer에 의해 관리되는지 여부. HCP Packer가 관리하는 채널은 latest 채널로도 식별돼요. 데이터 타입: bool |
channel.restricted |
채널이 제한되어 있는지 여부. 데이터 타입: bool |
예시
{
"action":"update",
"actor":{
"principal_id":"6f212631-5bcc-48a2-9082-37d752904032",
"type":"TYPE_USER",
"user":{
"email":"[email protected]",
"id":"6f212631-5bcc-48a2-9082-37d752904032",
"name":"[email protected]"
}
},
"bucket":{
"id":"01GTCW6AAS494Z8NYJATA5AM5Z",
"name":"test-channel-history"
},
"channel":{
"author_id":"[email protected]",
"id":"01H3FM869DP6WTFF826VTKGZCM",
"managed":false,
"restricted":false,
"name":"fgtj"
},
"description":"Assigned version to channel",
"version":{
"fingerprint":"test-fingerprint-0",
"id":"01GTCW6QPQ01BEDZZJ6W66YWG8",
"name":"v1"
},
"builds":[
{
"platform":"aws",
"component_type":"amazon-ebs.ubuntu",
"id":"01HP1XWZ1EADV8VVKV6J4VHM6S",
"artifacts":[
{
"external_identifier":"ami-f3",
"region":"us-west-2"
}
],
"labels":{
"os":"ubuntu"
}
}
],
"organization_id":"77f447d4-def0-46f2-bf09-6850d36745ed",
"previous_version":{
"fingerprint":"test-fingerprint-1",
"id":"01GTCWC4GD3THGE8A029Y5H5XK",
"name":"v2"
},
"previous_builds":[
{
"platform":"aws",
"component_type":"amazon-ebs.ubuntu",
"id":"01H5APPBYYF4D0NMVZCRKR85E7",
"artifacts":[
{
"external_identifier":"ami-f2",
"region":"us-west-2"
}
],
"labels":{
"os":"ubuntu"
}
}
],
"project_id":"a98c3c31-5760-4db1-b62b-0988080a66ad",
"registry":{
"id":"01GNZQS84K3PTGVVB2YY9R81BC"
},
"status":"OK",
"timestamp":"2023-07-14T15:48:36Z"
}