배포 보호

이 문서에서는 배포 보호를 위한 권장사항을 설명합니다.

배포 정책 만들기 및 시행

런타임 환경을 보호하려면 배포 기준으로 정책을 정의하고 배포 전후에 정책 규정 준수를 검증합니다. 사전 정의된 증명자가 서명한 코드만 허용하는 정책을 정의하면 배포를 통제하고 신뢰할 수 있는 원본의 코드만 배포할 수 있습니다.

배포 기준의 예시는 다음과 같습니다.

  • 심각도보다 심각도가 높은 알려진 취약점 없음
  • 신뢰할 수 있는 소스 저장소의 소스 코드
  • 신뢰할 수 있는 빌드 서비스가 빌드를 실행함
  • 배포하는 빌드 아티팩트는 신뢰할 수 있는 아티팩트 저장소입니다.

메타데이터 생성

이러한 요구사항을 검증하려면 빌드 아티팩트에 대한 메타데이터를 제공해야 합니다.

빌드 출처

빌드 출처는 빌드된 이미지의 다이제스트, 입력 소스 위치, 빌드 도구 모음, 빌드 기간 등 빌드에 대한 검증 가능한 데이터의 모음입니다. 보안 상태 평가를 위한 프레임워크인 SLSA출처의 모델출처의 요구사항을 제공합니다. 출처는 프레임워크의 요구사항 카테고리 중 하나이며, 각 요구사항은 SLSA 수준과 연결되므로 점진적으로 완화할 수 있습니다.

  • SLSA 수준 1 보증의 경우 출처를 제공해야 합니다.
  • SLSA 수준 2 보증의 경우 출처를 생성해야 하며 소비자는 신뢰성 및 무결성을 확인할 수 있어야 합니다.
  • SLSA 수준 3 및 4에는 출처 서명과 그 출처의 세부정보에 대한 엄격한 요구사항이 있습니다.

일부 빌드 서비스는 빌드 출처 메타데이터를 생성합니다.

  • Google Cloud에서 Cloud Build는 SLSA 수준 3 빌드를 지원하는 컨테이너 이미지의 빌드 출처를 생성하고 서명합니다.
  • SLSA 프레임워크는 GitHub 출처 도구를 제공합니다. 이 도구는 SLSA 수준 3의 빌드출처 카테고리의 요구사항을 충족하는 GitHub에서 위조할 수 없는 SLSA 출처를 생성합니다.
  • 오픈소스 sigstore 프로젝트에는 컨테이너 서명을 위한 cosign 도구가 포함되어 있습니다.
취약점

취약점 스캔 소프트웨어는 소스 코드를 확인하고 아티팩트에 알려진 취약점이 있는지를 확인합니다. Artifact Analysis는 Artifact Registry로 푸시된 컨테이너 이미지에 취약점이 있는지를 자동으로 스캔할 수 있습니다. 아티팩트를 저장하기 전에 아티팩트에 있는지 확인하려면 로컬 개발 환경에서 또는 Cloud Build 빌드 단계와 같은 CI/CD 파이프라인에서 On-Demand Scanning API를 사용할 수 있습니다.

정책 시행 설정

배포 가능한 아티팩트에 대한 메타데이터가 있으면 정책을 시행하는 도구가 필요합니다.

Google Cloud에서 배포를 위한 Binary Authorization의 정책을 구성할 수 있습니다. Binary Authorization은 지원되는 컨테이너 기반 플랫폼에 대한 배포 시도에 정책을 적용합니다. 또한 GKE, Cloud Run, GKE Enterprise에서 실행되는 워크로드에 대해 지속적인 정책 검증을 수행합니다.

