Kubernetes 获取k8s rbac用户的访问令牌

Kubernetes 获取k8s rbac用户的访问令牌,kubernetes,rbac,Kubernetes,Rbac,具有: 和角色绑定: kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: default name: example-role rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"] 我怎样

具有:

和角色绑定:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default
  name: example-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
我怎样才能得到这个秘密令牌

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: example-rolebinding
  namespace: default
subjects:
- kind: User
  name: example-user
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: example-role
  apiGroup: rbac.authorization.k8s.io
但是用户没有秘密,只有“默认令牌xxx”


我需要绑定服务帐户还是将令牌添加到默认令牌xxx?

所有Kubernetes群集都有两类用户:Kubernetes管理的服务帐户和普通用户,以及第三个主题:组。Kubernetes没有表示普通用户帐户的对象(种类)。无法通过API调用将普通用户添加到集群。普通用户通常通过与其他身份验证协议(如LDAP、SAML、Azure Active Directory、Kerberos等)的集成进行管理或身份验证。您可以利用外部身份提供程序(如OIDC)通过令牌进行身份验证

对于服务帐户,正如您正确注意到的,如果您没有在名称空间中显式创建,您将只能访问默认服务帐户,该帐户将是
default token-

令牌不是为“普通用户”自动创建的,而是为服务帐户自动创建的。服务帐户是由Kubernetes API管理的用户。它们绑定到特定的名称空间,并由API服务器自动创建或通过API调用手动创建。服务帐户绑定到一组作为机密存储的凭据

Kubernetes使用客户端证书、承载令牌、身份验证代理或HTTP基本身份验证通过身份验证插件对API请求进行身份验证。当向API服务器发出HTTP请求时,插件尝试将以下属性与请求关联:

  • 用户名:标识最终用户的字符串。公共值可以是kube admin或jane@example.com.
  • UID:标识最终用户并试图比用户名更一致和唯一的字符串

如果我们知道正在使用的用户身份验证集成是什么,那么用户身份验证的主题就更容易回答。

谢谢,这是一个很好的解释-我接受并需要使用“用户客户端证书”。也许我会创建一个新的问题,具体说明这一点,并让您知道;-)再次感谢
token=$(kubectl get secret/$name -o jsonpath='{.data.token}' | base64 --decode)