Software Delivery Shield 시작하기

이 문서에서는 Software Delivery Shield에 API를 사용 설정하는 방법과 보안 통계를 보는 데 필요한 권한을 설명합니다. Software Delivery Shield는 Google Cloud의 완전 관리형 소프트웨어 공급망 보안 솔루션입니다.

통계에 필요한 API 사용 설정

소프트웨어 공급망 통계를 수집하고 확인하려면 다음 API가 필요합니다.

  • 다른 Google Cloud 서비스에서 생성 및 사용하는 메타데이터를 저장하는 Container Analysis API.
  • Artifact Registry에 저장된 컨테이너 이미지를 검사하여 취약점 및 기타 메타데이터를 스캔하는 Container Scanning API. 이 API를 사용 설정하면 Container Analysis API가 자동으로 사용 설정됩니다.
  • Artifact Registry는 빌드 아티팩트를 저장합니다. 1
  • Cloud Build를 사용하여 빌드 출처 메타데이터를 생성합니다.
  • (GKE만 해당) 실행 중인 워크로드에서 OS 취약점을 스캔하는 Container Security API.

Artifact Registry와 동일한 Google Cloud 프로젝트에서 Container Scanning API를 실행해야 합니다. 별도의 프로젝트에서 레지스트리를 사용하는 다른 Google Cloud 서비스를 실행할 수 있습니다.

1 Container Registry는 Container Scanning API를 통해 자동으로 사용 설정됩니다. Software Delivery Shield는 기존 기능의 제한된 데이터를 제공하며 비공개 미리보기의 일부 기능은 지원하지 않습니다. 현재 Container Registry를 사용 중이면 Artifact Registry로 전환하는 것이 좋습니다.

통계를 생성하고 보는 데 필요한 API를 사용 설정하려면 다음 안내를 따르세요.

콘솔

동일한 프로젝트의 모든 서비스 사용

필요한 API를 함께 사용 설정합니다.

API 사용 설정

별도의 프로젝트 사용

  1. Artifact Registry를 실행할 프로젝트에서 Container Scanning 및 Artifact Registry를 사용 설정합니다.

    API 사용 설정

  2. Cloud Build를 실행 중인 프로젝트에서 Cloud Build API를 사용 설정합니다.

    Cloud Build 사용 설정

  3. GKE를 실행하는 프로젝트에서 Container Security API를 사용 설정합니다.

    컨테이너 보안 사용 설정

Google Cloud CLI

동일한 프로젝트의 모든 서비스 사용

필요한 API를 함께 사용 설정합니다.

gcloud services enable containerscanning.googleapis.com \
    cloudbuild.googleapis.com \
    artifactregistry.googleapis.com \
    containersecurity.googleapis.com

별도의 프로젝트 사용

  1. Artifact Registry를 실행할 프로젝트에서 Container Scanning 및 Artifact Registry를 사용 설정합니다. AR_PROJECT를 적절한 Google Cloud 프로젝트 ID로 바꿉니다.

    gcloud services enable containerscanning.googleapis.com \
        artifactregistry.googleapis.com \
        --project=AR_PROJECT
    
  2. Cloud Build를 실행 중인 프로젝트에서 Cloud Build API를 사용 설정합니다. BUILD_PROJECT를 적절한 Google Cloud 프로젝트 ID로 바꿉니다.

    gcloud services enable cloudbuild.googleapis.com \
        --project=BUILD_PROJECT
    
  3. GKE를 실행하는 프로젝트에서 Container Security API를 사용 설정합니다. GKE_PROJECT를 적절한 Google Cloud 프로젝트 ID로 바꿉니다.

    gcloud services enable containersecurity.googleapis.com \
         --project=BUILD_PROJECT
    

Software Delivery Shield 패널과 Google Cloud 콘솔의 GKE 보안 상태 대시보드에서 통계를 생성하고 보려면 최소 필수 API를 사용 설정해야 합니다.

API 라이브러리 또는 gcloud services enable 명령어를 사용하여 다른 서비스에 API를 사용 설정할 수 있습니다.

통계 보기 권한 부여

