Container Image Registries の接続

これは、コンテナイメージレジストリを Tenableに接続するための統合ガイドです。

  • コンテナイメージの表示と管理に関するガイドについては、 コンテナイメージを参照してください。
  • Tenable によるレジストリのスキャン方法の概念概要については、 Container Image Registry Scanning を参照してください。

コンテナレジストリのスキャンを有効または無効にするには、次の手順を実行します。

  1. (AWS のみ) Tenable One Cloud Exposureに ECR スキャンのアクセス許可を付与します 。

    注意: Azure (ACR) と GCP (Artifact Registry) の場合、追加のアクセス許可を付与する必要はありません。基本的な VM スキャンのアクセス許可で十分です。VM スキャンのアクセス許可の付与に関する詳細については、 ワークロードの接続 を参照してください。
  2. クラウドサイバーエクスポージャーにレジストリを追加

  3. (すべてのレジストリ) Tenable でコンテナレジストリスキャンを有効または無効にする。

AWS: ECR スキャンのアクセス許可を付与する

クラウドサイバーエクスポージャー IAM ロールに追加されたカスタムインラインポリシーを介して、AWS コンテナレジストリをスキャンする Tenable アクセス許可を付与します。これらのアクセス許可は、 Tenable ウィザードの AWS 統合プロセスの一部として (ECR スキャンアクセス許可を介して) 付与されますが、アカウントを接続した日時によっては、まだ付与されていない可能性があります。

  • コンテナレジストリをスキャンする AWS アカウントを既に接続しているが、コンテナレジストリのスキャンのアクセス許可をまだ追加していない場合は、次の手順を実行します。
  • コンテナレジストリをスキャンする AWS アカウントをまだ接続していない場合は、 AWS アカウントの接続に記載されている手順を実行します。

コンテナレジストリのスキャンのアクセス許可を既に追加しているかどうかを確認するには、 クラウドサイバーエクスポージャー コンソールで [設定] > [アカウント] > [AWS] に移動し、アカウントのステータスを確認します。

  • ステータスが [接続済み] の場合、必要なアクセス許可はすでに付与されています。
  • ステータスが [問題あり] で、コンテナレジストリのスキャンのアクセス許可が付与されていないとツールチップに表示される場合は、次の手順を実行します。

アクセス許可を付与するには:

  1. 関連するアカウントの AWS 管理コンソールで、 [IAM] > [ロール] に移動し、 アカウント統合の間に Tenable に対して作成したロールを開きます。
  2. [アクセス許可] タブで、[アクセス許可の追加] > [インラインポリシーの作成] をクリックします。
  3. 次のポリシーをコピーして、[JSON] タブに貼り付け、既存のテキストを置き換えます。

    コピー

    JSON

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ecr:GetAuthorizationToken",
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage"
          ],
          "Resource": "*"
        }
      ]
    }
  4. [ポリシーのレビュー] をクリックします。
  5. ポリシーの名前 ( TenableWorkloadProtection など) を入力し、 [ポリシーの作成] をクリックします。
  6. クラウドサイバーエクスポージャー コンソールで、 [設定] > [アカウント] > [AWS ] に移動し、アカウントの [ステータス] が [接続済み] であることを確認します。
注意: ステータスが [接続済み] に変わるまでに最大で数分かかる場合があり、ブラウザでハードリフレッシュを実行する必要がある場合があります。

AWS: ECR スキャンポリシー

コピー

JSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:GetAuthorizationToken",
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage"
      ],
      "Resource": "*"
    }
  ]
}

JFrog Organization を追加する

JFrog 組織を追加して、組織内のすべてのコンテナレジストリをスキャンします。

クラウドサイバーエクスポージャー は、インターネットに接続するサーバーとネットワークで隔離されたサーバーの両方を持つ企業をサポートします。 ネットワーク分離されたサーバーの接続 参照してください。

組織を追加した後、 Tenable

  1. 企業内のレジストリに接続します。
  2. 各レジストリ内のリポジトリのリストをプルします。
  3. リポジトリのインベントリ項目をスキャンします。
  4. イメージの脆弱性をスキャンします。
  5. イメージとリポジトリをインベントリの 対応リソース として表示します。
  6. クラウドサイバーエクスポージャー コンソール内のアカウント階層の一部としてレジストリを表示することで、特定のレジストリまたはレジストリグループの アカウント階層とフォルダー できます。

