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"
}

더 알아보기