Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

18.4.2. イメージの Web インポートソースの制御

Web インポートによるイメージダウンロードのソースを制限することができます。そのためには、オプションの glance-image-import.conf ファイルに URI のブラックリストおよびホワイトリストを追加します。

3 段階のレベルで、イメージソースの URI をホワイトリスト登録またはブラックリスト登録することができます。

  • スキームレベル (allowed_schemes、disallowed_schemes)
  • ホストレベル (allowed_hosts、disallowed_hosts)
  • ポートレベル (allowed_ports、disallowed_ports)

レベルにかかわらず、ホワイトリストとブラックリストの両方を指定した場合には、ホワイトリストが優先されブラックリストは無視されます。

Image サービスは、以下の判断ロジックを使用してイメージソースの URI を検証します。

  1. スキームを確認する。

    1. スキームが定義されていない場合: 拒否する。
    2. ホワイトリストがあり、そのスキームがそこに含まれていない場合: 拒否する。含まれている場合: iii 項をスキップして 2 項に進む。
    3. ブラックリストがあり、そのスキームがそこに含まれている場合: 拒否する。
  2. ホスト名を確認する。

    1. ホスト名が定義されていない場合: 拒否する。
    2. ホワイトリストがあり、そのホスト名がそこに含まれていない場合: 拒否する。含まれている場合: iii 項をスキップして 3 項に進む。
    3. ブラックリストがあり、そのホスト名がそこに含まれている場合: 拒否する。
  3. URI にポートが含まれていれば、ポートを確認する。

    1. ホワイトリストがあり、そのポートがそこに含まれていない場合: 拒否する。含まれている場合: ii 項をスキップして 4 項に進む。
    2. ブラックリストがあり、そのポートがそこに含まれている場合: 拒否する。
  4. 有効な URI として受け入れる。

(ホワイトリストに登録する、あるいはブラックリストに登録しないことにより) スキームを許可した場合には、URI にポートが含まれていないためそのスキームのデフォルトポートを使用する URI はすべて許可されます。URI にポートが含まれている場合には、URI は上記のルールに従って検証されます。

18.4.2.1. URI 検証の例

たとえば、FTP のデフォルトポートは 21 です。ftp はホワイトリストに登録されたスキームなので、URL ftp://example.org/some/resource は許可されます。しかし、21 はポートのホワイトリストに含まれていないので、同じリソースへの URL であっても ftp://example.org:21/some/resource は拒否されます。

allowed_schemes = [http,https,ftp]
disallowed_schemes = []
allowed_hosts = []
disallowed_hosts = []
allowed_ports = [80,443]
disallowed_ports = []

詳細な情報は、『オーバークラウドの高度なカスタマイズ』の「オーバークラウド作成時の環境ファイルの追加」セクションを参照してください。