[英]In GCP Kubernetes (GKE) how do I assign a stateless pod created by a deployment to a provisioned vm
[英]How do I relate GCP users to GKE Kubernetes users, for authentication and subsequent authorization?
我在GCP中使用GKE Kubernetes。 我是GCP,GKE和kubectl的新手。 我正在嘗試創建新的Kubernetes用戶以為其分配ClusterRoleBindings,然后以這些用戶身份登錄(kubectl)。
我看不到GCP用戶和Kubernetes“用戶”之間的關系(我知道Kubernetes中沒有User對象類型)。
根據https://cloud.google.com/kubernetes-engine/docs/concepts/security-overview的說法,Kubernetes用戶帳戶是Google帳戶。
因此,我創建了一些Google帳戶,然后通過IAM將它們與我的GCP帳戶相關聯。 我可以在IAM中看到這些帳戶很好。
然后,我對這些新用戶執行了gcloud auth登錄,然后可以在gcloud auth列表中看到它們。 然后,我嘗試以各種用戶身份訪問gcloud資源(gcloud計算磁盤列表)。 這按預期工作-遵守了GCP用戶權限。
然后,我創建了一個Kubernetes UserRole。 下一步是使用UserRoleBinding將這些用戶綁定到那些角色。
ClusterRole.yaml(可以正常創建):
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
# "namespace" omitted since ClusterRoles are not namespaced
name: cluster-role-pod-reader-1
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
ClusterRoleBinding.yaml(可以正常創建):
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: cluster-role-binding-pod-reader-1
subjects:
- kind: User
name: MYTESTUSER@gmail.com # not real userid
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: cluster-role-pod-reader-1
apiGroup: rbac.authorization.k8s.io
在Kubernetes中,我可以創建綁定,但是我的第一個問題是我可以在現有UserRole和不存在的用戶之間創建UserRoleBinding。 我以為那會失敗。 這意味着我缺少重要的東西。
我的第二個問題是我不知道如何以新用戶之一身份登錄kubectl。
總體而言,我缺少GCP / IAM用戶和GKE用戶之間的聯系。 幫助將不勝感激!
Kubernetes沒有用戶數據庫。 用戶生活在集群之外,通常由雲提供商控制。
如果您使用的是GKE,則用戶由GCP IAM控制。 因此,您無法使用kubectl
列出用戶。
但是您可以創建服務帳戶 。 但是,了解服務帳戶和用戶之間的區別很重要。 用戶是真實人,服務帳戶是kubernetes內部和外部的進程。
創建ClusterRoleBinding時,這意味着對kubernetes:
如果用戶名為MYTESTUSER@gmail.com的用戶進入集群, 請將其綁定到ClusterRole cluster-role-pod-reader-1
要將kubernetes與GCP IAM用戶一起使用,您必須執行以下操作:
roles/container.viewer
您可以使用以下命令列出相應的IAM角色(不要誤認為RBAC角色):
gcloud iam roles list | grep 'roles/container\.' -B2 -A2
考慮到最小特權原則,您應該僅向用戶授予最小權限才能登錄到群集。 其他IAM角色( roles/container.clusterAdmin
除外)將自動向您的項目所有群集內的對象授予具有更高特權的訪問權限。
RBAC僅允許添加特權,因此您應該選擇具有最少特權的IAM角色,然后通過RBAC添加所需的特權。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.