JFrog 組織を追加するには:

  1. クラウドサイバーエクスポージャー コンソールで、[設定] > [統合] の順に移動し、[統合を追加] をクリックします。
  2. 統合ライブラリで、 JFrog Organizationをクリックします。[JFrog Organization の追加] ウィザードが開きます。
  3. [アカウント] および [設定] ページに表示されるレジストリの表示 名 を入力します。
  4. Tenable のサーバーへの接続方法を選択します。サーバーがネットワークで区切られている場合は、 Tenable Endpoint Connector を 使用して接続を確立します。

    • エンドポイントインターネットに接続するレジストリ。レジストリのホスト名/IP を入力します。
    • エンドポイントコネクタネットワーク分離レジストリ経由。ドロップダウンから関連するコネクタを選択します。何も使用できない場合は、 1 つ追加します。

    SSL が サーバーで有効になっている場合、 [ サーバーの SSL 証明書を受け入れる] に チェックを入れます。

  5. 組織の以下の情報を入力します。
    • ユーザー名。レジストリのユーザー名です。
    • Password. これはレジストリにログインするためのパスワードとして使用できます。もしくは、ベンダーのプラットフォーム内で特定のトークンを設定することもできます。
  6. フォルダー構造 を自動更新します。レジストリの構造を Tenable 内のフォルダーとしてミラーリングし、その階層を維持して、ビューを同期させます (デフォルトで有効)。詳細は、アカウント階層とフォルダーを参照してください。
  7. [終了] をクリックします。

Cloudsmith Organization を追加する

Cloudsmith コンテナレジストリ組織を追加して、組織内のすべてのコンテナレジストリをスキャンします。

クラウドサイバーエクスポージャー は、インターネットに接続するサーバーとネットワークで隔離されたサーバーの両方を持つ企業をサポートします。 ネットワーク分離されたサーバーの接続 参照してください。

組織を追加した後、 Tenable

  1. 企業内のレジストリに接続します。
  2. 各レジストリ内のリポジトリのリストをプルします。
  3. リポジトリのインベントリ項目をスキャンします。
  4. イメージの脆弱性をスキャンします。
  5. イメージとリポジトリをインベントリの 対応リソース として表示します。
  6. クラウドサイバーエクスポージャー コンソール内のアカウント階層の一部としてレジストリを表示することで、特定のレジストリまたはレジストリグループの アカウント階層とフォルダー できます。

Cloudsmith の組織を追加するには

  1. クラウドサイバーエクスポージャー コンソールで、 [設定] > [統合] に移動し、 [統合の追加] をクリックします。
  2. 統合ライブラリで、 Cloudsmith Organization をクリックします。[Cloudsmith Organization] ウィザードが開きます。
  3. [アカウント] および [設定] ページに表示されるレジストリの表示 名 を入力します。
  4. Tenable のサーバーへの接続方法を選択します。サーバーがネットワークで区切られている場合は、 Tenable Endpoint Connector を 使用して接続を確立します。
    • Cloudsmith のデフォルトエンドポイントdocker.cloudsmith.io:443。Cloudsmith のデフォルトエンドポイントを入力します。
    • エンドポイントインターネットに接続します。レジストリのホスト名/IP を入力します。
    • エンドポイントコネクタネットワーク分離レジストリ経由。ドロップダウンから関連するコネクタを選択します。何も使用できない場合は、 1 つ追加します。
    • SSL がサーバーで有効になっている場合は、 [ サーバーの SSL 証明書を受け入れる] にチェックを入れます 。
  5. Cloudsmith サービスアカウントの API キー を入力します。
  6. フォルダー構造 を自動更新します。レジストリの構造を Tenable 内のフォルダーとしてミラーリングし、その階層を維持して、ビューを同期させます (デフォルトで有効)。詳細は、アカウント階層とフォルダーを参照してください。
  7. [終了] をクリックします。

サードパーティレジストリの追加

