4.2. イメージの Web インポートソースの制御
Web インポートによるイメージダウンロードのソースを制限することができます。そのためには、オプションの glance-image-import.conf
ファイルに URI のブラックリストおよび許可リストを追加します。
3 段階のレベルで、イメージソースの URI を許可またはブロックすることができます。
- スキームレベル (allowed_schemes、disallowed_schemes)
- ホストレベル (allowed_hosts、disallowed_hosts)
- ポートレベル (allowed_ports、disallowed_ports)
レベルにかかわらず、許可リストとブロックリストの両方を指定した場合には、許可リストが優先されブロックリストは無視されます。
Image サービス (glance) は、以下の判断ロジックを使用してイメージソースの URI を検証します。
スキームを確認する。
- スキームが定義されていない場合: 拒否する。
- 許可リストがあり、そのスキームが許可リストに記載されていない場合: 拒否する。記載されている場合: c 項をスキップして 2 項に進む。
- ブロックリストがあり、そのスキームがブロックリストに記載されている場合: 拒否する。
ホスト名を確認する。
- ホスト名が定義されていない場合: 拒否する。
- 許可リストがあり、そのホスト名が許可リストに記載されていない場合: 拒否する。記載されている場合: c 項をスキップして 3 項に進む。
- ブロックリストがあり、そのホスト名がブロックリストに記載されている場合: 拒否する。
URI にポートが含まれていれば、ポートを確認する。
- 許可リストがあり、そのポートが許可リストに記載されていない場合: 拒否する。記載されている場合: b 項をスキップして 4 項に進む。
- ブロックリストがあり、そのポートがブロックリストに記載されている場合: 拒否する。
- 有効な URI として受け入れる。
(許可リストに追加する、あるいはブロックリストに登録しないことにより) スキームを許可した場合には、URI にポートを含めないことでそのスキームのデフォルトポートを使用する URI は、すべて許可されます。URI にポートが含まれている場合には、URI はデフォルトの判断ロジックに従って検証されます。
4.2.1. イメージインポート許可リストの例
この例では、FTP のデフォルトポートは 21 です。
ftp
は allowed_schemes
のリストに含まれているため、イメージリソースへの URL ftp://example.org/some/resource が許可されます。
ただし、21 は allowed_ports
のリストにないため、同じイメージリソースへのこの URL ftp://example.org:21/some/resource は拒否されます。
allowed_schemes = [http,https,ftp] disallowed_schemes = [] allowed_hosts = [] disallowed_hosts = [] allowed_ports = [80,443] disallowed_ports = []
4.2.2. イメージのインポートに関するブロックリストおよび許可リストのデフォルト設定
glance-image-import.conf
ファイルは、以下のデフォルトオプションが含まれるオプションのファイルです。
- allowed_schemes: [http, https]
- disallowed_schemes: ブランク
- allowed_hosts: ブランク
- disallowed_hosts: ブランク
- allowed_ports: [80, 443]
- disallowed_ports: ブランク
デフォルトの設定を使用する場合、エンドユーザーは http
または https
スキームを使用することでしか URI にアクセスすることができません。ユーザーが指定することのできるポートは、80
および 443
だけです。(ユーザーはポートを指定する必要はありませんが、指定する場合には 80
または 443
のどちらかでなければなりません)。
glance-image-import.conf
ファイルは、Image サービスのソースコードツリーの etc/
サブディレクトリーにあります。お使いの Red Hat OpenStack Platform のリリースに対応する正しいブランチを使用してください。