OpenShift:是否可以在两个不同的服务帐户中使用相同的秘密令牌?

时间:2018-03-29 19:12:43

标签: openshift

我试图设置两个不同的服务帐户以使用相同的令牌,以便在我这样做时:

  

oc get pods -n $ PROJECT --server = $ URL --token = $ TOKEN

我将使用相同的令牌访问两个不同的命名空间... 有可能吗?

1 个答案:

答案 0 :(得分:1)

不可能有两个不同的服务帐户由同一令牌标识。令牌具有注释City <- na.locf(City) ,以标识其所属的服务帐户,例如,以下标记映射到kubernetes.io/service-account.name

serviceaccount1

令牌只能有一个这样的注释,因此它只能映射到单个服务帐户。这是有道理的,否则OpenShift在呈现该令牌时将无法知道要使用哪个服务帐户。

也就是说,您应该能够在一个名称空间中授予一个服务帐户权限,以查看/编辑另一个项目。

例如,如果我们创建2个项目:

$ oc describe secret serviceaccount1-token-mwhh7 -n project1
Name:   serviceaccount1-token-mwhh7
Namespace:  project1
Labels:   <none>
Annotations:  kubernetes.io/service-account.name=serviceaccount1
    kubernetes.io/service-account.uid=23f96072-342e-11e8-9218-fec13b217f77

Type: kubernetes.io/service-account-token

每个服务帐户:

oc new-project project1
oc new-project project2

然后在oc create sa serviceaccount1 -n project1 oc create sa serviceaccount2 -n project2 权限中授予serviceaccount2以查看project2

project1

然后我们可以获取oc policy add-role-to-user view system:serviceaccount:project2:serviceaccount2 -n project1 的代码:

serviceaccount2

并使用它来访问oc serviceaccounts get-token serviceaccount2

project1