我在GKE上运行Kubernetes应用程序。在GCP IAM控制台中,我可以看到几个内置角色,例如Kubernetes Engine Admin
。每个角色都有一个ID和与之相关的权限 - 例如,Kubernetes Engine Admin
有ID roles/container.admin
和~300权限,每个都像container.apiServices.create
。
在kubernetes集群中,我可以运行:
kubectl get clusterrole | grep -v system: # exclude system roles
这将返回以下内容:
NAME AGE
admin 35d
cloud-provider 35d
cluster-admin 35d
cluster-autoscaler 35d
edit 35d
gce:beta:kubelet-certificate-bootstrap 35d
gce:beta:kubelet-certificate-rotation 35d
gce:cloud-provider 35d
kubelet-api-admin 35d
view 35d
我没有在此表中看到任何反映GCP IAM中角色的角色。
既然如此,如何在集群中实施/实施GCP IAM角色?在进行权限检查时,除了使用RBAC之外,Kubernetes是否与GCP通信?
RBAC系统允许您对用户访问群集上运行的API资源的方式进行细粒度控制。您可以使用RBAC动态配置群集用户的权限,并定义可与之交互的资源种类。
此外,GKE还使用Cloud Identity and Access Management (IAM)来控制对群集的访问。
希望这可以帮助!
RBAC继承了IAM的权限,所以要小心。例如,如果您在IAM中设置了群集管理员权限,则无法通过RBAC提供较少的权限。
如果要使用RBAC,则需要为用户设置最低权限(给定用例),然后通过RBAC精细管理权限。