恢复k8s服务帐户令牌

问题描述 投票:0回答:1

我想从备份中恢复 kubernetes 服务帐户令牌(这实际上只是相应密钥的导出):

apiVersion: v1
kind: Secret
metadata:
  name: my-service-account-token-lqrvp
  annotations:
    kubernetes.io/service-account.name: my-service-account
type: kubernetes.io/service-account-token
data:
  token: bXktc2ltcGxlLXRva2VuCg==

秘密已成功应用并已添加到服务帐户:

# kubectl apply -f my-service-account.yaml
secret/my-service-account-token-lqrvp created

# kubectl describe sa my-service-account
Name:                my-service-account
Namespace:           my-namespace
Labels:              <none>
Annotations:         kubernetes.io/service-account.name: my-service-account
Image pull secrets:  my-service-account-dockercfg-lv9hp
Mountable secrets:   my-service-account-token-lv9hp
Tokens:              my-service-account-token-lqrvp
Events:              <none>

不幸的是,每次我尝试使用令牌访问 api 时,我总是收到错误“提供的令牌无效或已过期”:

# kubectl login https://api.my-k8s-cluster.mydomain.com:6443 --token=my-simple-token
error: The token provided is invalid or expired

我知道令牌通常是由controller-manager自动生成的,但是恢复kubernetes支持的令牌吗?

kubernetes openshift kubernetes-secrets
1个回答
0
投票

您不能这样做,因为令牌具有有关服务帐户 uid 的详细信息,该 uid 是唯一的,甚至在 SA 及其秘密(令牌)恢复后 SA 的名称也相同。通过从 Base64 解码令牌并传递到 JWT 解码器 来查看里面的内容,可以找到更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.