我试图设置两个不同的服务帐户以使用相同的令牌,以便在我这样做时:
oc get pods -n $ PROJECT --server = $ URL --token = $ TOKEN
我将使用相同的令牌访问两个不同的命名空间... 有可能吗?
答案 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