ich die Berechtigungen für den folgenden Dienstkonto beschränken möchten, erstellt es wie folgt:RBAC - Beschränken Sie den Zugriff für ein Dienstkonto
kubectl create serviceaccount alice --namespace default
secret=$(kubectl get sa alice -o json | jq -r .secrets[].name)
kubectl get secret $secret -o json | jq -r '.data["ca.crt"]' | base64 -d > ca.crt
user_token=$(kubectl get secret $secret -o json | jq -r '.data["token"]' | base64 -d)
c=`kubectl config current-context`
name=`kubectl config get-contexts $c | awk '{print $3}' | tail -n 1`
endpoint=`kubectl config view -o jsonpath="{.clusters[?(@.name == \"$name\")].cluster.server}"`
kubectl config set-cluster cluster-staging \
--embed-certs=true \
--server=$endpoint \
--certificate-authority=./ca.crt
kubectl config set-credentials alice-staging --token=$user_token
kubectl config set-context alice-staging \
--cluster=cluster-staging \
--user=alice-staging \
--namespace=default
kubectl config get-contexts
#kubectl config use-context alice-staging
Dies hat die Erlaubnis zu sehen alles mit: kubectl --context=alice-staging get pods --all-namespaces
I t ry es mit dem folgenden zu begrenzen, aber immer noch alle Berechtigungen hat:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: no-access
rules:
- apiGroups: [""]
resources: [""]
verbs: [""]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: no-access-role
subjects:
- kind: ServiceAccount
name: alice
namespace: default
roleRef:
kind: ClusterRole
name: no-access
apiGroup: rbac.authorization.k8s.io
Die Idee ist, den Zugang zu einem Namensraum zu begrenzen Token für die Nutzer zu verteilen, aber ich verstehe es nicht ... Ich denke, es kann für geerbte Berechtigungen sein, aber ich kann nicht für einen einzelnen Serviceaccount deaktiviert werden.
Verwendung: GKE, Container-vm
THX!
Es verwendet Webhook: ps -aux | grep -o "berechtigungsmodus = [a-zA-Z] *" >>> berechtigungsmodus = Webhook --- Ich muss herausfinden, wie ich diese Änderung für GKE vornehmen kann. – jbelenus
Zum Schluss: 'gcloud container clusters update NAME -CLUSTER --no-enable-legacy-authorization --zone = DEINE ZONE Quelle: https://cloud.google.com/container-engine/docs/role-based-access-control – jbelenus