이 문서에서는 배포를 보호하기 위한 권장사항을 설명합니다.
배포 정책 만들기 및 시행
런타임 환경을 보호하려면 배포 기준을 사용하여 정책을 정의하고 배포 전후에 정책 준수를 검증합니다. 사전 정의된 증명자가 서명한 코드만 허용하는 정책을 정의하면 배포를 제한하고 신뢰할 수 있는 출처의 코드만 배포하는 데 도움이 됩니다.
배포 기준의 예는 다음과 같습니다.
- 심각도가 중간 이상인 알려진 취약점 없음
- 소스 코드가 신뢰할 수 있는 소스 저장소에서 가져온 것임
- 신뢰할 수 있는 빌드 서비스가 빌드를 실행함
- 배포 중인 빌드 아티팩트가 신뢰할 수 있는 아티팩트 저장소에서 가져온 것임
메타데이터 생성
이러한 요구사항을 검증하려면 빌드 아티팩트에 관한 메타데이터를 제공해야 합니다.
- 빌드 출처
빌드 출처는 빌드된 이미지의 다이제스트, 입력 소스 위치, 빌드 도구 모음, 빌드 기간과 같은 빌드에 대한 검증 가능한 데이터 모음입니다. 보안 상태를 평가하기 위한 프레임워크인 SLSA는 출처 모델과 출처 요구사항을 제공합니다. 출처는 프레임워크의 요구사항 카테고리 중 하나이며, 각 요구사항은 완화 조치를 점진적으로 구현할 수 있도록 SLSA 수준과 연결됩니다.
- SLSA 수준 1 보증의 경우 출처를 사용할 수 있어야 합니다.
- SLSA 레벨 2 보증의 경우 출처가 생성되어야 하며 소비자가 출처의 진위성과 무결성을 확인할 수 있어야 합니다.
- SLSA 수준 3 및 4는 출처 서명 및 출처 데이터 세부정보의 깊이에 대한 요구사항이 더 엄격합니다.
일부 빌드 서비스는 빌드 출처 기록 메타데이터를 생성합니다.
- Google Cloud에서 Cloud Build는 SLSA 수준 3 빌드를 지원하는 컨테이너 이미지의 빌드 출처를 생성하고 서명합니다.
- SLSA 프레임워크는 GitHub 출처 도구를 제공합니다. 이 도구는 SLSA 수준 3의 빌드 및 출처 카테고리의 요구사항을 충족하는 위조할 수 없는 SLSA 출처를 GitHub에서 생성합니다.
- 오픈소스 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에서 실행되는 워크로드에 대해 지속적인 정책 검증을 수행합니다.
사전 배포 검사는 제외된 이미지 목록에 없는 모든 이미지를 차단하므로, 신뢰할 수 있는 등록처의 신뢰할 수 있는 이미지만 배포됩니다. 정책에 특정 필수 프로세스로 이미지가 성공적으로 빌드되었음을 나타내는 디지털 문서인 증명이 요구될 수도 있습니다. 예를 들어 증명으로 이미지에 대한 다음과 같은 사실을 확인할 수 있습니다.
- Cloud Build로 빌드됨
- 지정된 심각도보다 높은 취약점이 포함되어 있지 않습니다. 애플리케이션에 적용되지 않는 특정 취약점이 있는 경우 허용 목록에 추가할 수 있습니다.
지속적 검증은 정책 검증을 배포 후 환경으로 확장합니다. Binary Authorization을 사용 설정하면 Cloud Logging에서 정책 적합성을 정기적으로 로깅하여 포드 수명 주기 전체에서 검증을 제공합니다. 이는 다양한 상황에서 유용합니다. 예를 들어 컨테이너를 배포한 후 정책을 변경하면 지속적 검증은 업데이트된 정책을 위반하는 포드를 로깅합니다. 또한 테스트 실행 또는 breakglass로 배포된 포드의 정책 위반을 로깅합니다.
게이트 배포 서비스 사용
배포 게이트를 사용하면 독립형 CI/CD 서비스 또는 프로세스 자동화 시스템과 통합된 CI/CD 서비스를 사용하여 배포 프로세스의 특정 지점에서 배포를 승인하거나 거부할 수 있습니다. 게이트된 배포를 사용하면 승인되지 않은 사용자가 애플리케이션 환경을 변경하지 못하도록 할 수 있습니다. 또한 배포 프로세스에 대한 추가 감독과 승인에 대한 가시성을 제공합니다.
Google Cloud에서 Cloud Deploy는 Google Kubernetes Engine에 워크로드를 배포하기 위한 완전 관리형 서비스를 제공합니다. 게이트 배포 기능을 사용하면 사용자는 대상으로 승격하기 위해 승인이 필요한지 여부를 지정할 수 있습니다.
워크로드 모니터링
워크로드는 GKE 및 Cloud Run과 같은 컨테이너 기반 플랫폼에서 실행되는 애플리케이션입니다. 배포하는 워크로드는 공격 노출 영역을 제한하는 강화된 구성이 있어야 합니다.
클러스터에서 워크로드를 검사하여 구성 문제를 확인하는 것은 대규모인 경우 수동으로 수행하기 어려울 수 있습니다. Google Cloud는 Cloud Run 및 GKE에서 워크로드의 보안 통계를 확인할 수 있는 대시보드를 제공합니다.
GKE 보안 상황 대시보드는 Google 권장사항에 따라 클러스터의 보안 상황을 강화하기 위한 안내를 제공합니다. 여기에는 모든 워크로드에서 알려진 구성 문제를 확인하는 자동 워크로드 구성 스캔이 포함됩니다. GKE는 배포된 각 워크로드를 포드 보안 표준의 정책과 같은 관련 권장사항과 대조합니다. GKE에서 발견된 문제의 심각도를 평가하고 활용 가능한 권장사항과 로그를 반환합니다. Cloud Logging을 사용하면 감사 및 관측 가능성을 개선할 수 있도록 감사 가능한 문제를 추적할 수 있습니다. GKE 보안 상황 대시보드에서 보안 통계를 보는 방법에 관한 안내는 GKE에 배포 및 보안 통계 보기를 참고하세요.
Cloud Run에는 보안 패널이 포함되어 있습니다. 이 패널은 SLSA 빌드 수준 규정 준수 정보, 빌드 출처, 실행 중인 서비스에서 발견된 취약점과 같은 소프트웨어 공급망 보안 통계를 표시합니다. Cloud Run 보안 통계 패널에서 보안 통계를 보는 방법은 Cloud Run에 배포 및 보안 통계 보기를 참고하세요.
Google Cloud는 소프트웨어 개발 수명 주기 전반에서 보안 상황을 개선하는 기타 서비스와 기능도 제공합니다. 자세한 내용은 소프트웨어 공급망 개요를 참고하세요.
다음 단계
- 소스 코드 보호를 위한 권장사항 알아보기
- 종속 항목 보호를 위한 권장사항 알아보기
- 빌드 보호를 위한 권장사항 알아보기