12.2. 用户名和组
每个服务帐户都有一个关联的用户名,可以像普通用户一样被授予角色。用户名派生自其项目和名称:
system:serviceaccount:<project>:<name>
例如,将 view 角色添加到 top-secret 项目中的 robot 服务帐户:
$ oc policy add-role-to-user view system:serviceaccount:top-secret:robot
重要
如果要向项目中的特定服务帐户授予访问权限,您可以使用 -z
标志。在服务帐户所属的项目中,使用 -z
标志并指定 <serviceaccount_name>
。强烈建议您这样做,因为它有助于防止拼写错误,并确保只为指定的服务帐户授予访问权限。例如:
$ oc policy add-role-to-user <role_name> -z <serviceaccount_name>
如果没有在项目中,请使用 -n
选项来指示它应用到的项目命名空间,如下例所示。
每一服务帐户也是以下两个组的成员:
- system:serviceaccounts
- 包含系统中的所有服务帐户。
- system:serviceaccounts:<project>
- 包含指定项目中的所有服务帐户。
例如,允许所有项目中的所有服务帐户查看 top-secret 项目中的资源:
$ oc policy add-role-to-group view system:serviceaccounts -n top-secret
允许 managers 项目中的所有服务帐户编辑 top-secret 项目中的资源:
$ oc policy add-role-to-group edit system:serviceaccounts:managers -n top-secret