사전 배포 검사는 제외된 이미지 목록에 없는 모든 이미지를 차단하므로, 신뢰할 수 있는 등록처의 신뢰할 수 있는 이미지만 배포됩니다. 또한 정책에는 특정 필수 프로세스를 통해 이미지가 성공적으로 빌드되었음을 나타내는 디지털 문서인 증명이 필요할 수 있습니다. 예를 들어 증명은 이미지가 다음과 같음을 나타낼 수 있습니다.

지속적 검증은 정책 검증을 배포 후 환경으로 확장합니다. Binary Authorization을 사용 설정하면 Cloud Logging에서 정책 적합성을 정기적으로 로깅하여 포드 수명 주기 전체에서 검증을 제공합니다. 이는 여러 상황에서 유용합니다. 예를 들어 컨테이너를 배포한 후 정책을 변경하면 지속적 검증은 업데이트된 정책을 위반하는 포드를 로깅합니다. 또한 테스트 실행 또는 breakglass로 배포된 포드의 정책 위반을 로깅합니다.

게이트 배포 서비스 사용

배포 게이트를 사용하면 독립형 CI/CD 서비스 또는 프로세스 자동화 시스템과 통합된 CI/CD 서비스를 사용하여 배포 프로세스의 특정 지점에서 배포를 승인 또는 거부할 수 있습니다. 게이트 배포는 승인되지 않은 사용자가 애플리케이션 환경을 변경하지 못하게 합니다. 또한 배포 프로세스에 대한 추가 감독과 승인에 대한 가시성을 제공합니다.

Google Cloud에서 Cloud Deploy는 Google Kubernetes Engine에 워크로드를 배포하기 위한 완전 관리형 서비스를 제공합니다. 게이트 배포 기능을 사용하면 사용자는 대상으로 승격하기 위해 승인이 필요한지 여부를 지정할 수 있습니다.

워크로드 모니터링

워크로드는 GKE 및 Cloud Run과 같은 컨테이너 기반 플랫폼에서 실행되는 애플리케이션입니다. 배포하는 워크로드는 공격에 노출되는 영역을 제한하는 강화된 구성이 있는 것이 이상적입니다.

클러스터에서 워크로드를 검사하여 구성 문제를 확인하는 것은 대규모인 경우 수동으로 수행하기 어려울 수 있습니다. Software Delivery Shield는 Google Cloud의 완전 관리형 소프트웨어 공급망 보안 솔루션으로, Google Cloud 콘솔의 Cloud Run 및 GKE UI에서 대시보드를 제공하여 워크로드의 보안 통계를 확인합니다.

GKE 보안 상태 대시보드는 Google의 권장사항에 따라 클러스터의 보안 상태를 강화하기 위한 지침을 제공합니다. 여기에는 모든 워크로드에서 알려진 구성 문제를 확인하는 자동 워크로드 구성 스캔이 포함됩니다. GKE는 배포된 각 워크로드를 포드 보안 표준의 정책과 같은 관련 권장사항과 대조합니다. GKE에서 발견된 문제의 심각도를 평가하고 활용 가능한 권장사항과 로그를 반환합니다. Cloud Logging을 사용하면 감사 및 관측 가능성을 개선할 수 있도록 감사 가능한 문제를 추적할 수 있습니다. GKE 보안 상태 대시보드에서 보안 통계를 보는 방법은 GKE에 배포 및 보안 통계 보기를 참조하세요.

Cloud Run에는 보안 패널이 포함되어 있습니다. 이 패널은 SLSA 빌드 수준 규정 준수 정보, 빌드 출처, 실행 중인 서비스에서 발견된 취약점과 같은 소프트웨어 공급망 보안 통계를 표시합니다. Cloud Run 보안 통계 패널에서 보안 통계를 보는 방법은 Cloud Run에 배포 및 보안 통계 보기를 참조하세요.

Software Delivery Shield는 소프트웨어 개발 수명 주기 전반에서 보안 상태를 개선하기 위한 기타 서비스와 기능도 제공합니다. 자세한 내용은 Software Delivery Shield 개요를 참조하세요.

다음 단계