Binary Authorization 개요

이 문서에는 Binary Authorization 개요가 포함되어 있습니다.

Binary Authorization은 컨테이너 기반 애플리케이션에 대해 소프트웨어 공급망을 제공하는 Google Cloud에서 사용되는 서비스입니다. Binary Authorization을 사용하면 지원되는 컨테이너 기반 플랫폼 중 하나에 컨테이너 이미지를 배포하려고 시도할 때 서비스가 적용하는 정책을 구성할 수 있습니다.

Binary Authorization은 다음 플랫폼을 지원합니다.

Binary Authorization은 다음 관련 제품을 포함하는 배포 아키텍처의 일부입니다.

  • Artifact Registry, Container Registry 및 기타 배포하려는 이미지를 저장하는 레지스트리
  • 컨테이너 분석은 배포 제어를 위해 Binary Authorization에 사용할 수 있는 취약점 정보를 제공합니다. 이와 별개로 컨테이너 분석은 승인 프로세스에 사용되는 신뢰할 수 있는 메타데이터를 저장합니다.
  • 보안 모니터링은 Binary Authorization을 포함하여 상호 의존적인 Google Cloud 제품에서 애플리케이션 보안 상태를 평가하는 데 사용할 수 있는 대시보드입니다.
  • Google Cloud Deploy는 정의된 순서로 일련의 대상 환경에 애플리케이션을 자동으로 전송하는 관리형 지속적 배포 서비스입니다.
  • Binary Authorization 자체는 구성된 정책을 기준으로 이미지 배포를 허용하거나 차단합니다.

Binary Authorization은 Grafeas 오픈소스 프로젝트의 일부인 Kritis 사양을 기반으로 합니다.

백그라운드

소프트웨어 공급망 보안의 목표는 내부 권장사항 및 표준에 따라 소프트웨어가 소싱, 빌드, 테스트, 출시, 배포되도록 보장하는 것입니다.

컨테이너 기반 아키텍처는 팀이 마이크로서비스 아키텍처 기반과 같이 분리 수준이 높은 시스템을 개발할 수 있게 해주고, 지속적 통합(CI) 및 지속적 배포(CD)를 포함하여 수명 주기가 짧은 개발 방식을 사용하도록 권장합니다.

컨테이너 기반 개발 환경에서는 소프트웨어 공급망에 포함되는 테스트, 스테이징, 출시와 같은 연속된 클러스터에 이미지를 배포할 수 있습니다.

소프트웨어 공급망 보안의 목표는 내부 권장사항 및 표준에 따라 소프트웨어가 소싱, 빌드, 테스트, 출시, 배포되도록 보장하는 것입니다.

Binary Authorization의 목적은 이러한 유형의 환경에서 결함이 있거나, 취약하거나, 승인되지 않은 소프트웨어가 배포될 위험을 줄이는 것입니다. 이 서비스를 사용하면 정의된 정책을 만족시키지 않는 한 이미지가 배포되지 않도록 방지할 수 있습니다.

Binary Authorization은 내부 프로세스 또는 권장사항을 기술하지 않지만, 필요한 검사를 통과하지 않은 이미지 배포를 제한하여 사용자 고유의 기준을 강화하는 데 도움을 줍니다.

수명 주기

이미지의 배포 수명 주기는 다음 단계들로 구성될 수 있습니다. 여기에서는 다음 단계로 진행하기 위해 먼저 이전 단계를 완료해야 합니다. 예를 들면 다음과 같습니다.

  1. 빌드 및 단위 테스트
  2. 사용자가 영향을 받지 않는 개발 환경에 배포
  3. 내부 사용자만 영향을 받는 QA 환경에 배포
  4. 일부 외부 사용자만 영향을 받는 카나리아 환경에 배포
  5. 프로덕션에 배포

각 단계에는 GKE 클러스터 또는 Google Cloud 프로젝트와 같은 고유한 배포 환경과 이미지를 다음 단계로 이동하기 전에 충족되어야 하는 고유 기준이 포함될 수 있습니다. Binary Authorization에서는 이미지가 한 단계에서 다른 단계로 전달되는 규칙을 정의할 수 있으며, 이러한 규칙을 적용하기 위한 방법을 제공합니다.

증명

가장 일반적인 Binary Authorization 사용 사례에는 증명이 포함됩니다. 증명은 앞에서 설명한 것처럼 특정 이미지가 이전 단계를 완료했는지를 인증합니다. 이미지 배포를 허용하기 전 증명을 확인하도록 Binary Authorization 정책을 구성합니다. 배포 시 Binary Authorization은 이전 단계에서 완료된 활동을 다시 수행하는 대신 증명만 확인하면 됩니다.

증명이 포함된 사용 사례는 다음과 같습니다.

  • 빌드 확인에서는 Binary Authorization이 증명을 사용하여 특정 빌드 시스템 또는 지속적 통합(CI) 파이프라인으로 이미지가 빌드되었는지 확인합니다.

    Cloud Build를 기준으로 증명을 만들 수 있는 CI 파이프라인을 설정하는 방법을 알아보려면 Cloud Build 통합을 참조하세요.

  • 취약점 스캔에서는 컨테이너 분석이 CI 빌드 이미지에서도 취약점을 스캔합니다. 이 경우에는 식별된 취약점이 취약점 서명 정책을 충족할 경우에만 증명이 생성됩니다.

    Voucher 또는 Kritis Signer로 취약점 스캔 CI 파이프라인을 설정하는 방법을 알아보세요.

  • 수동 확인에서는 QA 담당자와 같은 사용자가 수동으로 증명을 만듭니다.

    증명을 수동으로 만드는 방법은 증명 만들기를 참조하세요.

엔드 투 엔드 증명 튜토리얼은 Google Cloud Console 시작하기를 참조하세요.

특징

Binary Authorization은 다음을 제공합니다.

  • 이미지의 배포에 적용되는 제약조건을 설명하는 정책 모델
  • 배포 전에 사용자 환경에서 필요한 프로세스가 완료되었음을 증명하거나 확인할 수 있는 신뢰할 수 있는 기관을 정의하는 증명 모델
  • 정책 위반 이미지가 배포되지 않도록 방지하는 배포 시 시행자

정책 모델

Binary Authorization은 정책 모델을 구현합니다. 여기에서 정책은 컨테이너 이미지 배포를 제어하는 규칙 집합입니다. 정책의 규칙은 이미지를 배포하기 위해 먼저 충족해야 하는 특정 기준을 제공합니다.

Binary Authorization 정책 모델 및 기타 개념에 대한 자세한 내용은 주요 개념을 참조하세요.

설정

Binary Authorization을 설정하려면 배포 및 승인 파이프라인을 구성하는 Google Cloud 프로젝트에 대해 서비스를 사용 설정해야 합니다.

그리고 컨테이너 이미지를 배포할 수 있는 제약조건을 지정하는 정책을 정의합니다. 배포 전에 정책에 증명이 필요한 경우 연결된 이미지의 배포를 허용하기 전에 증명을 확인할 수 있는 증명자를 설정해야 합니다.

Binary Authorization을 설정하려면 다음 가이드를 참조하세요.

승인

이미지를 배포하려면 먼저 필요한 서명자가 이미지를 다음 배포 단계로 이동할 준비가 되었는지 확인하는 증명을 만들어야 합니다. 증명은 이미지의 레지스트리 경로 및 다이제스트를 포함하고, 서명자의 비공개 암호화 키를 사용하여 디지털로 서명된 레코드입니다.

승인에 대한 자세한 내용은 증명 사용을 참조하세요.

적용

이미지를 배포할 때 Binary Authorization은 정책을 확인하고 배포를 제어하는 규칙을 적용합니다.

이미지가 정책에 정의된 제약조건을 통과하면 Binary Authorization이 이미지 배포를 허용합니다. 그렇지 않으면 서비스가 배포를 차단하고 이미지가 규정 준수를 벗어난 이유를 설명하는 메시지를 Cloud 감사 로그에 기록합니다.

Cloud 감사 로그에서 Binary Authorization 시행 이벤트를 보려면 다음 가이드를 참조하세요.

배포에 대한 자세한 내용은 다음 가이드를 참조하세요.

지속적 검증

지속적 검증(CV)은 지속적인 정책 준수를 위해 Pod 실행과 연관된 컨테이너 이미지를 주기적으로 확인하는 Binary Authorization 기능입니다.

CV에 대해 자세히 알아보세요.

VPC 서비스 제어를 사용하여 Binary Authorization 보호

VPC 서비스 제어는 Google 관리 서비스 및 리소스에서 데이터를 무단으로 복사하거나 전송하는 위험을 완화하는 데 도움을 줍니다.

Binary Authorization 관련 리소스의 보안에 대한 자세한 내용은 VPC 서비스 제어로 보안 설정을 참조하세요.

다음 단계