이 페이지에서는 Artifact Registry에 저장하는 컨테이너 이미지의 구성요소를 추적하고 증명하는 데 도움이 되도록 소프트웨어 재료명세서 (SBOM) 파일을 Cloud Storage에 업로드하는 방법을 설명합니다.
Cloud Storage 가격에 대한 자세한 내용은 가격 책정을 참고하세요.
시작하기 전에
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Container Analysis APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Container Analysis APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- SBOM에서 설명하는 컨테이너 이미지가 포함된 Docker 저장소가 Artifact Registry에 있어야 합니다. Artifact Registry에 익숙하지 않다면 Docker 빠른 시작을 참고하세요.
- 지원되는 형식 중 하나로 업로드할 SBOM 파일을 준비합니다.
필요한 역할
Cloud Storage 버킷과 SBOM 파일을 만들고 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
기본 Cloud Storage 버킷을 사용하는 경우 스토리지 버킷을 관리하려면 다음을 실행합니다.
스토리지 관리자(
roles/storage.admin
) -
Cloud Storage 버킷을 지정하는 경우 스토리지 버킷을 관리하려면 다음을 실행합니다.
스토리지 객체 관리자(
roles/storage.objectAdmin
) -
SBOM 참조에 관한 메모가 이미 있는 경우:
컨테이너 분석 메모 연결자 (
roles/containeranalysis.notes.attacher
) -
현재 프로젝트에서 SBOM 참조 어커런스에 관한 새 메모를 만들려면 다음 단계를 따르세요.
컨테이너 분석 메모 편집기(
(roles/containeranalysis.notes.editor
) -
SBOM 참조 어커런스를 만들려면 다음 단계를 따르세요.
컨테이너 분석 어커런스 편집기(
roles/containeranalysis.occurrences.editor
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
지원되는 형식
SBOM 파일은 다음 형식 중 하나의 JSON 파일이어야 합니다.
- Software Package Data Exchange (SPDX) 버전 2.2 또는 2.3
- CycloneDX 버전 1.4 또는 1.5
SBOM 업로드
다음 명령어를 사용하여 SBOM을 업로드합니다.
gcloud artifacts sbom load /
--source SOURCE /
--uri URI
각 항목의 의미는 다음과 같습니다.
- SOURCE: 업로드할 SBOM 파일의 경로입니다.
- URI: SBOM 파일에서 설명하는 Docker 이미지의 URI입니다. 이미지는 태그 형식 또는 다이제스트 형식일 수 있습니다. 태그 형식으로 제공된 이미지는 다이제스트 형식으로 확인됩니다.
선택적 플래그
--destination
: 기본 버킷 대신 사용할 Cloud Storage 버킷을 지정합니다.--kms-key-version
: SBOM 참조 발생 페이로드를 서명하는 키 버전을 제공합니다. 이 키를 사용하여 SBOM의 출처를 확인할 수 있습니다.
예를 들어 다음 명령어는 태그된 이미지 us-east1-docker.pkg.dev/my-image-repo/my-image
에서 생성된 JSON 파일 my-sbom.bom.json
를 업로드하고 my-key/cryptoKeyVersions/1
로 끝나는 KMS 키 버전으로 SBOM 참조 발생을 서명합니다.
gcloud artifacts sbom load /
--source=my-sbom.bom.json
--uri=us-east1-docker.pkg.dev/my-image-repo/my-image
--kms-key-version=projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1
다음 명령어는 이미지 다이제스트 my-local-image@sha256:abcxyz
와 연결된 JSON 파일 my-sbom.spdx.json
를 업로드하고 Cloud Storage 버킷 gs://my-sbom-bucket
에 파일을 저장합니다.
gcloud artifacts sbom load /
--source=my-sbom.spdx.json /
--uri=my-local-image@sha256:abcxyz /
--destination=gs://my-sbom-bucket
Artifact Analysis는 SBOM을 Cloud Storage에 업로드하고 SBOM 참조 발생을 만듭니다.
Google Cloud 콘솔 또는 gcloud CLI를 사용하여 SBOM을 볼 수 있습니다. SBOM이 포함된 Cloud Storage 버킷을 찾으려면 gcloud CLI를 사용하여 SBOM을 검색해야 합니다.