添加服务帐户后,默认情况下会获取所有权限

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

创建服务帐户后,默认情况下似乎可以访问所有资源(就好像它获取了我所有权限的副本)。这是在GKE上。

服务帐户是否应该具有对资源的默认访问权限(在创建SA时),或者我是否遗漏了某些内容?

根据bitnami guide,默认情况下,服务帐户在通过相应绑定分配Roles / ClusterRoles之前不能访问任何资源。

这是一个简单的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
1个回答
0
投票

早期版本的GKE启用了静态授权,为所有服务帐户提供了完整的API权限。这不再是1.8的默认值。

1.8之前的版本可以使用--no-enable-legacy-authorization标志禁用此许可权限到gcloud

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