是否可以在 AWS EKS 中启用 k8s 基本身份验证?
当 Jenkins 部署在 k8s 之外时,我需要它来使 Jenkins Kubernetes 插件工作。
是否可以在 AWS EKS 中启用 k8s 基本身份验证?
当 Jenkins 部署在 k8s 之外时,我需要它来使 Jenkins Kubernetes 插件工作。
您可以使用服务帐户令牌。
在此处阅读更多信息:https ://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens
如果您需要更多控制,请安装 nginx-ingress,然后告诉它强制执行 HTTP 基本身份验证。
https://kubernetes.github.io/ingress-nginx/examples/auth/basic/
https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/
您可以使用服务帐户令牌(作为承载令牌)。
服务帐户不记名令牌完全可以在集群外使用,并可用于为希望与 Kubernetes API 对话的长期作业创建身份。要手动创建服务帐户,只需使用kubectl create serviceaccount (NAME)
命令。这会在当前命名空间中创建一个服务帐户和一个关联的机密。
kubectl create serviceaccount jenkins
serviceaccount "jenkins" created
检查关联的秘密:
kubectl get serviceaccounts jenkins -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
# ...
secrets:
- name: jenkins-token-1yvwg
创建的密钥包含 API 服务器的公共 CA 和签名的 JSON Web 令牌 (JWT)。
kubectl get secret jenkins-token-1yvwg -o yaml
apiVersion: v1
data:
ca.crt: (APISERVER'S CA BASE64 ENCODED)
namespace: ZGVmYXVsdA==
token: (BEARER TOKEN BASE64 ENCODED)
kind: Secret
metadata:
# ...
type: kubernetes.io/service-account-token
签名的 JWT 可用作不记名令牌,以作为给定服务帐户进行身份验证。