Google Cloud 콘솔에서 Software Delivery Shield 통계를 보려면 다음 역할 또는 이에 상응하는 권한이 있는 역할이 있어야 합니다.

이러한 권한은 통계에 대한 액세스를 제공하지만 Cloud Build에서 빌드 실행과 같은 다른 작업을 수행할 수 있는 권한은 제공하지 않습니다.

  • 특정 서비스에 필요한 권한에 대한 자세한 내용은 해당 서비스의 문서를 참조하세요.
  • 권한 부여에 대한 자세한 내용은 프로젝트에 권한 부여에 대한 Identity and Access Management 문서를 참조하세요.

기본적으로 많은 서비스에 동일한 프로젝트의 다른 서비스에 대한 기본 권한이 있지만 다른 프로젝트의 리소스에는 액세스할 수 없습니다. 다른 Google Cloud 프로젝트에서 서비스를 실행하거나 커스텀 IAM 역할 또는 커스텀 서비스 계정을 사용하는 경우 적절한 권한을 직접 부여해야 합니다.

예 1

Cloud Build, Artifact Registry, 컨테이너 분석, Cloud Run은 모두 동일한 프로젝트에서 실행됩니다. 각 서비스는 기본 서비스 계정을 사용하여 서비스 대신 작동하며, 기본 권한은 변경되지 않습니다. 서비스는 모두 권한 변경 없이 함께 작동할 수 있지만 프로젝트에서 통계를 확인해야 하는 사용자에게 권한을 부여해야 합니다.

서비스 간 권한

변경하지 않아도 됩니다.

  • 기본 Cloud Build 서비스 계정에는 Artifact Registry로 업로드 및 다운로드하고 컨테이너 분석에서 통계 데이터를 읽을 수 있는 권한이 있으므로, 서비스가 빌드 출처로 컨테이너 이미지에 서명하고 Artifact Registry로 내보낼 수 있습니다.
  • Cloud Run 버전은 Artifact Registry에서 이미지를 다운로드하고 컨테이너 분석에서 통계 데이터를 읽을 수 있는 권한이 있는 Compute Engine 기본 서비스 계정을 사용합니다.
통계를 볼 수 있는 사용자 권한

통계를 보려면 Cloud Build 및 Cloud Run 사용자에게 필수 역할을 부여해야 합니다.

예 2

Artifact Registry와 컨테이너 분석이 다른 Google Cloud 서비스와 별도의 프로젝트에서 실행되는 경우 모든 프로젝트 간 작업에 대한 권한을 명시적으로 부여해야 합니다. 다음 프로젝트 설정을 고려하세요.

  • 프로젝트 A에서 Cloud Build 실행
  • 프로젝트 B에서 Artifact Registry 및 컨테이너 분석 실행
  • 프로젝트 C에서 Cloud Run 실행
서비스 간 권한

Cloud Build 및 Cloud Run은 이러한 서비스를 대신하여 작동하는 서비스 계정에 명시적으로 액세스 권한을 부여하지 않으면 다른 프로젝트의 리소스에 액세스할 수 없습니다. 아티팩트 및 아티팩트 메타데이터가 저장된 프로젝트 B에서 적절한 Artifact Registry 권한컨테이너 분석 권한을 부여해야 합니다.

Cloud Build의 경우 프로젝트 B에서 다음 역할을 부여해야 합니다.

  • Artifact Registry 작성자(roles/artifactregistry.writer)는 업로드 및 다운로드 권한을 부여합니다.
  • 컨테이너 분석 어커런스 뷰어(roles/containeranalysis.occurrences.viewer)는 통계를 표시할 수 있는 권한을 부여합니다.

Cloud Run의 경우 프로젝트 B에서 다음 역할을 부여해야 합니다.

  • Artifact Registry 리더(roles/artifactregistry.reader)는 배포를 위해 다운로드할 수 있는 권한을 부여합니다.
  • 컨테이너 분석 어커런스 뷰어(roles/containeranalysis.occurrences.viewer)는 통계를 표시할 수 있는 권한을 부여합니다.
통계를 볼 수 있는 사용자 권한

프로젝트 B에서 Cloud Build 및 Cloud Run 사용자에게 필수 역할 뷰 통계를 부여해야 합니다.

다음 단계