yamory の使い方

yamory へようこそ! yamory の基礎知識と使い方をご紹介します。

コマンドラインでコンテナイメージをスキャンする

yamory ではコンテナイメージのコマンドラインスキャン機能を提供しています。

yamory では、コマンドラインを利用して、コンテナイメージ内で利用されているパッケージの脆弱性をスキャンできます。
これにより、お使いの コンテナイメージ内にある MW/OS 脆弱性を検知できます。

前提条件を確認する

yamory では、コンテナイメージ脆弱性スキャンツール「 Trivy 」を通じて脆弱性をスキャンし、その結果をもとに脆弱性の診断を行います。

1.Trivy を取得する

Trivy を、スキャンコマンドを実行したいサーバーにインストールします。
インストール方法については、Trivy 公式サイトにて「getting-started」>「installation」をご参照ください。

2.スキャンのトークンを発行する

サイドバーから「チーム設定」>「チーム情報設定」を開き、スキャンに必要なトークンを発行します。

<チームトークン発行画面のキャプチャ>

3.スキャンをする

以下のスキャンコマンドを実行します。

YAMORY_ACCESS_TOKEN='<YAMORY_ACCESS_TOKEN>' YAMORY_IMAGE_NAME='<YAMORY_IMAGE_NAME>' YAMORY_IMAGE_TITLE='<YAMORY_IMAGE_TITLE>' YAMORY_IMAGE_IDENTIFIER='<YAMORY_IMAGE_IDENTIFIER>' TRIVY_TIMEOUT='<TRIVY_TIMEOUT>' bash -c "$(curl -sSf -L <https://yamory/script/...>)"

上記の < > の箇所は、以下の内容に適宜置き換えてください。

パラメーター 必須 説明
YAMORY_ACCESS_TOKEN 2. で発行したアクセストークン YourAccessToken
YAMORY_IMAGE_NAME スキャン対象のイメージ名とタグ名 yamorytest:1.0-ubuntu
YAMORY_IMAGE_TITLE yamory 上での表示名 MyFirstScan
YAMORY_IMAGE_IDENTIFIER コンテナイメージ識別子 My-image/identifier
TRIVY_TIMEOUT Trivy タイムアウト設定 15m0s

ECR プライベートレジストリで管理しているコンテナイメージをスキャンする場合は、追加で以下の環境変数設定も行ってください。

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_DEFAULT_REGION

詳細は AWS CLI を設定する環境変数をご参照ください。

DockerHub プライベートレジストリで管理しているコンテナイメージをスキャンする場合は、追加で以下の環境変数設定も行ってください。

  • TRIVY_USERNAME
  • TRIVY_PASSWORD

詳細は Trivy 公式サイトの Docker Hub をご参照ください。

<https://yamory/script/...> について

サイドバーの「コンテナイメージ」>「スキャン」を開き、「新しいコンテナイメージをスキャン+」ボタンを押して出てくる案内にしたがって入力を進め、最後に表示されるスキャンコマンドの URL に置き換えてください。

YAMORY_IMAGE_NAME について

タグ名が未入力の場合は、latest としてスキャンを実施します。

YAMORY_IMAGE_TITLE について

YAMORY_IMAGE_TITLE が未入力の場合は、YAMORY_IMAGE_NAME の内容がタイトルとして自動入力されます。

YAMORY_IMAGE_IDENTIFIER について

コンテナイメージ識別子には 半角英数字, 記号(., /, :, -, _) のみ使用できます。
yamory のコンテナイメージスキャン機能では、コンテナイメージの一意性を特定するためにイメージ名とタグ名(YAMORY_IMAGE_NAME)に指定された値を使用しています。 latest タグのイメージやメジャーバージョンタグのイメージなどはスキャンするタイミングによっては異なるイメージになる場合があります。
このような同一イメージ名・タグ名のコンテナイメージに対して、コンテナイメージ識別子を設定することで別々のコンテナイメージとして yamory で管理することができます。
コンテナイメージ識別子は、チーム内でコンテナイメージごとに一意の値になるように設定してください。

TRIVY_TIMEOUT について

Trivy のコンテナイメージスキャンはタイムアウトがデフォルト5分になっています。Trivy コマンドは --timeout オプションでタイムアウトを変更してスキャンできますが、環境変数 TRIVY_TIMEOUT でもタイムアウトを変更できます。例えば、タイムアウトを15分に変更する場合、yamory のコンテナイメージのスキャンコマンドに TRIVY_TIMEOUT='15m0s' を追加してスキャンしてください。

TRIVY_TIMEOUT 環境変数については以下の Trivy の公式ドキュメントをご参照ください。

4.スキャン結果を確認する

yamory にログインし、サイドバーから「コンテナイメージ」>「スキャン」を開いて、スキャンしたコンテナイメージの情報を確認できます。

<スキャン画面のキャプチャ>

また、サイドバーから「コンテナイメージ」>「脆弱性」を選択開くと、スキャンで検出された脆弱性の一覧をみることができます。

<脆弱性画面のキャプチャ>