Java 패키지 자동 스캔
자동 스캔을 사용 설정하고, Artifact Registry에 컨테이너 이미지를 푸시하고, 이미지에서 발견된 취약점 목록을 확인하는 방법을 알아보세요.
Artifact Analysis는 이미지가 Artifact Registry에 푸시될 때마다 취약점을 스캔합니다. 플랫폼 관리자와 애플리케이션 개발자는 이 자동 스캔 기능을 사용하여 소프트웨어 제공 파이프라인의 위험을 식별할 수 있습니다.
이 빠른 시작에서는 간단한 공개 패키지를 사용하여 한 가지 유형의 패키지 검사를 보여줍니다. 기본적으로 Artifact Analysis는 스캔 API를 사용 설정하면 여러 패키지 유형의 취약점을 스캔합니다. 지원되는 패키지 유형에는 OS, Go, Java (Maven), Python, Node.js (npm)가 있습니다.
시작하기 전에
- 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 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 containerscanning.googleapis.com
artifactregistry.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 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 containerscanning.googleapis.com
artifactregistry.googleapis.com Google Cloud 콘솔에서 저장소 페이지를 엽니다.
저장소 만들기를 클릭합니다.
저장소 만들기 페이지에서 다음 설정을 입력합니다.
- 이름:
quickstart-docker-repo
- 형식: Docker
- 모드: 표준
- 위치 유형: 리전
- 리전:
us-central1
- 이름:
만들기를 클릭합니다.
컨테이너 이미지를 저장할 디렉터리로 변경합니다.
이미지를 로컬 디렉터리에 복사합니다. 예를 들어 Docker를 사용하여 Docker Hub에서 최신 Jenkins 이미지를 가져올 수 있습니다.
docker pull jenkins:2.60.3-alpine
- PROJECT는 Google Cloud
프로젝트 ID입니다.
프로젝트 ID에 콜론 (
:
)이 포함되어 있으면 도메인 범위 프로젝트를 참고하세요. us-central1
은 Artifact Registry 저장소 리전입니다.docker.pkg.dev
는 Docker 저장소의 호스트 이름입니다.quickstart-image
는 저장소에서 사용할 이미지 이름입니다. 이미지 이름은 로컬 이미지 이름과 다를 수 있습니다.tag1
은 Docker 이미지에 추가할 태그입니다. 태그를 지정하지 않으면 기본 태그인latest
가 적용됩니다.저장소 목록을 가져옵니다.
저장소 목록에서 저장소를 클릭합니다.
이미지 목록에서 이미지 이름을 클릭합니다.
각 이미지 다이제스트의 취약점 합계가 취약점 열에 표시됩니다.
이미지의 취약점 목록을 보려면 취약점 열에 있는 링크를 클릭하세요.
스캔 결과 섹션에는 스캔된 패키지 유형, 총 취약점, 수정사항이 있는 취약점, 수정사항이 없는 취약점, 효과적인 심각도의 요약이 표시됩니다.
취약점 표에는 발견된 각 취약점의 일반적인 취약점 및 노출(CVE) 이름, 실제 심각도, 일반적인 취약점 등급 시스템 (CVSS) 점수, 수정사항 (사용 가능한 경우), 취약점이 포함된 패키지의 이름, 패키지 유형이 나열됩니다.
Google Cloud 콘솔에는 이 표에 페이지당 최대 1,200개의 취약점이 표시됩니다. 이러한 파일을 필터링하고 정렬하여 파일 확장자별로 특정 파일, 디렉터리, 레이어 또는 파일 유형을 확인할 수 있습니다.
특정 CVE에 대한 자세한 내용을 보려면 CVE 이름을 클릭하세요.
버전 번호 및 영향을 받는 위치와 같은 취약점 발생 세부정보를 보려면 취약점 이름이 있는 행에서 보기 또는 수정된 항목 보기를 클릭합니다. 수정사항이 없는 취약점의 경우 링크 텍스트는 보기이고, 수정사항이 적용된 취약점의 경우 수정된 항목 보기입니다.
Artifact Registry에서 저장소 목록을 엽니다.
저장소 페이지에서 저장소를 클릭합니다.
저장소 세부정보 페이지에서 이미지를 클릭합니다.
이미지 버전 목록에서 이미지 다이제스트를 클릭합니다.
이미지 다이제스트 세부정보 페이지에서 취약점 탭을 클릭합니다.
레이어 기반 메타데이터를 사용할 수 있는 경우 Artifact Analysis는 레이어 표시줄에 선택 가능한 레이어 목록을 표시합니다.
레이어 목록을 보려면 레이어 드롭다운 메뉴를 클릭합니다.
드롭다운 목록이 열리고 레이어의 번호 매기기 목록이 표시됩니다. 레이어 0은 최하위 레이어를 나타내며, 그 다음의 각 레이어는 이전 레이어를 기반으로 구축됩니다. 취약점이 발견된 레이어만 표시됩니다.
각 레이어에 대해 Artifact Analysis는 레이어를 빌드하는 데 사용된 Docker 명령어와 해당 레이어에서 발견된 취약점 수를 표시합니다.
특정 레이어의 취약점에 대해 자세히 알아보려면 레이어 목록에서 레이어를 선택합니다.
취약점 표가 업데이트되어 선택한 레이어에서 발견된 취약점만 표시됩니다. 필터를 추가로 적용하거나 특정 취약점을 조사할 수 있습니다.
취약점 옆에 있는 보기 또는 수정사항 보기를 클릭하여 자세한 취약점 정보를 확인합니다.
취약점 세부정보 측면 패널에는 패키지에 취약점이 있는 파일 위치가 표시됩니다.
파일 위치 표에서 물음표 위로 마우스를 가져가 추가 레이어 메타데이터를 엽니다.
대화상자에는 레이어 색인, 레이어 빌드 명령어, 레이어 다이제스트, 취약점을 수정할 수 있는 기본 이미지가 표시됩니다.
Artifact Registry에서 Docker 저장소 만들기
이 빠른 시작의 샘플 이미지를 저장할 Docker 저장소를 만듭니다.
저장소 페이지가 표시됩니다. quickstart-docker-repo
저장소가 저장소 목록에 추가됩니다.
인증 구성
Artifact Registry를 사용하여 이미지를 푸시하거나 가져오려면 먼저 Docker가 Google Cloud CLI를 사용하여 Artifact Registry에 대한 요청을 인증하도록 구성해야 합니다.
Cloud Shell 또는 로컬 셸에서 us-central1
리전의 Docker 저장소에 대한 인증을 설정합니다.
gcloud auth configure-docker us-central1-docker.pkg.dev
패키지 획득
저장소 이름으로 패키지에 태그 지정
패키지를 Artifact Registry에 푸시하려면 이미지를 특정 위치로 푸시하도록 docker push
명령어를 구성해야 합니다.
다음 명령어를 실행하여 이미지를 quickstart-image:tag1
로 태그 지정합니다.
docker tag jenkins:2.60.3-alpine \ us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
WHERE
이미지를 Artifact Registry로 내보내기
Artifact Analysis는 새로운 이미지가 Artifact Registry에 업로드될 때 이를 자동으로 스캔합니다.
Artifact Registry의 Docker 저장소에 이미지를 푸시하려면 다음 명령어를 실행합니다.
docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
PROJECT를 Google Cloud프로젝트 ID로 바꿉니다.
프로젝트 ID에 콜론 (:
)이 포함되어 있으면 도메인 범위 프로젝트를 참고하세요.
취약점 스캔 결과 보기
이미지의 취약점을 확인하려면 다음 단계를 따르세요.
특정 레이어의 취약점 보기
Artifact Analysis는 취약점이 포함된 패키지와 해당 레이어를 도입한 Docker 빌드 명령어를 식별하는 데 도움이 되는 레이어별 메타데이터를 제공합니다.
Google Cloud 콘솔에서 레이어 기반 취약점 메타데이터를 보려면 다음 단계를 따르세요.
삭제
이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 Google Cloud 프로젝트를 삭제합니다.
이 가이드용으로 새 프로젝트를 만든 경우 이제 프로젝트를 삭제할 수 있습니다.Delete a Google Cloud project:
gcloud projects delete PROJECT_ID