2.6.4. 外部サービスの統合

OpenShift Container Platform は、オブジェクトのアノテーション (object annotations) を利用して機能を拡張します。脆弱性スキャナーなどの外部ツールはイメージオブジェクトにメタデータのアノテーションを付けることで、結果の要約を表示したり、Pod の実行を制御したりできます。本セクションでは、このアノテーションの認識される形式について説明します。 この形式を使用することで、アノテーションをコンソールで安全に使用し、ユーザーに役立つデータを表示することができます。

2.6.4.1. イメージのメタデータ

イメージの品質データには、パッケージの脆弱性およびオープンソースソフトウェア (OSS) ライセンスのコンプライアンスなどの様々なタイプがあります。さらに、複数のプロバイダーがこのメタデータが存在する可能性があります。このため、以下のアノテーションの形式が保持されます。

quality.images.openshift.io/<qualityType>.<providerId>: {}

表2.1 アノテーションキーの形式

コンポーネント説明許可される値

qualityType

メタデータのタイプ

vulnerability
license
operations
policy

providerId

プロバイダー ID の文字列

openscap
redhatcatalog

redhatinsights
blackduck

jfrog

2.6.4.1.1. アノテーションキーの例
quality.images.openshift.io/vulnerability.blackduck: {}
quality.images.openshift.io/vulnerability.jfrog: {}
quality.images.openshift.io/license.blackduck: {}
quality.images.openshift.io/vulnerability.openscap: {}

イメージの品質アノテーションの値は、以下の形式に従った構造化データになります。

表2.2 アノテーション値の形式

フィールド必須?説明タイプ

name

Yes

プロバイダーの表示名

文字列

timestamp

Yes

スキャンのタイムスタンプ

文字列

description

No

簡単な説明

文字列

reference

Yes

情報ソースの URL または詳細情報。ユーザーのデータ検証に必要。

文字列

scannerVersion

No

スキャナーバージョン

文字列

compliant

No

コンプライアンスの合否

ブール値

summary

No

検出された問題の要約

一覧 (以下の表を参照)

summary フィールドは、以下の形式に従う必要があります。

表2.3 要約フィールド値の形式

フィールド説明タイプ

label

コンポーネントの表示ラベル (例: 「critical」、「important」、「moderate」、「low」または「health」)

文字列

data

このコンポーネントのデータ (例: 検出された脆弱性の数またはスコア)

文字列

severityIndex

順序付けおよびグラフィック表示の割り当てを可能にするコンポーネントのインデックス。値は 0..3 の範囲内にあり、0 = low になります。

整数

reference

情報ソースの URL または詳細情報。オプション。

文字列

2.6.4.1.2. アノテーション値の例

以下の例は、脆弱性の要約データおよびコンプライアンスのブール値を含むイメージの OpenSCAP アノテーションを示しています。

OpenSCAP アノテーション

{
  "name": "OpenSCAP",
  "description": "OpenSCAP vulnerability score",
  "timestamp": "2016-09-08T05:04:46Z",
  "reference": "https://www.open-scap.org/930492",
  "compliant": true,
  "scannerVersion": "1.2",
  "summary": [
    { "label": "critical", "data": "4", "severityIndex": 3, "reference": null },
    { "label": "important", "data": "12", "severityIndex": 2, "reference": null },
    { "label": "moderate", "data": "8", "severityIndex": 1, "reference": null },
    { "label": "low", "data": "26", "severityIndex": 0, "reference": null }
  ]
}

以下の例は、詳細情報として外部 URL と正常性のインデックスデータを含むイメージの Red Hat Ecosystem Catalog のコンテナーイメージのセクションのアノテーションを示しています。

Red Hat Container Catalog アノテーション

{
  "name": "Red Hat Ecosystem Catalog",
  "description": "Container health index",
  "timestamp": "2016-09-08T05:04:46Z",
  "reference": "https://access.redhat.com/errata/RHBA-2016:1566",
  "compliant": null,
  "scannerVersion": "1.2",
  "summary": [
    { "label": "Health index", "data": "B", "severityIndex": 1, "reference": null }
  ]
}