13.2. 在 RHEL 的镜像模式下注入 secret


RHEL 的镜像模式没有用于 secret 的固执己见的机制。但是,在某些情况下,您可以在系统中注入容器 pull secret。例如:

  • 要使 bootc 从需要身份验证的注册中心获取更新,您必须在文件中包含一个 pull secret。在以下示例中,creds secret 包含注册中心 pull secret。

    FROM registry.redhat.io/rhel10/bootc-image-builder:latest
    COPY containers-auth.conf /usr/lib/tmpfiles.d/link-podman-credentials.conf
    RUN --mount=type=secret,id=creds,required=true cp /run/secrets/creds /usr/lib/container-auth.json && \
        chmod 0600 /usr/lib/container-auth.json && \
        ln -sr /usr/lib/container-auth.json /etc/ostree/auth.json
    Copy to Clipboard Toggle word wrap

    要构建它,请运行 podman build --secret id=creds,src=$HOME/.docker/config.json。使单个 pull secret 用于 bootc 和 Podman,方法是使用到容器镜像中嵌入的通用持久文件的两个位置的符号链接,如 /usr/lib/container-auth.json

  • 要让 Podman 获取容器镜像,请在 /etc/containers/auth.json 种包含一个 pull secret。使用这个配置,两个堆栈共享 /usr/lib/container-auth.json 文件。

    通过将它们嵌入到容器构建中来注入 secret
    如果注册中心服务器被适当保护,则您可以在容器镜像中包含 secret。在某些情况下,仅将 bootstrap secret 嵌入到容器镜像中是一种可行的模式,特别是在与让机器认证到集群的机制一起使用时。在此模式中,作为主机系统的一部分或容器镜像运行的置备工具使用 bootstrap secret 注入或更新其他 secret,如 SSH 密钥、证书等。
    使用云元数据注入 secret
    大多数生产基础设施即服务(IaaS)系统支持元数据服务器或等同的服务器,其可以安全地保护主机 secret,特别是 bootstrap secret。容器镜像可以包含 cloud-initignition 等工具来获取这些 secret。
    通过在磁盘镜像中嵌入 secret 来注入它们
    您只能在磁盘镜像中嵌入 bootstrap secret。例如,当您从一个输入容器镜像(如 AMI 或 OpenStack)生成一个云磁盘镜像时,磁盘镜像可以包含是有效的机器本地状态的 secret。轮转它们需要额外的管理工具或刷新磁盘镜像。
    使用裸机安装程序注入 secret
    安装程序工具通常支持通过 secret 注入配置。
    通过 systemd 凭证注入 secret
    systemd 项目有一个凭证概念,来确保获取凭证数据,并将其传递给系统和服务,这适用于某些部署方法。详情请查看 systemd 凭证 文档。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat