Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes RBAC-限制一个服务帐户的访问权限_Kubernetes_Google Kubernetes Engine_Kubectl_Google Container Os - Fatal编程技术网

Kubernetes RBAC-限制一个服务帐户的访问权限

Kubernetes RBAC-限制一个服务帐户的访问权限,kubernetes,google-kubernetes-engine,kubectl,google-container-os,Kubernetes,Google Kubernetes Engine,Kubectl,Google Container Os,我想将权限限制为以下服务帐户,已按如下方式创建该帐户: 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=$(ku

我想将权限限制为以下服务帐户,已按如下方式创建该帐户:

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配置获取上下文

#kubectl配置使用上下文

此用户有权通过以下方式查看所有内容:
kubectl--context=alice staging get pods--all namespace

我尝试用以下内容限制它,但仍然拥有所有权限:

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
其想法是限制对命名空间的访问,以便为用户分发令牌,但我不明白。。。我想这可能是因为继承了权限,但我不能为单个ServiceA帐户禁用它

使用:GKE、容器vm


谢谢

请注意,服务帐户不是针对用户的,而是针对在pods()中运行的进程的

在中,您可以找到如何为K8s群集创建用户帐户


此外,我建议您检查集群中是否实际启用了RBAC,这可以解释用户可以执行预期的更多操作。

请注意,服务帐户不是针对用户的,而是针对在POD()中运行的进程的

在中,您可以找到如何为K8s群集创建用户帐户


此外,我建议您检查集群中是否实际启用了RBAC,这可以解释用户可以执行预期的更多操作。

它正在使用Webhook:ps-aux | grep-o“授权模式=[a-zA-Z]*”>>>authorization mode=Webhook--我必须弄清楚如何对gk进行此更改最终使用:
gcloud container clusters update NAME-CLUSTER--no enable legacy authorization--zone=YOUR-zone
来源:它正在使用Webhook:ps-aux | grep-o“authorization mode=[a-zA-Z]*”>>>authorization mode=Webhook--我必须弄清楚如何对gk进行此更改最终使用:
gcloud container clusters update NAME-CLUSTER--no enable legacy authorization--zone=YOUR-zone
来源: