개요

이 페이지에는 Binary Authorization의 개요가 포함되어 있습니다.

소개

Binary Authorization은 컨테이너 기반 애플리케이션을 배포할 때 소프트웨어 공급망 보안을 제공하는 Google Cloud Platform(GCP) 서비스입니다. Binary Authorization은 Google Kubernetes Engine(GKE)을 확장하고 배포 시 보안 정책을 시행합니다. Binary Authorization은 Container Registry 또는 다른 컨테이너 이미지 레지스트리의 이미지에서 작동합니다.

Binary Authorization을 사용하면 애플리케이션을 프로덕션 환경에 배포하기 전에 소프트웨어의 품질과 무결성을 보호하는 소프트웨어 공급망의 각 구성요소를 디지털 방식으로 자동 확인할 수 있습니다.

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

  • Container Registry 또는 다른 레지스트리: 배포하려는 컨테이너 이미지를 저장합니다.
  • GKE: 클러스터의 이미지를 실행합니다.
  • 컨테이너 분석: 승인 프로세스에 사용된 신뢰할 수 있는 메타데이터를 저장합니다.
  • Binary Authorization 자체: 구성된 정책에 따라 GKE로의 이미지 배포를 허용하거나 차단합니다.

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

배경

GKE를 사용하는 팀은 마이크로서비스 아키텍처를 기반으로 하는 완전 분리형 시스템을 개발하고 지속적 통합(CI) 및 지속적 배포(CD)와 같이 수명주기가 짧은 프로세스를 사용할 수 있습니다. 이러한 환경에서는 스테이징 및 테스트 중에 소프트웨어가 배포 클러스터 간을 이동하는 경우가 많으므로 내부 권장사항 및 표준에 따라 모든 소프트웨어를 빌드, 테스트, 출시 및 배포하는 것이 어렵습니다.

Binary Authorization은 이러한 유형의 환경에 오류나 결함이 있거나 승인되지 않은 소프트웨어가 배포되는 위험을 줄이는 것을 목표로 합니다. 이 서비스를 사용하면 컨테이너 이미지가 각 배포 단계에 진입하기 전에 완료해야 하는 내부 프로세스를 명시적으로 지정한 다음 승인된 당사자가 프로세스 완료를 검증했는지 확인할 수 있습니다.

Binary Authorization은 소프트웨어의 무결성과 품질에 대한 내부 프로세스나 권장사항을 규정하지 않습니다. 대신 필수 확인을 통과하지 못한 컨테이너 이미지의 배포를 제한하여 고유의 권장사항을 적용할 수 있습니다.

일반적인 사용 사례

가장 일반적인 Binary Authorization 사용 사례에는 증명이 포함됩니다. 이러한 경우 컨테이너 이미지가 빌드될 때 서명자는 증명을 만들기 위해 고유 다이제스트를 디지털 서명합니다.

배포 시 Binary Authorization 시행자는 증명자를 사용하여 증명을 확인합니다. 이렇게 하면 확인된 증명이 포함된 컨테이너 이미지만 배포할 수 있습니다.

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

  • 빌드 확인: Binary Authorization에서 컨테이너 이미지가 특정 빌드 시스템 또는 지속적 통합(CI) 파이프라인을 통해 빌드되었는지 확인합니다.
  • 취약점 스캔: CI 파이프라인 자체 또는 개별 사용자가 증명을 만들기 전에 컨테이너 분석에서 CI 빌드 컨테이너 이미지를 검사한 후 식별된 취약점을 해결했는지 확인합니다.
  • 수동 확인: 예를 들어 QA 담당자가 직접 증명을 만듭니다.

엔드 투 엔드 증명 가이드는 Console을 사용하여 시작하기를 참조하세요.

수명 주기

컨테이너 이미지의 배포 수명 주기는 다음과 같은 단계들로 구성되며, 다음 단계를 진행하기 위해서는 이전 단계를 완료해야 합니다.

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

빌드 및 테스트 이후 각 단계에는 고유한 배포 환경(여기서는 GKE 클러스터)과 이미지를 다음 단계로 이동하기 전에 충족해야 하는 고유한 기준이 있습니다. Binary Authorization을 사용하면 이미지를 한 단계에서 다른 단계로 전달하기 위한 기준을 정의한 후 해당 기준을 적용할 수 있습니다.

특징

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

  • 컨테이너 이미지의 배포에 적용되는 제약조건을 설명하는 정책 모델
  • 배포 전에 사용자 환경에서 필요한 프로세스가 완료되었음을 증명하거나 확인할 수 있는 신뢰할 수 있는 기관을 정의하는 증명 모델
  • 오류나 결함이 있거나 승인되지 않은 이미지가 배포 환경에 진입하지 않도록 차단하는 시행 기능

정책 모델

Binary Authorization은 정책 모델을 구현하며, 여기서 정책이란 GKE 클러스터로의 컨테이너 이미지 배포를 제어하는 규칙 집합입니다. 정책의 규칙은 이미지를 배포하기 전에 충족해야 하는 기준을 지정합니다. 일반적인 정책에 따라 컨테이너 이미지는 확인된 디지털 서명이 있어야 배포할 수 있습니다.

이러한 유형의 정책에서 규칙은 필요한 프로세스가 완료되어 이미지를 다음 배포 단계로 이동할 수 있음을 어설션해야 하는 서명자라는 신뢰할 수 있는 기관을 지정합니다. 서명자는 사람일 수 있지만 빌드 및 테스트 시스템 같은 머신 프로세스이거나 지속적 배포 파이프라인의 일부인 경우가 많습니다.

개발 수명 주기 동안 서명자는 전역적으로 고유한 컨테이너 이미지 설명자를 디지털 서명하여 증명이라는 인증된 문을 작성합니다. 이후 배포 단계에서 Binary Authorization은 증명을 사용하여 파이프라인의 필수 프로세스가 완료되었음을 나타내는 인증서를 확인합니다.

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

설정

Binary Authorization을 설정하려면 먼저 배포 및 승인 파이프라인과 연관된 프로젝트에 서비스를 사용 설정해야 합니다. 그런 다음 필요에 따라 서비스가 사용 설정된 GKE 클러스터를 만듭니다.

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

설정 단계에 대한 자세한 내용은 개요 설정을 참조하세요.

승인

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

승인에 대한 자세한 내용은 증명 만들기를 참조하세요.

시행

컨테이너 이미지를 GKE에 배포할 때 Binary Authorization은 정책을 확인하고 배포를 제어하는 규칙을 적용합니다. 규칙에 증명자가 필요한 경우 Binary Authorization은 모든 증명자가 안전하게 이미지를 확인했는지 검사합니다.

이미지가 정책에 정의된 제약조건을 통과하면 해당 이미지를 Binary Authorization을 통해 클러스터에 배포할 수 있습니다. 그렇지 않은 경우 서비스가 배포를 차단하고 이미지가 규정을 준수하지 못한 이유를 설명하는 메시지를 감사 로그에 기록합니다.

배포에 대한 자세한 내용은 컨테이너 배포를 참조하세요.

VPC 서비스 제어로 Binary Authorization 보안 설정

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

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