OS 패키지 자동 스캔

자동 스캔을 사용 설정하고, Artifact Registry에 컨테이너 이미지를 푸시하고, 이미지에서 발견된 취약점 목록을 확인하는 방법을 알아보세요.

Artifact Analysis는 이미지가 Artifact Registry에 푸시될 때마다 취약점을 스캔합니다. 플랫폼 관리자와 애플리케이션 개발자는 이 자동 스캔 기능을 사용하여 소프트웨어 제공 파이프라인의 위험을 식별할 수 있습니다.

이 빠른 시작에서는 간단한 공개 패키지를 사용하여 한 가지 유형의 패키지 검사를 보여줍니다. 기본적으로 Artifact Analysis는 스캔 API를 사용 설정하면 여러 패키지 유형의 취약점을 스캔합니다. 지원되는 패키지 유형에는 OS, Go, Java (Maven), Python, Node.js (npm)가 있습니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud CLI를 설치합니다.

  3. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  4. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  5. Google Cloud 프로젝트를 만들거나 선택합니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 생성한 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.

  6. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  7. Artifact Registry 및 Container Scanning API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 포함된 서비스 사용량 관리자 IAM 역할 (roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. Google Cloud CLI를 설치합니다.

  9. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  10. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  11. Google Cloud 프로젝트를 만들거나 선택합니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 생성한 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.

  12. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  13. Artifact Registry 및 Container Scanning API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 포함된 서비스 사용량 관리자 IAM 역할 (roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com

Artifact Registry에서 Docker 저장소 만들기

이 빠른 시작의 샘플 이미지를 저장할 Docker 저장소를 만듭니다.

  1. Google Cloud 콘솔에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 저장소 만들기를 클릭합니다.

  3. 저장소 만들기 페이지에서 다음 설정을 입력합니다.

    • 이름: quickstart-docker-repo
    • 형식: Docker
    • 모드: 표준
    • 위치 유형: 리전
    • 리전: us-central1
  4. 만들기를 클릭합니다.

저장소 페이지가 표시됩니다. 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

패키지 획득

  1. 컨테이너 이미지를 저장할 디렉터리로 변경합니다.

  2. 이미지를 로컬 디렉터리에 복사합니다. 예를 들어 docker를 사용하여 Docker Hub에서 최신 Ubuntu 이미지를 가져올 수 있습니다.

    docker pull ubuntu:latest
    

저장소 이름으로 패키지에 태그 지정

패키지를 Artifact Registry에 푸시하려면 이미지를 특정 위치로 푸시하도록 docker push 명령어를 구성해야 합니다.

다음 명령어를 실행하여 이미지를 quickstart-image:tag1로 태그 지정합니다.

docker tag ubuntu:latest \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

WHERE

  • PROJECT는 Google Cloud 프로젝트 ID입니다. 프로젝트 ID에 콜론 (:)이 포함되어 있으면 도메인 범위 프로젝트를 참고하세요.
  • us-central1은 Artifact Registry 저장소 리전입니다.
  • docker.pkg.dev는 Docker 저장소의 호스트 이름입니다.
  • quickstart-image는 저장소에서 사용할 이미지 이름입니다. 이미지 이름은 로컬 이미지 이름과 다를 수 있습니다.
  • tag1은 Docker 이미지에 추가할 태그입니다. 태그를 지정하지 않으면 기본 태그인 latest가 적용됩니다.

이미지를 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에 콜론 (:)이 포함되어 있으면 도메인 범위 프로젝트를 참고하세요.

취약점 스캔 결과 보기

이미지의 취약점을 확인하려면 다음 단계를 따르세요.

  1. Artifact Analysis 콘솔에서 Artifact Registry 저장소 목록을 엽니다.

    저장소 페이지 열기

  2. 저장소 목록에서 저장소를 클릭합니다.

  3. 이미지 이름을 클릭합니다.

    이미지의 다이제스트 목록이 표시됩니다.

    각 이미지 다이제스트의 취약점 합계가 취약점 열에 표시됩니다.

    취약점이 있는 이미지의 스크린샷

  4. 취약점 열에서 연결된 취약점 총수를 클릭합니다.

    취약점 목록이 표시됩니다.

    이미지 목록 및 취약점 세부정보의 스크린샷

    취약점 목록에는 이 이미지가 스캔된 횟수, 취약점 심각도 수준, 수정 가능 여부, 취약점이 포함된 패키지의 이름과 패키지 유형이 표시됩니다.

  5. 취약점 소스에서 특정 취약점에 대해 자세히 알아보려면 이름 열에서 연결된 CVE 식별자를 클릭합니다.

결과를 보는 다른 방법

Google Cloud 콘솔에 최대 1,200개의 취약점이 표시됩니다. 이미지에 1, 200개가 넘는 취약점이 있는 경우 gcloud 또는 API를 사용하여 전체 목록을 확인하세요.

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 Google Cloud 프로젝트를 삭제하세요.

이 가이드용으로 새 프로젝트를 만든 경우 이제 프로젝트를 삭제할 수 있습니다.

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

다음 단계