クラウドプロバイダー環境内でネイティブにホストされていないサードパーティレジストリを操作するには、レジストリを クラウドサイバーエクスポージャーに追加する必要があります。 Tenable は Docker Registry HTTP API V2 仕様を利用しています。その結果、通常、このプロトコルをサポートする任意のコンテナレジストリを統合できます。

次のベンダーがテストされ、承認されました

  • JFrog

    注意: 個々のレジストリを追加するだけでなく、 JFrog 組織全体を追加して 、組織内のすべてのレジストリを接続することもできます。
  • Red Hat Quay
  • Sonatype Nexus リポジトリ
  • Harbor

クラウドサイバーエクスポージャー は、インターネットに接続されたサーバーとネットワークで分離されたサーバーの両方でレジストリをサポートします。 ネットワーク分離されたサーバーの接続 参照してください。

レジストリを追加すると、 Tenable

  1. レジストリに接続します。
  2. レジストリ内のリポジトリのリストをプルします。
  3. リポジトリのインベントリ項目をスキャンします。
  4. イメージの脆弱性をスキャンします。
  5. イメージとリポジトリをインベントリの 対応リソース として表示します。
  6. クラウドサイバーエクスポージャー コンソール内のアカウント階層の一部としてレジストリを表示することで、特定のレジストリまたはレジストリグループの アカウント階層とフォルダー できます。

独立したレジストリを追加するには

  1. クラウドサイバーエクスポージャー コンソールで、[設定] > [統合] の順に移動し、[統合を追加] をクリックします。
  2. 統合ライブラリで、 Cloudsmith Organization をクリックします。[Cloudsmith Organization の追加] ウィザードが開きます。
  3. [アカウント] および [設定] ページに表示されるレジストリの表示 名 を入力します。
  4. Tenable のサーバーへの接続方法を選択します。サーバーがネットワークで区切られている場合は、 Tenable Endpoint Connector を 使用して接続を確立します。
    • Direct (インターネットに接続するレジストリ) をダイレクトします。レジストリのエンドポイントを入力します。Quay レジストリの場合は、次を入力します quay.io。
    • エンドポイントコネクタネットワーク分離レジストリ経由。ドロップダウンから関連するコネクタを選択します。何も使用できない場合は、 1 つ追加します。
      SSL がサーバーで有効になっている場合は、 [ サーバーの SSL 証明書を受け入れる] にチェックを入れます 。
  5. レジストリに関する以下の情報を入力します。
    • ユーザー名。レジストリのユーザー名です。
    • Password. これはレジストリにログインするためのパスワードとして使用できます。もしくは、ベンダーのプラットフォーム内で特定のトークンを設定することもできます。
  6. フォルダー構造 を自動更新します。レジストリの構造を Tenable 内のフォルダーとしてミラーリングし、その階層を維持して、ビューを同期させます (デフォルトで有効)。詳細は、アカウント階層とフォルダーを参照してください。
  7. [終了] をクリックします。

Tenable でコンテナレジストリスキャンを有効または無効にする

デフォルトでは、組織全体の クラウドサイバーエクスポージャー でレジストリスキャンが無効になっています。コンソール設定からスキャンを有効にでき、特定のアカウントまたはアカウントスコープで機能を有効/無効にして微調整できます。この設定を行うには、クラウドサイバーエクスポージャー で管理者ロールを持つユーザーである必要があります。

コンテナレジストリのスキャンを有効にする方法

  1. クラウドサイバーエクスポージャー コンソールで、 [設定] > [ワークロード] > [コンテナレジストリ] をクリックします。
  2. 左側の組織ツリーでアカウント階層とフォルダーを選択します。デフォルトでは、組織全体 (すべてのアカウント) が選択されています。
  3. [Container Registry Scanning] セクションで、次のいずれかを選択します。
    • 親レベルのアカウント範囲の設定を継承 (デフォルト)。

      注意: 組織全体を範囲として選択した場合、[継承] オプションは使用できません。
    • このアカウントスコープ用の一意の設定 (有効/無効) で、親レベルスコープの設定をオーバーライドします。この固有の設定は、親レベルの範囲で行われた変更に関係なく、子レベルの範囲に残ります。