Go パッケージを手動でスキャンする

このクイックスタートでは、コンテナ イメージを pull し、オンデマンド スキャンで手動でスキャンし、システム パッケージと Go パッケージの検出された脆弱性を取得する方法について説明します。このクイックスタートでは、Cloud Shell と Alpine イメージのサンプルを使用します。

始める前に

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the On-Demand Scanning API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the On-Demand Scanning API.

    Enable the API

画像をダウンロードしてスキャンする

  1. プロジェクトで Cloud Shell を開きます。

    Cloud Shell を開く

    これにより、このガイドに沿って行うために必要なすべてのツールがインストールされたターミナルが開きます。

  2. Docker を使用してコンテナ イメージを pull します。

    docker pull golang:1.17.6-alpine
    
  3. スキャンを実行します。

    gcloud artifacts docker images scan golang:1.17.6-alpine --additional-package-types=GO
    

    これにより、スキャン プロセスがトリガーされ、完了するとスキャン名が返されます。

    ✓ Scanning container image
      ✓ Locally extracting packages and versions from local container image
      ✓ Remotely initiating analysis of packages and versions
      ✓ Waiting for analysis operation to complete [projects/my-project/locations/us/operations/849db1f8-2fb2-4559-9fe0-8720d8cd347c]
    Done.
    done: true
    metadata:
      '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesMetadata
      createTime: '2022-01-11T16:58:11.711487Z'
      resourceUri: golang:1.16.13-alpine
    name: projects/my-project/locations/us/operations/f4adb1f8-20b2-4579-9fe0-8720d8cd347c
    response:
      '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesResponse
      scan: projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
    
  4. スキャン名(出力の scan の値)を使用して、スキャン結果を取得します。

    gcloud artifacts docker images list-vulnerabilities \
    projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
    

    出力には、Go、Go 標準ライブラリ、Linux パッケージの脆弱性のリストが含まれます。次のラベルは、Go の脆弱性のタイプを示します。

    • packageType:GO_STDLIB. Go 標準ライブラリの脆弱性。これは、バイナリのビルドに使用された Go ツールチェーンまたはツールチェーンにバンドルされている標準ライブラリで脆弱性が見つかったことを示します。ビルド ツールチェーンをアップグレードすると問題を解決できます。

    • packageType:GO. Go パッケージの脆弱性。これは、サードパーティ パッケージで脆弱性が見つかったことを示します。依存するモジュールをアップグレードすると問題を解決できます。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

次のステップ