是否可以在AWS EKS中启用k8s基本身份验证?
当Jenkins部署在k8s之外时,我需要它来使Jenkins Kubernetes插件正常工作。
答案 0 :(得分:0)
您可以使用服务帐户令牌。
在此处详细了解:https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens
答案 1 :(得分:0)
您可以使用服务帐户令牌(作为承载令牌)。
服务帐户承载令牌非常有效,可以在集群外部使用,并且可以用于为希望与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可用作承载令牌,以验证给定的服务帐户。
答案 2 :(得分:0)
如果您需要更多控制,请安装 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/