이 문서에서는 Binary Authorization 개요를 제공합니다.
Binary Authorization이란 무엇인가요?
Binary Authorization은 컨테이너 기반 애플리케이션을 개발 및 배포할 때 소프트웨어 공급망 보안 측정을 구현하기 위해 사용할 수 있는 Google Cloud 제품입니다.
Binary Authorization은 어떤 역할을 수행하나요?
Binary Authorization을 사용하여 다음을 수행할 수 있습니다.
모니터: 실행 중인 포드에 연결된 컨테이너 이미지가 정의된 정책을 준수하는지 여부를 정기적으로 모니터링하도록 검사 기반 플랫폼 정책을 사용한 지속적 점증(CV)(미리보기)을 구성할 수 있습니다. 이미지가 정책을 준수하지 않으면 CV가 Cloud Logging에 로그 항목을 생성합니다.
시행: 지원되는 컨테이너 기반 플랫폼 중 하나에 배포되는 이미지가 정의된 정책을 준수하도록 Binary Authorization 시행을 구성할 수 있습니다. 정책을 준수하는 이미지는 배포가 허용되고, 그렇지 않으면 배포가 허용되지 않습니다.
Binary Authorization은 어떤 플랫폼을 지원하나요?
Binary Authorization은 다음 플랫폼을 지원합니다.
- Google Kubernetes Engine(GKE): Google Cloud에서 호스팅되는 클러스터의 이미지를 실행합니다.
- Cloud Run: 완전 관리형 서버리스 플랫폼에서 컨테이너화된 애플리케이션을 실행합니다.
- Cloud Service Mesh(미리보기): 온프레미스 또는 Google Cloud에서 안정적인 서비스 메시를 관리합니다.
- GKE 클러스터: GKE 클러스터에서 이미지를 실행합니다.
Binary Authorization 관련 제품
Binary Authorization은 다음 관련 제품을 포함하는 배포 아키텍처의 일부입니다.
- Artifact Registry, Container Registry 및 기타 배포하려는 이미지를 저장하는 레지스트리
- Artifact Analysis는 배포 제어를 위해 Binary Authorization에 사용할 수 있는 취약점 정보를 제공합니다. 이와 별개로 Artifact Analysis는 승인 프로세스에 사용되는 신뢰할 수 있는 메타데이터를 저장합니다.
- 보안 모니터링은 Binary Authorization을 포함한 상호 의존적인 Google Cloud 제품에서 애플리케이션 보안 상태를 평가하는 데 사용할 수 있는 대시보드입니다.
- Cloud Build는 Binary Authorization이 시행 및 모니터링에 사용할 수 있는 증명 및 출처를 제공합니다.
- Cloud Deploy는 정의된 순서로 일련의 대상 환경에 애플리케이션을 자동으로 전송하는 관리형 지속적 배포 서비스입니다.
Binary Authorization은 Grafeas 오픈소스 프로젝트의 일부인 Kritis 사양을 기반으로 합니다.
배경
소프트웨어 공급망 보안의 목표는 내부 권장사항 및 표준에 따라 소프트웨어가 소싱, 빌드, 테스트, 출시, 배포되도록 보장하는 것입니다.
컨테이너 기반 아키텍처는 팀이 마이크로서비스 아키텍처 기반과 같이 분리 수준이 높은 시스템을 개발할 수 있게 해주고, 지속적 통합(CI) 및 지속적 배포(CD)를 포함하여 수명 주기가 짧은 개발 방식을 사용하도록 권장합니다.
컨테이너 기반 개발 환경에서는 소프트웨어 공급망에 포함되는 테스트, 스테이징, 출시와 같은 연속된 클러스터에 이미지를 배포할 수 있습니다.
Binary Authorization의 목적은 이러한 유형의 환경에서 결함이 있거나, 취약하거나, 승인되지 않은 소프트웨어가 배포될 위험을 줄이는 것입니다. 이 서비스를 사용하면 정의된 정책을 만족시키지 않는 한 이미지가 배포되지 않도록 방지할 수 있습니다.
Binary Authorization은 내부 프로세스 또는 권장사항을 기술하지 않지만, 필요한 검사를 통과하지 않은 이미지 배포를 제한하여 사용자 고유의 기준을 강화하는 데 도움을 줍니다.
수명 주기
이미지의 배포 수명 주기는 다음 단계들로 구성될 수 있습니다. 여기에서는 다음 단계로 진행하기 위해 먼저 이전 단계를 완료해야 합니다. 예를 들면 다음과 같습니다.
- 빌드 및 단위 테스트
- 사용자가 영향을 받지 않는 개발 환경에 배포
- 내부 사용자만 영향을 받는 QA 환경에 배포
- 일부 외부 사용자만 영향을 받는 카나리아 환경에 배포
- 프로덕션에 배포
각 단계에는 GKE 클러스터 또는 Google Cloud 프로젝트와 같은 고유한 배포 환경과 이미지를 다음 단계로 이동하기 전에 충족되어야 하는 고유 기준이 포함될 수 있습니다. Binary Authorization에서는 이미지가 한 단계에서 다른 단계로 전달되는 규칙을 정의할 수 있으며, 이러한 규칙을 적용하기 위한 방법을 제공합니다.
증명
가장 일반적인 Binary Authorization 사용 사례에는 attestations이 포함됩니다. 증명은 앞에서 설명한 것처럼 특정 이미지가 이전 단계를 완료했는지를 인증합니다. 이미지 배포를 허용하기 전 증명을 확인하도록 Binary Authorization 정책을 구성합니다. 배포 시 Binary Authorization은 이전 단계에서 완료된 활동을 다시 수행하는 대신 증명만 확인하면 됩니다.
증명이 포함된 사용 사례는 다음과 같습니다.
빌드 확인에서는 Binary Authorization이 증명을 사용하여 특정 빌드 시스템 또는 지속적 통합(CI) 파이프라인으로 이미지가 빌드되었는지 확인합니다.
Cloud Build를 기준으로 증명을 만들 수 있는 CI 파이프라인을 설정하는 방법을 알아보려면 Cloud Build 통합을 참조하세요.
취약점 스캔에서는 Artifact Analysis가 CI 빌드 이미지에서도 취약점을 스캔합니다. 이 경우에는 식별된 취약점이 취약점 서명 정책을 충족할 경우에만 증명이 생성됩니다.
Voucher 또는 Kritis Signer로 취약점 스캔 CI 파이프라인을 설정하는 방법을 알아보세요.
수동 확인에서는 QA 담당자와 같은 사용자가 수동으로 증명을 만듭니다.
증명을 수동으로 만드는 방법은 증명 만들기를 참조하세요.
엔드 투 엔드 증명 튜토리얼은 Google Cloud 콘솔 시작하기를 참조하세요.
특성
Binary Authorization은 다음을 제공합니다.
- 이미지의 배포에 적용되는 제약조건을 설명하는 정책 모델
- 배포 전에 사용자 환경에서 필요한 프로세스가 완료되었음을 증명하거나 확인할 수 있는 신뢰할 수 있는 기관을 정의하는 증명 모델
- 정책 위반 이미지가 배포되지 않도록 방지하는 배포 시 시행자
정책 모델
Binary Authorization은 정책 모델을 구현합니다. 여기에서 정책은 컨테이너 이미지 배포를 제어하는 규칙 집합입니다. 정책의 규칙은 이미지를 배포하기 위해 먼저 충족해야 하는 특정 기준을 제공합니다.
Binary Authorization 정책 모델 및 기타 개념에 대한 자세한 내용은 주요 개념을 참조하세요.
설정
Binary Authorization을 설정하려면 배포 및 승인 파이프라인을 구성하는 Google Cloud 프로젝트에 대해 서비스를 사용 설정해야 합니다.
그리고 컨테이너 이미지를 배포할 수 있는 제약조건을 지정하는 정책을 정의합니다. 배포 전에 정책에 증명이 필요한 경우 연결된 이미지의 배포를 허용하기 전에 증명을 확인할 수 있는 증명자를 설정해야 합니다.
Binary Authorization을 설정하려면 다음 가이드를 참조하세요.
- GKE에서 Binary Authorization 설정
- GKE 클러스터에서 Binary Authorization 설정(미리보기)
- Cloud Run에서 Binary Authorization 설정
승인
이미지를 배포하려면 먼저 필요한 서명자가 이미지를 다음 배포 단계로 이동할 준비가 되었는지 확인하는 증명을 만들어야 합니다. 증명은 이미지의 레지스트리 경로 및 다이제스트를 포함하고, 서명자의 비공개 암호화 키를 사용하여 디지털로 서명된 레코드입니다.
승인에 대한 자세한 내용은 증명 사용을 참조하세요.
적용
이미지를 배포할 때 Binary Authorization은 정책을 확인하고 배포를 제어하는 규칙을 적용합니다.
이미지가 정책에 정의된 제약조건을 통과하면 Binary Authorization이 이미지 배포를 허용합니다. 그렇지 않으면 서비스가 배포를 차단하고 이미지가 규정 준수를 벗어난 이유를 설명하는 메시지를 Cloud 감사 로그에 기록합니다.
Cloud 감사 로그에서 Binary Authorization 시행 이벤트를 보려면 다음 가이드를 참조하세요.
배포에 대한 자세한 내용은 다음 가이드를 참조하세요.
지속적 검증
검사 기반 플랫폼 정책을 사용한 지속적 검증(CV)은 지속적인 정책 준수를 위해 포드 실행과 연결된 컨테이너 이미지의 메타데이터를 정기적으로 확인하는 Binary Authorization 기능입니다.
VPC 서비스 제어를 사용하여 Binary Authorization 보호
VPC 서비스 제어는 Google 관리 서비스 및 리소스에서 데이터를 무단으로 복사하거나 전송하는 위험을 완화하는 데 도움을 줍니다.
Binary Authorization 관련 리소스의 보안에 대한 자세한 내용은 VPC 서비스 제어로 보안 설정을 참조하세요.
Software Delivery Shield
Binary Authorization은 Software Delivery Shield 솔루션의 일부입니다. Software Delivery Shield는 개발자 워크플로 및 도구의 보안 상태, 소프트웨어 종속 항목, 소프트웨어 빌드 및 배포에 사용되는 CI/CD 시스템, Google Kubernetes Engine 및 Cloud Run과 같은 런타임 환경 개선하는 데 도움이 되는 완전 관리형의 엔드 투 엔드 소프트웨어 공급망 보안 솔루션입니다. Software Delivery Shield의 다른 구성요소와 함께 Binary Authorization을 사용하여 소프트웨어 공급망의 보안 상태를 개선하는 방법을 알아보려면 Software Delivery Shield 개요를 참조하세요.
다음 단계
- 전체 엔드 투 엔드 튜토리얼은 다음을 참조하세요.
- Google Cloud 콘솔 또는 명령줄 도구를 사용하여 Cloud Service Mesh(미리보기)에 Binary Authorization 정책 구성