7.4. コンテンツセキュリティーポリシー (CSP)
ConsolePluginSpec
ファイルの contentSecurityPolicy
フィールドを使用して、動的プラグインのコンテンツセキュリティーポリシー (CSP) ディレクティブを指定できます。このフィールドは、スクリプト、スタイル、イメージ、フォントなどのコンテンツの取得を許可するソースを指定することにより、潜在的なセキュリティーリスクを軽減するのに役立ちます。外部ソースからリソースをロードする必要がある動的プラグインがある場合は、カスタム CSP ルールを定義すると、OpenShift Container Platform コンソールへのセキュアな統合を実現できます。
現在、コンソールは Content-Security-Policy-Report-Only
レスポンスヘッダーを使用しています。そのため、ブラウザーの Web コンソールで CSP 違反について警告されるだけであり、CSP ポリシーの適用は限られています。CSP 違反はブラウザーのコンソールに記録されますが、関連する CSP ディレクティブは適用されません。この機能は feature-gate
の背後にあるため、手動で有効にする必要があります。
詳細は、Web コンソールを使用した機能セットの有効化 を参照してください。
7.4.1. コンテンツセキュリティーポリシー (CSP) の概要
コンテンツセキュリティーポリシー (CSP) は、Content-Security-Policy-Report-Only
レスポンスヘッダーでブラウザーに配信されます。ポリシーは、一連のディレクティブと値の形で指定します。ディレクティブタイプによって果たす目的が異なります。各ディレクティブには、許可されるソースを表す値のリストを含めることができます。
7.4.1.1. contentSecurityPolicy
の主な機能
ディレクティブタイプ
サポートされているディレクティブタイプには、DefaultSrc
、ScriptSrc
、StyleSrc
、ImgSrc
、FontSrc
があります。これらのディレクティブを使用すると、プラグインにさまざまな種類のコンテンツを読み込むための有効なソースを指定できます。ディレクティブタイプによって果たす目的が異なります。たとえば、ScriptSrc
は有効な JavaScript ソースを定義し、ImgSrc
はイメージを読み込む場所を制御します。
値
各ディレクティブには、許可されるソースを表す値のリストを含めることができます。たとえば、ScriptSrc
では複数の外部スクリプトを指定できます。これらの値は 1024 文字に制限されており、空白、コンマ、セミコロンを含めることはできません。また、一重引用符で囲まれた文字列とワイルドカード文字 (*
) は使用できません。
ポリシーの統合
OpenShift Container Platform Web コンソールは、すべての有効な ConsolePlugin
カスタムリソース (CR) の CSP ディレクティブを集約し、独自のデフォルトポリシーと結合します。結合されたポリシーは、Content-Security-Policy-Report-Only
HTTP レスポンスヘッダーによって適用されます。
検証ルール
- 各ディレクティブには最大 16 個の一意の値を設定できます。
- ディレクティブ全体の値の合計サイズが、8192 バイト (8 KB) を超えないようにする必要があります。
- 各値は一意である必要があります。また、引用符、スペース、コンマ、またはワイルドカード記号が使用されていないことを確認する追加の検証ルールが適用されます。