通过将概念模型与AWS IAM进行对比,来理解 Kubernetes 的 RBAC。理解 Kubernetes 的 RBAC,需要将其与AWS IAM进行对比

简要概述

Kubernetes的RBAC用于控制“谁(Subject)”可以使用Kubernetes的哪些“资源(Resource)”的哪些“操作(Action)”。

RBAC で実現したいことは AWS の IAM と同じです。

以前 「AWS IAMの基本概念を概念モデルで整理した」という記事でまとめたのと同じように Kubernetes の RBAC の概念モデルを作成し、さらに AWS IAM と対比させて整理しました。

结论

关于Kubernetes的RBAC概念模型

整理关于RBAC的概念,可以总结如下。

Kubernetes_RBAC (7).png

AWS Identity and Access Management(IAM)与之对比

如果将Kubernetes的RBAC要素与AWS IAM的要素进行对比,可以得出以下结论。

Kubernetes RBACAWS IAMRole, ClusterRoleIAM PolicyRoleBinding, ClusterRoleBindingIAM Policy AttachmentServiceAccountIAM RoleGroupIAM GroupUserIAM User

要素ごとの説明

角色和集群角色

Kubernetes_RBAC (2).png

Role と ClusterRole には、どのリソース (Resource) のどの 操作 (Action) を利用できるか (Rule) を定義します。
Role と ClusterRole の違いは、Namespace に紐付くか紐付かないかです。

Role与ClusterRole类似于AWS IAM的IAM策略。

Kubernetes RBACAWS IAMRole, ClusterRoleIAM Policy

角色绑定和集群角色绑定

Kubernetes_RBAC (8).png

将由 Role 和 ClusterRole 定义的内容与“某人(主体)”相关联的是 RoleBinding 和 ClusterRoleBinding。

Kubernetes RBACAWS IAMRoleBinding, ClusterRoleBindingIAM Policy Attachment

Subject

Kubernetes_RBAC (9).png

Subject的绑定方式有三种,分别为RoleBinding、ClusterRoleBinding。

    • ServiceAccount

 

    • Group

 

    User

关于 ServiceAccount 将在后面提及。
Group 是将用户归类为一组的概念。
用户是与个人相关联的实体,在 EKS 中与 IAM 进行关联认证。

Kubernetes RBACAWS IAMServiceAccountIAM RoleGroupIAM GroupUserIAM User

服务账户

Kubernetes_RBAC (6).png

当需要使用Kubernetes API时,ServiceAccount将被使用。通过将ServiceAccount与Pod关联,将自动创建用于从Pod内部访问Kubernetes API的Secret,并将其挂载到Pod上。

当使用 EC2 与 AWS 的 API 进行通信时,与 IAM 角色进行关联相同。

结束时

我以前对于Kubernetes的RBAC和AWS的IAM一直很难理解,但是通过概念模型的总结,我的理解变得更深刻了。

如果有人发现错误,请指出来。

广告
将在 10 秒后关闭
bannerAds