配置基于角色的访问权限控制

以下步骤将指导您在 Kf 空间中配置基于角色的访问权限控制 (RBAC)。

准备工作

在继续执行以下步骤之前,请先按照 GKE RBAC 指南操作。

配置 Identity and Access Management (IAM)

除了通过 Kf RBAC 授予的权限外,用户、群组或服务账号还必须经过身份验证,才能在项目级层查看 GKE 集群。此要求与配置 GKE RBAC 的要求相同,这意味着用户/群组必须至少具有集群所属的项目的 container.clusters.get IAM 权限。container.clusterViewer 角色和其他权限更高的角色都拥有此权限。如需了解详情,请参阅与 Identity and Access Management 的交互

为用户或群组分配 container.clusterViewer

gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \
  --role="container.clusterViewer" \
  --member="${MEMBER}"

成员值示例包括:

  • user:test-user@gmail.com
  • group:admins@example.com
  • serviceAccount:test123@example.domain.com

以 SpaceManager 身份管理空间会员

集群管理员角色或具有 SpaceManager 角色的成员可以为用户、群组或服务账号分配角色。

kf set-space-role MEMBER -t [Group|ServiceAccount|User]

集群管理员角色或具有 SpaceManager 角色的成员可以从角色中移除成员。

kf unset-space-role MEMBER -t [Group|ServiceAccount|User]

您可以查看空间中的成员及其角色。

kf space-users

示例:

为用户分配 SpaceDeveloper 角色。

kf set-space-role alice@example.com SpaceDeveloper

为群组分配 SpaceDeveloper 角色。

kf set-space-role devs@example.com SpaceDeveloper -t Group

为服务账号分配 SpaceDeveloper 角色。

kf set-space-role sa-dev@example.domain.com SpaceDeveloper -t ServiceAccount

以 SpaceDeveloper 身份开发应用

具有 SpaceDeveloper 角色的成员可以在空间中执行 Kf 应用开发操作。

如需推送应用,请运行以下命令:

kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]

如需查看应用的日志,请运行以下命令:posix-terminal kf logs app_name

通过 SSH 连接到运行应用的 Kubernetes Pod:posix-terminal kf ssh app_name

查看可用的 service broker:

kf marketplace

以 SpaceManager 或 SpaceAuditor 身份查看应用

具有 SpaceManagerSpaceAuditor 角色的成员可以查看空间中可用的应用:

kf apps

查看集群中的 Kf 空间

所有角色(SpaceManagerSpaceDeveloperSpaceAuditor)均可查看集群中可用的 Kf 空间:

kf spaces

查看空间中的空间成员及其角色。

kf space-users

模拟标志

如需验证成员的权限,权限更高的成员可以使用以下模拟标志测试其他成员的权限:--as--as-group

例如,作为集群管理员,您可以验证用户(用户名:bob)是否有权推送应用。

kf push APP_NAME --as bob

验证群组 (manager-group@example.com) 是否有权向其他成员分配权限。

kf set-space-role bob SpaceDeveloper --as-group manager-group@example.com