4.2. 控制镜像 web-import 源
您可以通过将 URI blocklist 和 allowlists 添加到可选的 glance-image-import.conf
文件中来限制 web-import 镜像下载源。
您可以在三个级别允许或阻止镜像源 URI:
- scheme (allowed_schemes, disallowed_schemes)
- host (allowed_hosts, disallowed_hosts)
- port (allowed_ports, disallowed_ports)
如果您在任何级别上同时指定了 allowlist 和 blocklist,则会遵守允许列表,并忽略 blocklist。
Image 服务(glance)应用以下决策逻辑来验证镜像源 URI:
检查方案。
- 缺少方案: reject
- 如果存在允许列表,并且 allowlist: reject 中没有方案。否则,跳过 C 并继续 2。
- 如果存在黑名单,且 blocklist: reject 中存在方案。
检查主机名。
- 缺少主机名: reject
- 如果存在允许列表,并且 allowlist: reject 中没有主机名。否则,跳过 C 并继续 3。
- 如果存在黑名单,并且 blocklist: reject 中存在主机名。
如果 URI 中存在端口,则会检查端口。
- 如果存在允许列表,并且 allowlist: reject 中没有端口。否则,跳过 B 并继续 4。
- 如果存在黑名单,并且该端口存在于 blocklist: reject 中。
- URI 被接受为 valid。
如果您允许方案,可以将它添加到允许列表中,或者不将其添加到黑名单中,则允许将这个方案使用默认端口的任何 URI 添加到该方案中。如果在 URI 中包含端口,则 URI 会根据默认的决策逻辑进行验证。
4.2.1. 镜像导入允许列表示例
在本例中,FTP 的默认端口为 21。
由于 ftp
位于 allowed_schemes
的列表中,允许此 URL 到 image 资源 :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. 默认镜像导入 blocklist 和 allowlist 设置
glance-image-import.conf
文件是一个可选文件,包含以下默认选项:
- allowed_schemes - [http, https]
- disallowed_schemes - empty list
- allowed_hosts - empty list
- disallowed_hosts - empty list
- allowed_ports - [80, 443]
- disallowed_ports - empty list
如果使用默认值,最终用户只能使用 http
或 https
方案访问 URI。用户只能指定的端口是 80
和 443。
用户不必指定端口,但是如果这样做,它必须是 80
或 443。
您可以在镜像服务源代码树的 etc/
子目录中找到 glance-image-import.conf
文件。确保您正在寻找 Red Hat OpenStack Platform 发行版本的正确分支。