Verify Access Runtime 的 Docker 映像

Security Verify Access Runtime Docker 映像提供了 Security Verify Access的 Advanced Access Control 和 Federation 功能。

部署运行时容器时,请考虑以下几点:
  • 运行时容器依赖于 Security Verify Access 配置容器生成的配置快照。
  • 应以 "isam" 用户 (UID: 6000) 身份启动运行时容器。 在标准容器环境中,这将自动发生,但在 Kubernetes 环境中,应设置安全上下文以允许容器以此特定用户身份启动。
  • runtime_reload 命令可用于在配置快照更改时重新装入运行时配置。
  • 容器使用以下环境变量:
    CONFIG_SERVICE_URL
    将用于访问已发布的配置数据的 URL 。 如果使用 Security Verify Access 配置容器的配置服务,那么 URL 的格式为: https://<container-ip>:<mapped-port>/shared_volume。 将提供 BA 头以处理对配置服务的认证。 如果未指定此环境变量,那么容器将期望配置快照在共享配置卷 (位于 /var/shared/snapshots) 中可用。
    CONFIG_SERVICE_USER_NAME
    访问配置服务时将使用的用户的名称。
    CONFIG_SERVICE_USER_PWD
    访问配置服务时将使用的用户的密码。
    CONFIG_SERVICE_TLS_CACERT
    用于验证与配置快照服务的连接的 CA 证书束。 此属性的有效值为:
    file:<file.pem>
    PEM 格式化证书束的文件前缀和路径。 例如:file:/path/to/ca.pem
    disable
    禁用配置服务的证书验证。
    operator
    使用 Kubernetes/OpenShift PKI 基础结构提供的 Kubernetes 服务帐户 CA 证书。 服务帐户必须有权读取 Verify Access 容器所部署到的名称空间中的私钥。
    CONTAINER_TIMEZONE
    容器使用的时区。 例如:"Australia/Brisbane".
    HTTP_PORT
    容器将侦听 HTTP 请求的端口 (缺省值: 9080)。
    注: 如果端口号小于 1024 ,那么容器需要 NET_BIND_SERVICE 功能。
    HTTPS_PORT
    容器将侦听 HTTPS 请求的端口 (缺省值: 9443)。
    注: 如果端口号小于 1024 ,那么容器需要 NET_BIND_SERVICE 功能。
    SNAPSHOT
    要在启动容器时使用的配置数据快照文件的名称。 文件名中不应包含任何路径信息。 将在标准快照位置中搜索指定的快照文件。 此变量 (如果未指定) 将缺省为最新发布的配置。
    SNAPSHOT_ID
    容器所使用的快照的标识。 完整快照名称构造为:
    ‘isva_<product_version>_<snapshot_id>.snapshot’
    如果未指定标识,那么将使用标识 "published"。 如果使用 SNAPSHOT 环境变量指定了完整快照名称,那么将忽略此变量。
    注: 此环境变量在版本 10.0.3.0之前不可用。
    CONFIG_SNAPSHOT_SECRETS
    用于加密配置快照文件的密钥的有序列表。 私钥列表由 || (两个管道) 字符分隔。 每个私钥的长度必须超过 16 个字符。 如果定义了多个私钥,那么将使用列表中的第一个私钥对配置快照文件进行加密。 列表中的每个私钥都尝试对配置快照文件进行解密。 如果无法解密配置快照,那么容器将无法引导。 如果未定义配置快照密钥,那么不会对配置快照文件进行加密。
    注: 如果用于加密快照的密钥丢失,那么无法恢复快照。
    WLP_LOGGING_CONSOLE_FORMAT
    日志消息的必需格式。 有效值为 simple 或 json 格式 (缺省值 :json)
    WLP_LOGGING_CONSOLE_SOURCE
    路由到控制台的以逗号分隔的源的列表。 仅当控制台格式为 JSON 时,此属性才适用。 有效值为 messagetraceaccessLogffdcaudit (缺省值: message)。
    WLP_LOGGING_CONSOLE_LOGLEVEL
    此过滤器控制转至控制台的消息的详细程度。 有效值为 INFOAUDITWARNINGERROROFF (缺省值: AUDIT)。
    LANG
    将显示发送到控制台的消息的语言。 如果未指定语言,那么消息将以英语显示。 下表列出了受支持的语言:
    语言 环境变量值 (Environment Variable Value)
    捷克语 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
    FIXPACKS
    要在启动容器时应用的修订包的有序列表 (以空格分隔)。 如果此环境变量不存在,并且尚未设置 CONFIG_SERVICE_URL 环境,那么将按字母数字顺序应用配置卷的修订包目录中存在的任何修订包。

配置

必须使用作为配置容器运行的主 Security Verify Access 映像来完成所有配置活动。 配置 容器支持 Security Verify Access 设备 LMI 的缩减版本。 您可以使用此 LMI 来管理配置数据。
注: 要使配置可供运行时容器使用,必须在 LMI 中单击 发布配置

服务

缺省情况下,容器将侦听端口 9443 和 (可选) 端口 9080 上的入局请求 (如果已在配置快照中启用 HTTP 访问)。 使用 HTTPS_PORTHTTP_PORT 环境变量来更改容器将侦听的端口。

共享配置数据

共享配置卷是保留用于存储持久数据的文件系统的一部分。

共享配置卷在位于 "/var/shared" 的 Security Verify Access 运行时容器中 可用

共享配置卷用于存储以下数据:
快照
如果未指定 CONFIG_SERVICE_URL 环境变量,那么将从共享配置卷的 "快照" 子目录中检索配置快照。

Security Verify Access 映像所使用的配置数据与旧 Security Verify Access 映像所使用的配置数据完全兼容。

fixpacks
如果未指定 CONFIG_SERVICE_URL 环境变量,那么将从共享配置卷的 "fixpack" 子目录中检索修订包。

启动运行时容器时,将按指定顺序应用 FIXPACK 环境变量中指定的修订包。 如果 FIXPACK 环境变量不存在,并且未指定 CONFIG_SERVICE_URL 环境变量,那么将按字母数字顺序应用配置卷的 "fixpack" 目录中存在的任何修订包。 如果已指定 CONFIG_SERVICE_URL 环境变量,那么必须使用 FIXPACK 环境变量指定必需的 "fixpack"。

日志记录

缺省情况下,运行时的日志记录和审计将以 JSON 格式发送到容器的控制台。 这允许容器环境本身的日志记录基础结构管理审计和消息日志。

但是,仍将在容器的磁盘上生成一些其他日志文件。 缺省情况下, Docker 使用分层文件系统来帮助降低容器的磁盘空间利用率。 但是,此文件系统的写速度比标准文件系统慢。 因此,标准 Docker 实践是将频繁更新的任何文件 (例如,日志文件) 放在共享卷上。 容器写入的所有日志文件都位于 "/var/application.logs." 目录中。 因此,建议的方法是在创建容器时将此目录创建为共享卷。
注: 多个容器不应针对日志存储引用同一持久卷,否则多个容器将尝试同时写入同一日志文件,从而导致数据写入和完整性问题。 在 Kubernetes 环境中,可以通过在 StatefulSet 中部署容器来解决此问题 (请参阅官方 Kubernetes 文档以获取有关 StatefulSets的信息)。
下表中显示了日志文件目录结构。
表 1. 日志目录结构
日志文件 子目录 (相对于根日志目录)
运行时服务器日志文件 符概要文件
数据库服务器日志文件 db