【发布时间】:2017-12-24 07:46:52
【问题描述】:
创建服务帐户后,默认情况下它似乎可以访问所有资源(好像它获得了我所有权限的副本)。这是在 GKE 上。
服务帐户是否应该具有对资源的默认访问权限(在创建 SA 时),还是我遗漏了什么?
根据bitnami guide,默认情况下服务帐户将无法访问任何资源,直到通过相应的绑定为其分配角色/集群角色。
这是我正在运行的一个简单 bash 脚本,用于描述我看到的问题。
original_context=ehealth-dev
kubectl create sa eugene-test --context $original_context
sa_secret=$(kubectl get sa eugene-test --context $original_context -o json | jq -r .secrets[].name)
kubectl get secret --context $original_context $sa_secret -o json | jq -r '.data["ca.crt"]' | base64 -D > /tmp/my_ca.crt
user_token=$(kubectl get secret --context $original_context $sa_secret -o json | jq -r '.data["token"]' | base64 -D)
original_cluster_name=my_long_cluster_name
endpoint=`kubectl config view -o jsonpath="{.clusters[?(@.name == \"$original_cluster_name\")].cluster.server}"`
kubectl config set-credentials my_user --token=$user_token
kubectl config set-cluster my_cluster \
--embed-certs=true \
--server=$endpoint \
--certificate-authority=/tmp/my_ca.crt
kubectl config set-context my_context \
--cluster=my_cluster \
--user=my_user \
--namespace=default
kubectl config use-context my_context
kubectl get pods -n my_namespace # ------ it works! :-(
kubectl delete sa eugene-test --context $original_context
kubectl config delete-cluster my_cluster
【问题讨论】:
标签: kubernetes rbac google-kubernetes-engine