애플리케이션 빌드 및 보안 통계 보기
이 빠른 시작에서는 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.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with 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.enable
permission. 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.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with 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.enable
permission. 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 프로젝트를 삭제합니다.