애플리케이션 빌드 및 보안 통계 보기
이 빠른 시작에서는 Google Cloud 콘솔의 보안 통계 패널에서 애플리케이션을 빌드하고 빌드에 대한 보안 통계를 확인하는 방법을 설명합니다.
실습할 내용은 다음과 같습니다.
- Cloud Build를 사용하여 Java 애플리케이션을 빌드 및 컨테이너화하고 컨테이너 이미지를 Artifact Registry Docker 저장소에 푸시합니다.
- 빌드에 대한 다음 보안 통계를 확인합니다. - SLSA(Supply-chain Levels for Software Artifacts) 수준: SLSA 사양에 따라 소프트웨어 빌드 프로세스의 성숙도 수준을 식별합니다.
- 빌드 아티팩트의 취약점
- 빌드 아티팩트에 대한 소프트웨어 재료명세서(SBOM)
- 빌드 출처 기록: 빌드에 대한 검증 가능한 메타데이터의 모음. 빌드된 이미지의 다이제스트, 입력 소스 위치, 빌드 도구 모음, 빌드 단계, 빌드 기간과 같은 세부정보가 포함됩니다.
 
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- 
      Install the Google Cloud CLI. 
- 
          외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다. 
- 
        gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다. gcloud init
- 
  
  
    Create or select a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 - 
        Create a Google Cloud project: gcloud projects create PROJECT_ID Replace PROJECT_IDwith a name for the Google Cloud project you are creating.
- 
        Select the Google Cloud project that you created: gcloud config set project PROJECT_ID Replace PROJECT_IDwith your Google Cloud project name.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Cloud Build, Artifact Registry, and Container Scanning APIs: Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudbuild.googleapis.com artifactregistry.googleapis.com containerscanning.googleapis.com 
- 
      Install the Google Cloud CLI. 
- 
          외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다. 
- 
        gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다. gcloud init
- 
  
  
    Create or select a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 - 
        Create a Google Cloud project: gcloud projects create PROJECT_ID Replace PROJECT_IDwith a name for the Google Cloud project you are creating.
- 
        Select the Google Cloud project that you created: gcloud config set project PROJECT_ID Replace PROJECT_IDwith your Google Cloud project name.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Cloud Build, Artifact Registry, and Container Scanning APIs: Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudbuild.googleapis.com artifactregistry.googleapis.com containerscanning.googleapis.com 
- 프로젝트 ID를 환경 변수로 설정합니다. - export PROJECT_ID=$(gcloud config get project)
- 빌드 및 컨테이너화를 위한 Java 코드 샘플이 포함된 저장소를 클론합니다. - git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git cd software-delivery-shield-demo-java/backend
- us-central1위치에 'Docker 저장소' 설명과 함께- containers라는 새 Docker 저장소를 만듭니다.- gcloud artifacts repositories create containers \ --repository-format=docker \ --location=us-central1 --description="Docker repository"
- 저장소가 만들어졌는지 확인합니다. - gcloud artifacts repositories list- 표시된 저장소 목록에 - containers가 표시됩니다.
- Google Cloud 콘솔에서 빌드 기록 페이지를 엽니다. 
- 프로젝트를 선택하고 열기를 클릭합니다. 
- 리전 드롭다운 메뉴에서 us-central1을 선택합니다. 
- 빌드가 포함된 테이블에서 바로 전에 실행한 빌드가 포함된 행을 찾습니다. 
- 보안 통계 열에서 보기를 클릭합니다. 
- SLSA 등급: 이 빌드는 SLSA 등급 3을 달성했습니다. 이 보안 수준이 어떤 의미인지 알아보려면 자세히 알아보기 링크를 클릭합니다. 
- 취약점: 아티팩트에서 발견된 모든 취약점. 이미지 이름(java-guestbook-backend)을 클릭하여 취약점이 스캔된 아티팩트를 확인합니다. 
- Artifact Registry에서 빌드된 컨테이너 이미지의 종속 항목입니다. 
- 빌드 세부정보: 빌더 및 로그 보기 링크와 같은 빌드 세부정보. 
- Container Scanning API를 사용 중지합니다. - gcloud services disable containerscanning.googleapis.com --force
- Artifact Registry 저장소를 삭제합니다. - gcloud artifacts repositories delete containers \ --location=us-central1 --async- 이제 이 빠른 시작의 일부로 만든 이미지가 저장소가 삭제되었습니다. 
- Cloud Build의 보안 통계 패널에 대해 자세히 알아보기
- Cloud Run에 배포할 때 보안 통계를 보는 방법 알아보기
- GKE에 배포할 때 보안 통계를 보는 방법 알아보기
- 소프트웨어 공급망 보안 자세히 알아보기
개발 환경 준비
이미지의 Artifact Registry 저장소 만들기
애플리케이션 빌드
Cloud Build를 사용하여 Java 애플리케이션을 빌드하고 컨테이너화합니다. 다음 명령어는 Java 애플리케이션을 빌드 및 컨테이너화하고 빌드한 컨테이너를 Artifact Registry Docker 저장소에 저장합니다.
gcloud builds submit --config=cloudbuild.yaml --region=us-central1
빌드가 완료되면 다음과 비슷한 성공 상태 메시지가 표시됩니다.
<pre class="none lang-sh">
DONE
-----------------------------------------------------------------------------
ID: 3e08565f-7f57-4449-bc68-51c46cf33d03
CREATE_TIME: 2022-09-19T15:41:07+00:00
DURATION: 54S
SOURCE: gs://sds-docs-project_cloudbuild/source/1663602066.777581-6ebe4b2d6fd741ffa18936d7f78055e9.tgz
IMAGES: us-central1-docker.pkg.dev/sds-docs-project/containers/java-guestbook-backend:quickstart
STATUS: SUCCESS
</pre>
빌드된 이미지에 대한 SBOM 생성
SBOM은 소프트웨어에서 사용하는 전체 패키지를 식별하는 애플리케이션의 전체 인벤토리입니다. 이러한 콘텐츠에는 공급업체의 서드 파티 소프트웨어, 내부 아티팩트, 오픈소스 라이브러리가 포함될 수 있습니다.
이전 섹션에서 빌드한 이미지의 SBOM을 생성합니다.
gcloud artifacts sbom export \
    --uri=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart
보안 통계 보기
Google Cloud 콘솔의 Cloud Build UI에는 SLSA 수준, 종속 항목의 취약점, 빌드 출처 기록 등 빌드와 관련된 보안 정보를 표시하는 보안 통계 패널이 있습니다.
보안 통계 패널을 보려면 다음 안내를 따르세요.
빌드에 대한 보안 통계 패널이 표시됩니다.
 
 
이 패널에는 다음과 같은 정보가 표시됩니다.
삭제
이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 Google Cloud 프로젝트를 삭제합니다.