지속적 검증 사용

이 페이지에서는 Binary Authorization에 지속적 검증(CV)을 사용하는 방법을 보여줍니다.

지속적 검증은 지속적인 정책 준수를 위해 pod 실행과 연관된 컨테이너 이미지를 주기적으로 확인하는 Binary Authorization 기능입니다. CV는 Cloud Logging에 발견 항목을 로깅합니다.

시작하기 전에

  1. Google Kubernetes Engine에 대해 Binary Authorization을 설정해야 합니다.

  2. Binary Authorization이 설치된 프로젝트의 프로젝트 ID를 선택합니다. CV는 프로젝트의 모든 클러스터에 있는 pod에서 정책 준수 이벤트를 로깅합니다.

CV의 IAM 역할 설정

Identity and Access Management(IAM) 역할에는 권한이 포함되며 사용자, 그룹, 서비스 계정에 할당될 수 있습니다. 다음 역할에는 CV에 나와 있는 권한이 포함됩니다.

역할 이름 CV 권한 설명
roles/binaryauthorization.policyEditor binaryauthorization.continuousValidationConfig.update CV를 사용 설정하거나 중지합니다.

CV 사용 설정

Console

Cloud Console을 사용하여 CV를 사용 설정하려면 다음을 수행합니다.

  1. Cloud Console에서 Binary Authorization 정책 페이지로 이동합니다.

    Binary Authorization 정책으로 이동

  2. 정책 탭을 클릭합니다.

  3. 정책 수정을 클릭합니다.

  4. 지속적 검증 체크박스를 선택합니다.

  5. 정책 저장을 클릭합니다.

REST API

REST API를 사용하여 CV를 사용 설정하려면 다음을 수행합니다.

  1. 프로젝트 ID를 저장합니다.

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    DEPLOYER_PROJECT_ID를 GKE를 실행하는 프로젝트의 ID로 바꿉니다.

  2. GCP용 OAuth 토큰을 가져옵니다.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    토큰은 짧은 시간 동안만 유효합니다.

  3. CV를 사용 설정합니다.

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "true"}}'
    

이제 CV가 이벤트를 로깅하도록 구성되었습니다.

Logging 로그 항목은 다음 예시와 비슷합니다.

{
  "insertId": "6054e143-0000-2562-aa64-883d24f57e70",
  "jsonPayload": {
    "@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent",
    "podEvent": {
      "images": [
        {
          "description": "Image <var>IMAGE_NAME@IMAGE_DIGEST</var> denied by
           attestor projects/<var>ATTESTOR_PROJECT_ID</var>/attestors/<var>ATTESTOR_NAME</var>:
           No attestations found that were valid and signed by a key trusted by
           the attestor",
          "image": "<var>IMAGE_NAME@IMAGE_DIGEST</var>",
          "result": "DENY"
        }
      ],
      "verdict": "VIOLATES_POLICY",
      "deployTime": "2021-03-19T17:00:08Z",
      "pod": "<var>POD_NAME</var>"
    }
  },
  "resource": {
    "type": "k8s_cluster",
    "labels": {
      "cluster_name": "<var>CLUSTER_NAME</var>",
      "location": "<var>CLUSTER_LOCATION</var>",
      "project_id": "<var>DEPLOYER_PROJECT_ID</var>"
    }
  },
  "timestamp": "2021-03-19T17:15:43.872702342Z",
  "severity": "WARNING",
  "logName": "projects/<var>DEPLOYER_PROJECY_ID</var>/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
  "receiveTimestamp": "2021-03-19T17:57:00.432116179Z"
}

CV 이벤트를 쿼리하는 방법은 Cloud Logging에서 CV 이벤트 보기를 참조하세요.

CV 사용 중지

Console

Cloud Console을 사용하여 CV를 사용 중지하려면 다음을 수행합니다.

  1. Cloud Console에서 Binary Authorization 정책 페이지로 이동합니다.

    Binary Authorization 정책으로 이동

  2. 정책 탭을 클릭합니다.

  3. 정책 수정을 클릭합니다.

  4. 지속적 검증 체크박스를 선택 취소합니다.

  5. 정책 저장을 클릭합니다.

REST API

REST API를 사용하여 CV를 사용 중지하려면 다음을 수행합니다.

  1. 프로젝트 ID를 저장합니다.

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    DEPLOYER_PROJECT_ID를 GKE를 실행하는 프로젝트의 ID로 바꿉니다.

  2. GCP용 OAuth 토큰을 가져옵니다.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    토큰은 짧은 시간 동안만 유효합니다.

  3. 다음 명령어를 사용하여 CV를 사용 중지합니다.

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "false"}}'
    

Cloud Logging에서 CV 이벤트 보기

CV를 사용 설정한 후에는 Binary Authorization 정책을 위반하는 모든 pod가 Cloud Logging에 정기적으로 로깅됩니다.

이러한 로그 항목에는 다음 로그 이름이 포함됩니다.

logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"

로그 탐색기

로그 탐색기를 사용하여 Cloud Logging에서 CV 이벤트를 보려면 다음을 수행합니다.

  1. 로그 탐색기로 이동합니다.

  2. Google Cloud 운영 제품군을 사용 설정한 프로젝트 ID를 선택합니다.

  3. 검색어 상자에 다음 쿼리를 입력합니다.

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  4. 시간 범위 선택기에서 기간을 선택합니다.

기존 로그 뷰어

기존 로그 뷰어를 사용하여 Cloud Logging에서 CV 이벤트를 보려면 다음을 수행합니다.

  1. 로그 탐색기로 이동합니다.

  2. 옵션 드롭다운 메뉴에서 기존 로그 뷰어로 돌아가기를 선택합니다.

  3. Google Cloud 운영 제품군을 설정한 Google Cloud 프로젝트를 선택합니다.

  4. 검색어 상자에 다음 쿼리를 입력합니다.

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  5. 시간 범위 선택기에서 기간을 선택합니다.

gcloud

gcloud를 사용하여 Cloud Logging에서 지난 주 CV 이벤트를 보려면 다음 명령어를 실행합니다.

gcloud logging read --order="desc" --freshness=7d \
  'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"'

다음 단계