12.9. 管理允许的机密


除了提供 API 凭证外,pod 的服务帐户也决定允许 pod 使用哪些 secret。

Pod 以两种方式使用 secret:

  • 镜像拉取 secret,提供用于为 pod 容器拉取镜像的凭证
  • 可挂载 secret,将 secret 的内容作为环境变量注入容器中

要允许由服务帐户的 pod 使用 secret 作为镜像 pull secret,请运行:

$ oc secrets link --for=pull <serviceaccount-name> <secret-name>

要允许由服务帐户的 pod 挂载 secret,请运行:

$ oc secrets link --for=mount <serviceaccount-name> <secret-name>
注意

默认情况下,“将 secret 仅限于引用它们的服务帐户”的功能被禁用。这意味着,如果在 master 配置文件中将 serviceAccountConfig.limitSecretReferences 设置为 false (默认设置),则不需要将 secret 挂载到服务帐户的 pod 中,且不需要使用 --for=mount 选项。但是,无论 serviceAccountConfig.limitSecretReferences 值是什么,需要使用 --for=pull 选项启用镜像 pull secret。

这个示例创建并将 secret 添加到服务帐户中:

$ oc create secret generic secret-plans \
    --from-file=plan1.txt \
    --from-file=plan2.txt
secret/secret-plans

$ oc create secret docker-registry my-pull-secret \
    --docker-username=mastermind \
    --docker-password=12345 \
    --docker-email=mastermind@example.com
secret/my-pull-secret

$ oc secrets link robot secret-plans --for=mount

$ oc secrets link robot my-pull-secret --for=pull

$ oc describe serviceaccount robot
Name:               robot
Labels:             <none>
Image pull secrets:	robot-dockercfg-624cx
                   	my-pull-secret

Mountable secrets: 	robot-token-uzkbh
                   	robot-dockercfg-624cx
                   	secret-plans

Tokens:            	robot-token-8bhpp
                   	robot-token-uzkbh
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.