【问题标题】:How do permissions in a GCloud IAM role get implemented in a kubernetes cluster?GCloud IAM 角色中的权限如何在 Kubernetes 集群中实现?
【发布时间】:2019-08-13 20:45:24
【问题描述】:

我正在 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 通信吗?

【问题讨论】:

    标签: kubernetes google-cloud-platform google-kubernetes-engine rbac google-iam


    【解决方案1】:

    RBAC 系统可让您对用户访问集群上运行的 API 资源的方式进行细粒度控制。您可以使用 RBAC 为集群用户动态配置权限,并定义他们可以交互的资源类型。

    此外,GKE 还使用Cloud Identity and Access Management (IAM) 来控制对您的集群的访问。

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回复!但是,这并不能完全回答我的问题。正如我在another comment 中所说的那样,IAM 角色实际上是如何在集群中强制执行的?正如@suren 所建议的那样,RBAC 会继承它们吗?如果有,怎么做?
    • 根据documentation,您使用 Cloud IAM 来管理哪些用户和服务帐户可以访问您的集群并在集群中执行操作,并且您可以选择使用 Kubernetes RBAC 系统来配置集群-或命名空间级别的权限。另外,请查看Medium post,它详细解释了 GKE 上的 RBAC 和 IAM 角色。
    【解决方案2】:

    RBAC 从 IAM 继承权限,所以要小心。如果您设置集群管理员权限,例如在 IAM 中,您将无法通过 RBAC 授予更少的权限。

    如果您想使用 RBAC,则需要为用户设置最低权限(根据您的用例),然后通过 RBAC 精细管理权限。

    【讨论】:

    • 感谢您的回复。不过,我想知道的不是权限是否是附加的,等等。相反,我不清楚 RBAC 如何从 IAM 继承权限。在问题中,我注意到没有任何 GCP IAM 角色显示为 RBAC 角色。如果他们是遗传的,如何?例如,您提到的 cluster-admin 角色是否映射到 GCP 中的角色,可能是 Kubernetes Engine Cluster Admin?如果是这样,我在哪里可以找到映射?
    • 并非如此。 Kubernetes Engine Cluster Admin 是可以创建集群、管理资源等的人。主管将担任此角色。 Kubernetes Engine Admin 是 RBAC 术语中的 cluster-admin。您可以在 IAM & admin > Roles 下查看每个角色(适用于所有 GCP)中的所有权限
    猜你喜欢
    • 1970-01-01
    • 2019-06-15
    • 2019-06-07
    • 2022-08-18
    • 2021-01-03
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多