특정 비즈니스 요구를 충족하기 위해 아티팩트 분석에 자체 메타데이터를 제공할 수 있습니다. 예를 들어 고객의 Docker 컨테이너에 보안 관리를 제공하는 조직은 아티팩트 분석을 사용하여 이러한 이미지의 보안 관련 메타데이터를 저장 및 검색할 수 있습니다.
Artifact Analysis API를 사용하여 이미지의 맞춤 취약점 메타데이터를 제공하려면 다음 단계를 따르세요. 동일한 지침에 따라 Artifact Analysis가 지원하는 종류의 메타데이터를 저장하고 검색할 수 있습니다.
시작하기 전에
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Container Analysis API.
- 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.
-
Enable the Container Analysis API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 프로젝트의 메타데이터에 대한 액세스 제어를 설정하는 방법을 알아보세요. Artifact Analysis 컨테이너 스캔으로 생성된 취약점 어커런스의 메타데이터만 사용하는 경우 이 단계를 건너뜁니다.
프로젝트에 대한 메모 및 어커런스 만들기
이 섹션에서는 메모 및 어커런스를 만드는 방법을 설명합니다. 이 예에서는 VULNERABILITY
종류를 사용합니다.
제공자는 프로젝트에서 취약점마다 메모를 작성하며, 취약점 발생에 대한 어커런스를 고객의 프로젝트에서 작성합니다.
메모 만들기
다음 단계에 따라 메모를 만들고 메모 ID를 지정합니다.
API
취약점 설명과 세부정보가 포함된
note.json
이라는 파일을 만듭니다. 다음 코드는note.json
파일의 예시를 보여줍니다.{ "shortDescription": "A brief Description of the note", "longDescription": "A longer description of the note", "kind": "VULNERABILITY", "vulnerability": { "details": [ { "affectedPackage": "libexempi3", "affectedCpeUri": "cpe:/o:debian:debian_linux:7", "affectedVersionStart": { "name": "2.5.7", "revision": "1", "kind": "MINIMUM"}, "affectedVersionEnd": { "name": "2.5.9", "revision": "1", "kind": "MINIMUM"}, }, { "affectedCpeUri": "cpe:/o:debian:abc:10", "affectedPackage": "anotherPackage", } ] } }
메모 JSON 표현에 관한 자세한 내용은 메모 API 문서를 참고하세요.
다음 curl 명령어를 실행하여 메모를 만듭니다.
curl -v -H "Content-Type: application/json" -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ https://containeranalysis.googleapis.com/v1/projects/PROVIDER_PROJECT_ID/notes?note_id=NOTE_ID -d @note.json
각 항목의 의미는 다음과 같습니다.
- PROVIDER_PROJECT_ID는 프로젝트 ID입니다.
- NOTE_ID는 메모의 식별자를 지정합니다. 최대 길이가 100자인 문자열을 사용하세요.
Java
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Java API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Go API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Node.js API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Ruby API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Python API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
메모에 대한 어커런스 만들기
메모에 대한 어커런스 생성 방법:
API
다음 콘텐츠로
occurrence.json
라는 파일을 만듭니다.{ "resourceUri": "<resource_url>", "noteName": "projects/<provider-project-id>/notes/<note_id>", "kind": "VULNERABILITY", "vulnerability": { "packageIssue": [{ "affectedCpeUri": "cpe:/o:debian_linux:7", "affectedPackage": "packageName", "affectedVersion": { "kind": "NORMAL", "name": "8.1", "revision": "3" }, "fixedCpeUri": "cpe:/o:debian_linux:7", "fixedPackage": "packageName", "fixedVersion": { "kind": "MAXIMUM" } }] "severity": "LOW" } }
각 항목의 의미는 다음과 같습니다.
- resource_url는 발생과 연결된 리소스의 URL입니다(예:
https://us-central1-docker.pkg.dev/my-project/my-repository/my-image@sha256:123
). - note_id는 메모의 식별자를 지정합니다. 최대 길이가 100자인 문자열을 사용하세요.
발생 횟수 JSON 표현에 관한 자세한 내용은 occurrences API 문서를 참고하세요.
- resource_url는 발생과 연결된 리소스의 URL입니다(예:
다음 curl 명령어를 실행합니다. 여기서 CUSTOMER_PROJECT_ID는 고객의 프로젝트 ID입니다.
curl -v -H "Content-Type: application/json" -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ https://containeranalysis.googleapis.com/v1/projects/CUSTOMER_PROJECT_ID/occurrences -d @occurrence.json
Java
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Java API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Go API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Node.js API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Ruby API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Python API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
특정 메모의 어커런스 모두 가져오기
notes.occurrences.list()
를 사용하면 고객의 전체 프로젝트에서 특정 취약점의 어커런스를 모두 확인할 수 있습니다.
API
메모의 어커런스를 모두 나열하려면 다음과 같은 GET 요청을 보내야 합니다.
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/notes/NOTE_ID/occurrences
자세한 내용은 projects.notes.occurrences.list
API 엔드포인트를 참조하세요.
Java
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Java API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Go API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Node.js API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Ruby API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
아티팩트 분석용 클라이언트 라이브러리를 설치하고 사용하는 방법은 아티팩트 분석 클라이언트 라이브러리를 참고하세요. 자세한 내용은 Artifact Analysis Python API 참조 문서를 참고하세요.
Artifact Analysis에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
다음 단계
컨테이너 이미지의 메모 및 어커런스를 확인하고 필터링하는 방법은 취약점 어커런스 보기를 참고하세요.
알림을 설정하는 방법은 Pub/Sub 알림을 참고하세요.