Security Verify Access 的 Docker 映像
Security Verify Access Docker 映像包含可用于为 Docker配置 Security Verify Access 环境的服务。
- Docker 容器以 "isam" 用户 (UID: 6000) 身份启动。 在标准 Docker 环境中,容器会自动启动,但在 Kubernetes 环境中,必须设置安全上下文以允许容器以此特定用户身份启动。
- 容器需要以下 Linux® 功能 (缺省情况下,在标准 Docker 环境中允许这些功能):
- chown
- DAC_OVERRIDE
- 所有者
- KILL
- NET_BIND_SERVICE
- SETFCAP
- SETGID
- 设置 UID
- 容器使用以下环境变量:
- CONTAINER_TIMEZONE
- 容器使用的时区。 例如,
"Australia/Brisbane"。 - SNAPSHOT
- 要在容器启动时使用的配置数据快照的名称。 它缺省为最新发布的配置。
- SNAPSHOT_ID
- 容器所使用的快照的标识。 完整快照名称构造为:
‘isva_<product_version>_<snapshot_id>.snapshot’如果未指定标识,那么将使用标识 "published"。 如果使用 SNAPSHOT 环境变量指定了完整快照名称,那么将忽略此变量。注: 此环境变量在版本 10.0.3.0之前不可用。
- CONFIG_SNAPSHOT_SECRETS
- 用于加密配置快照文件的密钥的有序列表。 私钥列表由
||(两个管道) 字符分隔。 每个私钥的长度必须超过 16 个字符。 如果定义了多个私钥,那么将使用列表中的第一个私钥对配置快照文件进行加密。 列表中的每个私钥都尝试对配置快照文件进行解密。 如果无法解密配置快照,那么容器将无法引导。 如果未定义配置快照密钥,那么不会对配置快照文件进行加密。注: 如果用于加密快照的密钥丢失,那么无法恢复快照。
- FIXPACKS
- 要在容器启动时应用的修订包的空格分隔有序列表。 如果此环境变量不存在,那么将按字母数字顺序应用配置卷的 fixpacks 目录中存在的任何修订包。
- CONFIG_SERVICE_URL
- 发布快照数据的 URL。 当管理员选择发布快照时,将通过 HTTP POST 操作将生成的快照文件发送到指定的服务。 可以逗号分隔列表形式指定多个服务。
- CONFIG_SERVICE_USER_NAME
- 将快照发布到远程服务时使用的用户。
- CONFIG_SERVICE_USER_PWD
- 将快照发布到远程服务时使用的用户密码。
- CONFIG_SERVICE_TLS_CACERT
- 用于验证与配置快照服务的连接的 CA 证书束。 此属性的有效值为:
file:<file.pem>- PEM 格式化证书束的文件前缀和路径。 例如:
file:/path/to/ca.pem disabled- 禁用配置服务的证书验证。
operator- 使用 Kubernetes/OpenShift PKI 基础结构提供的 Kubernetes 服务帐户 CA 证书。 服务帐户必须有权读取 Verify Access 容器所部署到的名称空间中的私钥。
- ADMIN_PWD
- 访问配置服务时使用的内置 "admin" 用户的密码。 如果未指定此参数,那么将使用缺省密码 "admin"。注: 如果未提供此环境变量,那么强烈建议在容器启动后使用本地管理接口或 REST API 来更改密码。注: 此环境变量在 V 9.0.5.0之前不可用。
- ADMIN_PWD_MODE
- 使用提供的 ADMIN_PWD 环境变量的方式。 此属性的有效值为:
- SEED
- ADMIN_PWD 环境变量用于使用管理员密码为环境设置种子。 可以使用 Web 控制台来更改此密码。 如果未指定 ADMIN_PWD_MODE 环境变量,那么此值是缺省值。
- FIXED
- ADMIN_PWD 环境变量用于设置管理员密码。 无法使用 Web 控制台更改此密码。
- USE_CONTAINER_LOG_DIR
- 此环境变量 (如果设置为任何值) 用于指示将日志文件写入特定于容器的日志记录目录 (在 "/var/application.logs" 路径下)。 此操作允许多个容器副本将日志信息写入同一个持久卷。 在 Kubernetes 环境中,另一种方法是在 "StatefulSet'。 有关StatefulSets,请参阅官方 Kubernetes 文档。注: 此环境变量在版本 10.0.0.0之前不可用。
- VERIFY_FILES
- 如果此环境变量设置为任何值,那么将使容器在启动时验证容器中的所有二进制文件,以确保它们未被修改。 如果未设置此变量,那么在容器启动期间不会检查文件。 通过选择不验证文件,将减少容器启动所用的时间长度。 这还意味着不会验证文件系统上的二进制文件以确保它们未被篡改。
- LANG
- 将显示发送到控制台的消息的语言。 如果未指定语言,那么消息将以英语显示。 下表列出了受支持的语言:
语言 环境变量值 捷克语 cs_CZ.utf8德语 de_DE.utf8西班牙语 es_ES.utf8法语 fr_FR.utf8匈牙利语 hu_HU.utf8意大利语 it_IT.utf8日语 ja_JP.utf8韩国语 ko_KR.utf8波兰语 pl_PL.utf8葡萄牙语(巴西) pt_BR.utf8俄语 ru_RU.utf8中文(简体) zh_CN.utf8中文(繁体) zh_TW.utf8 - LOGGING_CONSOLE_FORMAT
- 日志消息的必需格式。 有效值为 basic 或 json。 缺省值为 basic。
- LOG_TO_CONSOLE
- 以空格分隔的列表形式记录到控制台的消息类型。 下表列出了有效的消息类型。
消息类型 描述 policy.server 如果设置了此属性,那么会将策略服务器消息日志发送到配置容器的控制台。 policy.server.audit.azn 如果设置了此属性,那么将启用 audit.azn 组件的策略服务器审计日志并将其发送到配置容器的控制台。 注: 如果启用了此消息类型,那么将自动启用 policy.server 类型。policy.server.audit.authn 如果设置了此属性,那么将启用 audit.authn 组件的策略服务器审计日志并将其发送到配置容器的控制台。 注: 如果启用了此消息类型,那么将自动启用 policy.server 类型。policy.server.audit.mgmt 如果设置了此属性,那么将启用 audit.mgmt 组件的策略服务器审计日志并将其发送到配置容器的控制台。 注: 如果启用了此消息类型,那么将自动启用 policy.server 类型。system.alerts 如果设置了此选项,那么会将所有系统警报发送到配置容器的控制台,并发送到使用 Web 控制台配置的目标。
在 Docker 环境中配置 Verify Access 时,请考虑以下有关用户注册表支持的要点:
- 嵌入式用户注册表只能用于将 secAuthority=Default 后缀与基本用户结合使用。 如果需要完整的 Security Verify Access 用户,那么必须将 secAuthority=Default 后缀存储在外部用户注册表中。
- 用户后缀始终需要外部用户注册表。 如果嵌入式用户注册表用于 secAuthority=Default 后缀,请将外部用户注册表配置为联合用户注册表。
将设备迁移到 Docker
要将设备迁移到 Docker 环境,可以在其原始环境中创建设备的快照,并将该快照导入到正在运行的 Security Verify Access 配置容器中。
仅当满足以下条件时,才能从设备导入快照。
- 对于 Security Verify Access Base 仅激活,快照是在 V 9.0.0.0 或更高版本上生成的。 对于 Advanced Access Control 或 Federation 激活,快照是在 V 9.0.2.0 或更高版本上生成的。
- 设备配置了嵌入式配置数据库和外部运行时数据库。
- 设备运行时环境正在使用外部 LDAP 服务器。 或者,如果设备正在运行 Security Verify Access 9.0.4.0,那么在生成快照之前,如果 "wga_rte.embedded.ldap.include.in.snapshot" 高级调整参数设置为 true ,那么可以使用嵌入式 LDAP 服务器。
将来自设备的快照导入到 Docker 容器时:
- LMI HTTPS 侦听端口将重写为 9443。
- 任何逆向代理实例都将其 HTTPS 和 HTTP 端口重写为 9443 和 9080。
迁移到轻量级容器
SERVICE 环境变量设置为 runtime, webseal或 dsc的情况下启动此映像,那么容器将显示错误消息,然后停止。 下表中相应的轻量级 Docker 映像用于为 IBM Security Verify Access提供工作程序服务:| 映像名称 | 工作程序服务 |
|---|---|
| verify-access-dsc | 分发会话高速缓存。 |
| verify-access-runtime | 运行时概要文件 (联合,高级访问控制) |
| verify-access-wrp | Web 逆向代理 (也称为 WebSEAL) |
- 缺省情况下,提供的容器服务侦听端口 9443 ,而当使用旧的验证访问映像时,它侦听端口 443。
- 轻量级容器不需要任何提升的容器安全性功能和特权 (例如: 不需要
SETUID功能)。 - 日志记录将以 JSON 格式发送到控制台,以便容器日志记录基础结构可以管理日志记录。 不支持以本机方式将日志记录消息转发到远程系统日志服务器。
- 在 verify-access-wrp 映像中提供了 wrpadmin 二进制文件作为旧 pdadmin 二进制文件的替代方法,用于管理正在运行的 WebSEAL 进程的各个方面。
限制
Security Verify Access在 Docker 环境中运行时,具有以下限制:
- 任何配置更改都需要重新装入服务容器。 您可以使用 CLI 来触发手动重新装入。 对联合配置和策略数据库的更改不会导致任何服务停机时间。 在重新启动 Web 逆向代理时,对联结定义和 Web 逆向代理配置的更改将导致最短服务停机时间。 请参阅 Docker 环境中的 CLI。
- 不支持授权服务器 (pdacld)。
- 不支持 Security Verify Access 设备的前端负载均衡器功能。
- 不支持 Advanced Access Control 的 IP 声誉策略信息点 (PIP) 功能。
- 未提供样本地理位置数据库。 如果需要样本地理位置数据库,请从正在运行的虚拟或硬件设备的下载区域获取该数据库。 请参阅 更新位置属性。
- 未提供预安装的联合合作伙伴模板。 请参阅 管理联合合作伙伴模板。 连接器软件包可从 IBM Security App Exchange 站点 (https://www.ibm.com/security/community/app-exchange) 作为 "IBM Security Access Manager Extension for SAML Connectors" 软件包提供。
- 不支持 Web 逆向代理流数据或 PAM 统计信息。
- 嵌入式用户注册表只能用于保存静态数据,而不能用于保存任何用户数据。 因此,嵌入式用户注册表仅与联合注册表配合使用,以存储用户数据和基本用户。 如果正在使用嵌入式用户注册表,那么 SCIM 支持的 Security Verify Access 集成组件不可用。
- 不支持使用 RSA SecurID 令牌的认证。
- 无法从 Docker 用户名称空间中运行容器。
- 使用配置容器管理联结时存在一些差异。
- 创建联结时,不会对联结服务器连接进行验证。
- 不会对联结管理操作和策略对象空间操作执行细颗粒度授权检查。 这意味着能够向策略服务器认证 (例如,使用
pdadmin) 的任何管理员都能够管理联结和 Web 逆向代理策略对象空间。
共享配置数据
共享配置卷是文件系统的一部分,保留用于存储要在多个容器之间共享的数据。 即使删除了容器,共享配置卷上的数据也会持久存储。
共享配置卷安装在位于 '/var/shared'的 Security Verify Access 容器中。 快照,支持文件和修订包存储在此卷中。 要管理这些文件,可以使用配置容器 LMI 的 页面。
- 快照
快照位于配置卷的 snapshots 目录中。
从配置容器发布快照时,会将其存储在共享卷上。 当运行时容器启动时,它会使用快照来成功执行配置和引导。 只能通过使用配置容器来创建快照,但是管理员还可以通过直接访问 Docker 卷来手动添加或除去快照。
- 修订包
修订包位于配置卷的 fixpacks 目录中。
启动容器时,将按指定顺序应用 FIXPACKS 环境变量中指定的修订包。 如果 FIXPACKS 环境变量不存在,那么将按字母数字顺序应用配置卷的 fixpacks 目录中存在的任何修订包。
要管理修订包,您可以手动访问 Docker 卷,也可以使用配置容器 LMI 的 页面。 在 " 共享卷 " 页面上,您可以查看配置卷的 fixpacks 目录的内容,上载,删除或重命名修订包。
LMI 页面在 Docker 环境中是只读的。 您可以使用该页面来查看已应用的修订包,但不能使用该页面来应用或回滚修订包。
日志文件
缺省情况下, Docker 使用分层文件系统来帮助降低 Docker 容器的磁盘空间利用率。 但是,此文件系统的写速度比标准文件系统慢。 因此,标准 Docker 实践是将频繁更新的任何文件 (例如,日志文件) 放在共享卷上。 Security Verify Access 使用的所有日志文件都位于 '/var/application.logs' 目录中。 因此,建议的方法是在创建容器时将此目录创建为共享卷。
您可以通过 LMI 的 面板来查看日志文件。
USE_CONTAINER_LOG_DIR 环境变量。 设置此变量时,会将日志文件写入特定于容器的日志子目录。 此环境变量在 V 10.0.0之前不可用。下表中显示了日志文件目录结构。
| 日志文件 | 子目录 (相对于根日志目录) |
|---|---|
| 本地管理接口日志文件 | lmi |
| Security Verify Access 策略服务器日志和跟踪文件 | isam_runtime/policy |
| 嵌入式用户注册表日志文件 | isam_runtime/user_registry |
| 系统日志文件 | system |
| 远程系统日志转发器文件 | rsyslog_forwarder |