本页面介绍了 Google Distributed Cloud (GDC) 气隙设备上应用运维人员 (AO) 的身份和访问管理 (IAM) 实践。
身份提供方 (IdP) 是一种系统实体,负责为正文创建、维护和管理身份信息。IdP 还为联邦或分布式网络中的应用提供身份验证服务。
登录
本部分介绍了如何通过 Web 界面 (UI) 或命令行界面 (CLI) 访问工作负载。
登录网页界面
本页介绍了如何在 Google Distributed Cloud (GDC) 气隙设备中访问和管理工作负载及资源。本文档介绍了如何进行身份验证、为管理 API 服务器和 Kubernetes 集群生成 kubeconfig 文件,以及管理会话不活动状态。了解这些流程有助于确保安全可靠地访问您的项目和工作负载。
通过 GDC 控制台或 gdcloud CLI 访问工作负载。
登录
如需登录 GDC 控制台或集群,请按以下步骤操作:
控制台
在新浏览器标签页中打开以下网址,以访问 GDC 气隙设备用户界面 (UI):
https://GDC_URL
将 GDC_URL
替换为用于访问 GDC 的域名,该域名由基础设施运维人员 (IO) 提供。首次打开任何网址时,如果基础设施运维人员 (IO) 配置了该网页,GDC 会将您重定向到身份提供方登录页面。
例如,在登录名为“org-1”的组织的控制台后,系统会显示以下页面:
CLI
您可以登录有权访问的任何集群。所有集群的 CLI 登录流程都相同。您只需提供集群名称及其相关的 kubeconfig
文件,然后分别登录到每个集群。
在登录之前,请务必完成以下事项:
- 下载 gdcloud CLI 二进制文件并将其安装到您的系统中。如需了解详情,请参阅下载 gdcloud CLI。
- 设置并初始化 gdcloud CLI 默认配置。请务必设置正确的组织网址,该网址用于提取登录配置端点。如需了解详情,请参阅 gdcloud CLI 安装。
- 安装身份验证插件
gdcloud-k8s-auth-plugin
。如需了解详情,请参阅 gcloud CLI 身份验证。
如需登录集群,请完成以下步骤:
对 gdcloud CLI 实例进行身份验证以登录。您可以通过以下两种方式进行身份验证:
标准浏览器登录:从浏览器登录时使用此身份验证流程。
gdcloud auth login
辅助设备登录:如果您的主设备没有可用的浏览器,请使用此身份验证流程。此流程首先在无法访问浏览器的主设备上开始登录,然后继续在可以访问浏览器的辅助设备上完成登录。
在没有浏览器的主设备上启动登录:
gdcloud auth login --no-browser
主设备中的命令会输出另一个
gdcloud
命令,您必须在步骤 c 中在辅助设备上运行该命令。重复登录集群的第 1 步,在辅助设备上下载证书。
在辅助设备上输入在步骤 a 中主设备上显示的命令,完成登录。
此操作会打开一个浏览器,以便登录到配置的身份提供方 (IdP)。提供您在初始 gdcloud CLI 设置期间设置的用户和密码以进行登录。
将您的用户身份
kubeconfig
文件导出为变量:export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
生成包含用户身份信息的
kubeconfig
文件:gdcloud clusters get-credentials CLUSTER_NAME
系统会生成一个包含您的用户身份信息的
kubeconfig
文件。以下 YAML 文件显示了一个示例:apiVersion: v1 clusters: - cluster: certificate-authority-data: <REDACTED> server: https://10.200.0.32:443 name: cluster-name contexts: - context: cluster: cluster-name user: cluster-name-anthos-default-user name: cluster-name-cluster-name-anthos-default-user current-context: cluster-name-cluster-name-anthos-default-user kind: Config preferences: {} users: - name: cluster-name-anthos-default-user user: exec: apiVersion: client.authentication.k8s.io/v1 args: - --audience=root-admin command: gdcloud-k8s-auth-plugin env: null installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin interactiveMode: Never provideClusterInfo: false
如需验证您是否可以访问集群,请使用生成的
kubeconfig
文件以用户身份登录:kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
退出账号
如需退出 GDC 控制台,请执行以下操作:
控制台
点击菜单栏中的
退出。CLI
从 CLI 退出:
gdcloud auth revoke
手动生成 kubeconfig 文件
如果您通过直接调用 KRM API 来使用 kubectl CLI 管理资源,则必须根据您管理的资源类型,为托管资源的集群生成 kubeconfig 文件。请访问相应资源的文档,确定您需要的 kubeconfig 文件。
根据您的资源类型完成适用的设置。
管理 API 服务器资源
完成以下步骤,为 Management API 服务器生成 kubeconfig 文件:
设置
MANAGEMENT_API_SERVER
环境变量:export MANAGEMENT_API_SERVER="root-admin"
生成管理 API 服务器 kubeconfig 文件,并验证凭据:
export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?} [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
命令
rm ${KUBECONFIG:?}
会移除主目录中的现有 kubeconfig 文件。生成新的 kubeconfig 文件时,系统会覆盖现有文件。如果您不想覆盖或移除现有文件,请将其备份到其他安全位置。
Kubernetes 集群资源
请完成以下步骤,为 Bare Metal Kubernetes 集群生成 kubeconfig 文件:
设置
KUBERNETES_CLUSTER
环境变量:export KUBERNETES_CLUSTER="root-infra"
生成 Kubernetes 集群 kubeconfig 文件,并验证凭据:
export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?} [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
命令
rm ${KUBECONFIG:?}
会移除主目录中的现有 kubeconfig 文件。生成新的 kubeconfig 文件时,系统会覆盖现有文件。如果您不想覆盖或移除现有文件,请将其备份到其他安全位置。
会话无活动状态下的退出
如果会话处于非活动状态的时间超过 15 分钟,GDC 控制台和 gdcloud CLI 会将您退出登录。 GDC 将会话不活动视为开放会话期间您没有任何主动互动的时间段,例如没有光标或键盘移动。在用户活跃的情况下,有效会话最多可持续 12 小时。
控制台
对于会话闲置,GDC 控制台会将您退出登录。在 GDC 控制台因您未做任何操作而将您退出登录前两分钟,您会收到一个对话框,其中会提醒您即将退出登录:
在因闲置而将您退出账号后,您会看到以下界面:
如需重新登录 GDC 控制台,请选择您的身份提供方并添加您的登录凭据。如果您使用监控信息中心等服务,并且 GDC 控制台因您长时间处于不活动状态而将您退出,请重新登录以获取访问权限。
CLI
如果会话处于不活跃状态,gcloud CLI 会将您退出。在 gdcloud CLI 将您退出登录后,如果您尝试运行命令,则会收到授权错误:
Error: error when creating kube client: unable to create k8sclient: Unauthorized
如需重新登录 gdcloud CLI,请按照登录中的 CLI 步骤操作。
kubectl
gdcloud CLI 会在会话处于不活动状态一段时间后使您的 kubeconfig 文件过期。如果您在不活动一段时间后尝试运行 kubectl
命令,则会收到授权错误:
error: You must be logged in to the server (Unauthorized)
如需重新登录并使用 kubeconfig 文件,请按照登录中的 CLI 步骤操作。每次会话超时后,您都必须重新生成 kubeconfig 文件。
设置 IAM 允许政策
预定义角色说明
应用运维人员 (AO) 是平台管理员 (PA) 组织内开发团队的成员。AO 会与项目级资源进行交互。您可以向团队成员分配以下预定义角色:
- Project IAM Admin:管理项目的 IAM 允许政策。
- AI OCR 开发者:访问光学字符识别服务以检测图片中的文本。
- AI Speech Developer:访问 Speech-to-Text 服务以识别语音和转写音频。
- AI Translation Developer:访问 Vertex AI Translation 服务以翻译文本。
- 制品管理管理员:对项目命名空间中的所有 Harbor 项目中的资源拥有管理员访问权限。
- Artifact Management Editor:拥有项目命名空间中所有 Harbor 项目的资源读写权限。
- Certificate Authority Service Admin:有权管理其项目中的证书授权机构和证书请求。
- Certificate Service Admin:有权管理其项目中的证书和证书签发者。
- 信息中心编辑器:对
Dashboard
自定义资源拥有读写权限。 - Dashboard Viewer:拥有对
Dashboard
自定义资源的只读权限。 - Harbor 实例管理员:拥有管理项目中的 Harbor 实例的完整权限。
- Harbor 实例查看者:拥有只读权限,可查看项目中的 Harbor 实例。
- Harbor Project Creator:拥有管理 Harbor 实例项目的权限。
- K8s Network Policy Admin:管理 Kubernetes 集群中的网络政策。
- LoggingRule 创建者:在项目命名空间中创建
LoggingRule
自定义资源。 - LoggingRule 编辑器:用于修改项目命名空间中的
LoggingRule
自定义资源。 - LoggingRule Viewer:查看项目命名空间中的
LoggingRule
自定义资源。 - LoggingTarget 创建者:在项目命名空间中创建
LoggingTarget
自定义资源。 - LoggingTarget 编辑器:用于修改项目命名空间中的
LoggingTarget
自定义资源。 - LoggingTarget Viewer:查看项目命名空间中的
LoggingTarget
自定义资源。 - Load Balancer Admin:对项目命名空间中的所有负载均衡器资源拥有读取和写入权限。
- MonitoringRule Editor:拥有对
MonitoringRule
资源的读写权限。 - MonitoringRule Viewer:拥有对
MonitoringRule
自定义资源的只读权限。 - MonitoringTarget Editor:拥有对
MonitoringTarget
自定义资源的读写权限。 - MonitoringTarget Viewer:拥有对
MonitoringTarget
自定义资源的只读权限。 - NAT 查看者:拥有对 Kubernetes 集群中部署的只读权限。
- 命名空间管理员:管理项目命名空间中的所有资源。
- ObservabilityPipeline Editor:对
ObservabilityPipeine
自定义资源拥有读写权限。 - ObservabilityPipeline Viewer:拥有对
ObservabilityPipeline
自定义资源的只读权限。 - Project Bucket Admin:管理存储分区和存储分区内的对象。
- 项目存储分区对象管理员:对项目中的存储分区具有只读权限,对这些存储分区中的对象具有读写权限。
- Project Bucket Object Viewer:拥有对项目内存储分区以及这些存储分区中对象的只读权限。
- Project Cortex Alertmanager Editor:授予在项目命名空间中修改 Cortex Alertmanager 实例的权限。
- Project Cortex Alertmanager Viewer:授予访问项目命名空间中 Cortex Alertmanager 实例的权限。
- Project Cortex Prometheus Viewer:授予访问项目命名空间中 Cortex Prometheus 实例的权限。
- 项目 Grafana 查看者:访问舰队管理员集群的项目命名空间中的 Grafana 实例。
- Project NetworkPolicy Admin:管理项目命名空间中的项目网络政策。
- 项目查看者:拥有对项目命名空间内所有资源的只读权限。
- Project VirtualMachine Admin:管理项目命名空间中的虚拟机。
- Project VirtualMachine Image Admin:管理项目命名空间中的虚拟机映像。
- Secret Admin:管理项目中的 Kubernetes Secret。
- Secret Viewer:查看项目中的 Kubernetes Secret。
- Service Configuration Admin:对项目命名空间内的服务配置具有读写权限。
- 服务配置查看者:对项目命名空间内的服务配置具有读取权限。
- 卷复制管理员:管理卷复制资源。
- Workbench Notebooks Admin:获取对项目命名空间内所有笔记本资源的读写权限。
- Workbench Notebooks Viewer:获取对项目命名空间内所有笔记本资源的只读访问权限,并查看 Vertex AI Workbench 界面。
- 工作负载查看者:拥有对项目中工作负载的读取权限。
常见角色
以下预定义的常见角色适用于所有通过身份验证的用户:
- AI Platform Viewer:授予查看预训练服务的权限。
- DNS 后缀查看器:访问域名服务 (DNS) 后缀配置映射。
- Flow Log Admin:拥有对所有流日志资源的读写权限。
- Flow Log Viewer:拥有对所有流日志资源的只读权限。
- Project Discovery Viewer:向所有经过身份验证的用户授予对项目视图的读取权限。
- 公共映像查看者:对命名空间
vm-images
中的公共虚拟机映像拥有读取权限,适用于所有经过身份验证的用户。 - 系统制品注册表 anthos-creds Secret 监控器:对
anthos-creds
命名空间中的 Secret 具有只读访问权限。 - 系统制品注册表 gpc-system Secret 监控器:对
gpc-system
命名空间中的 Secret 具有只读访问权限。 - 系统制品注册表 harbor-system Secret 监控器:对
harbor-system
命名空间中的 Secret 具有只读访问权限。 - 虚拟机类型查看者:拥有对集群范围的虚拟机类型的读取权限。
- 虚拟机类型查看者:对管理员集群上预定义的虚拟机类型具有读取权限。
角色定义
本部分中的表格介绍了不同的预定义角色及其权限。这些表格包含以下列:
- 名称:界面 (UI) 中显示的角色名称。
- Kubernetes 资源名称:相应 Kubernetes 自定义资源的名称。
- 级别:用于指定此角色的范围是组织还是项目。
- Type: The type of this role. 例如,一些可能的值包括
Role
、ProjectRole
、ClusterRole
或ProjectClusterRole
。 - 绑定类型:您必须应用于此角色的绑定类型。
- 管理 API 服务器或 Kubernetes 集群权限:此角色对管理 API 服务器或 Kubernetes 集群拥有的权限。例如,一些可能的值包括读取、写入、读取和写入,或不适用 (N/A)。
- 升级为:用于指定此角色是否升级为其他角色。
AO 角色、预定义身份和访问权限角色
AO persona | ||||
---|---|---|---|---|
名称 | Kubernetes 资源名称 | 初始管理员 | 级别 | 类型 |
Project IAM Admin | project-iam-admin |
正确 | 项目 | Role |
AI OCR 开发者 | ai-ocr-developer |
错误 | 项目 | Role |
AI Platform Viewer | ai-platform-viewer |
错误 | 项目 | Role |
AI 语音开发者 | ai-speech-developer |
错误 | 项目 | Role |
AI Translation Developer | ai-translation-developer |
错误 | 项目 | Role |
制品管理管理员 | artifact-management-admin |
错误 | 项目 | Role |
制品管理编辑器 | artifact-management-editor |
错误 | 项目 | Role |
Certificate Authority Service Admin | certificate-authority-service-admin |
错误 | 项目 | Role |
Certificate Service Admin | certificate-service-admin |
错误 | 项目 | Role |
信息中心编辑器 | dashboard-editor |
错误 | 项目 | Role |
信息中心查看器 | dashboard-viewer |
错误 | 项目 | Role |
Harbor 实例管理员 | harbor-instance-admin |
错误 | 项目 | Role |
Harbor Instance Viewer | harbor-instance-viewer |
错误 | 项目 | Role |
Harbor 项目创建者 | harbor-project-creator |
错误 | 项目 | Role |
K8s Network Policy Admin | k8s-networkpolicy-admin |
错误 | 项目 | ProjectRole |
负载平衡器管理员 | load-balancer-admin |
错误 | 项目 | ProjectRole |
LoggingRule Creator | loggingrule-creator |
错误 | 项目 | Role |
LoggingRule 编辑器 | loggingrule-editor |
错误 | 项目 | Role |
LoggingRule 查看者 | loggingrule-viewer |
错误 | 项目 | Role |
LoggingTarget 创建者 | loggingtarget-creator |
错误 | 项目 | Role |
LoggingTarget 编辑器 | loggingtarget-editor |
错误 | 项目 | Role |
LoggingTarget 查看器 | loggingtarget-viewer |
错误 | 项目 | Role |
MonitoringRule 编辑器 | monitoringrule-editor |
错误 | 项目 | Role |
MonitoringRule 查看器 | monitoringrule-viewer |
错误 | 项目 | Role |
MonitoringTarget 编辑器 | monitoringtarget-editor |
错误 | 项目 | Role |
MonitoringTarget 查看器 | monitoringtarget-viewer |
错误 | 项目 | Role |
Namespace Admin | namespace-admin |
错误 | 项目 | ProjectRole |
NAT 查看器 | nat-viewer |
错误 | 项目 | ProjectRole |
ObservabilityPipeline Editor | observabilitypipeline-editor |
错误 | 项目 | Role |
ObservabilityPipeline Viewer | observabilitypipeline-viewer |
错误 | 项目 | Role |
项目级存储分区管理员 | project-bucket-admin |
错误 | 项目 | Role |
Project Bucket Object Admin | project-bucket-object-admin |
错误 | 项目 | Role |
Project Bucket Object Viewer | project-bucket-object-viewer |
错误 | 项目 | Role |
Project Cortex Alertmanager 编辑器 | project-cortex-alertmanager-editor |
错误 | 项目 | Role |
Project Cortex Alertmanager Viewer | project-cortex-alertmanager-viewer |
错误 | 项目 | Role |
Project Cortex Prometheus 查看器 | project-cortex-prometheus-viewer |
错误 | 项目 | Role |
Project Grafana Viewer | project-grafana-viewer |
错误 | 项目 | Role |
项目 NetworkPolicy 管理员 | project-networkpolicy-admin |
错误 | 项目 | Role |
Project Viewer | project-viewer |
错误 | 项目 | Role |
项目虚拟机管理员 | project-vm-admin |
错误 | 项目 | Role |
Project VirtualMachine Image Admin | project-vm-image-admin |
错误 | 项目 | Role |
Secret Admin | secret-admin |
错误 | 项目 | Role |
Secret Viewer | secret-viewer |
错误 | 项目 | Role |
Service Configuration Admin | service-configuration-admin |
错误 | 项目 | Role |
Service Configuration Viewer | service-configuration-viewer |
错误 | 项目 | Role |
Workbench Notebooks Admin | workbench-notebooks-admin |
错误 | 项目 | Role |
卷复制管理员 | app-volume-replication-admin |
错误 | 集群 | Role |
Workbench Notebooks 查看器 | workbench-notebooks-viewer |
错误 | 项目 | Role |
Workload Viewer | workload-viewer |
错误 | 项目 | Role |
AO 角色、预定义身份和访问权限角色
AO persona | ||||
---|---|---|---|---|
名称 | 绑定类型 | 管理 API 服务器权限 | Kubernetes 集群权限 | 升级为 |
Project IAM Admin | RoleBinding |
|
不适用 | 所有其他 AO 角色 |
AI OCR 开发者 | RoleBinding |
OCR 资源:读取和写入 | 不适用 | 不适用 |
AI 语音开发者 | RoleBinding |
语音资源:读取和写入 | 不适用 | 不适用 |
AI Translation Developer | RoleBinding |
翻译资源:读写 | 不适用 | 不适用 |
制品管理管理员 | RoleBinding |
HarborProjects :管理员,创建、读取、写入、删除和查看 |
不适用 | 不适用 |
制品管理编辑器 | RoleBinding |
HarborProjects :读取、写入和查看 |
不适用 | 不适用 |
Certificate Authority Service Admin | RoleBinding |
证书授权机构和证书请求:获取、列出、监控、更新、创建、删除和修补 | 不适用 | 不适用 |
Certificate Service Admin | RoleBinding |
证书和证书签发者:获取、列出、观看、更新、创建、删除和修补 | 不适用 | 不适用 |
信息中心编辑器 | RoleBinding |
Dashboard 自定义资源:获取、读取、创建、更新、删除和修补 |
不适用 | 不适用 |
信息中心查看器 | RoleBinding |
Dashboard :获取并读取 |
不适用 | 不适用 |
Harbor 实例管理员 | RoleBinding |
Harbor 实例:创建、读取、更新、删除和修补 | 不适用 | 不适用 |
Harbor Instance Viewer | RoleBinding |
Harbor 实例:读取 | 不适用 | 不适用 |
Harbor 项目创建者 | RoleBinding |
Harbor 实例项目:创建、获取和观看 | 不适用 | 不适用 |
K8s NetworkPolicy Admin | ProjectRoleBinding |
不适用 | NetworkPolicy 资源:创建、读取、获取、更新、删除和修补 |
不适用 |
负载平衡器管理员 | RoleBinding |
不适用 |
|
不适用 |
LoggingRule Creator | RoleBinding |
LoggingRule 自定义资源:创建、读取、更新、删除和修补 |
不适用 | 不适用 |
LoggingRule 编辑器 | RoleBinding |
LoggingRule 自定义资源:创建、读取、更新、删除和修补 |
不适用 | 不适用 |
LoggingRule 查看者 | RoleBinding |
LoggingRule 自定义资源:读取 |
不适用 | 不适用 |
LoggingTarget 创建者 | RoleBinding |
LoggingTarget 自定义资源:创建、读取、更新、删除和修补 |
不适用 | 不适用 |
LoggingTarget 编辑器 | RoleBinding |
LoggingTarget 自定义资源:创建、读取、更新、删除和修补 |
不适用 | 不适用 |
LoggingTarget 查看器 | RoleBinding |
LoggingTarget 自定义资源:读取 |
不适用 | 不适用 |
MonitoringRule 编辑器 | RoleBinding |
MonitoringRule 自定义资源:创建、读取、更新、删除和修补 |
不适用 | 不适用 |
MonitoringRule 查看器 | RoleBinding |
MonitoringRule 自定义资源:读取 |
不适用 | 不适用 |
MonitoringTarget 编辑器 | RoleBinding |
MonitoringTarget 自定义资源:创建、读取、更新、删除和修补 |
不适用 | 不适用 |
MonitoringTarget 查看器 | RoleBinding |
MonitoringTarget 自定义资源:读取 |
不适用 | 不适用 |
Namespace Admin | ProjectRoleBinding |
不适用 | 所有资源:项目命名空间中的读写权限 | 不适用 |
NAT 查看器 | ProjectRoleBinding |
不适用 | 部署:获取和读取 | 不适用 |
ObservabilityPipeline Editor | RoleBinding |
ObservabilityPipeline 资源:获取、读取、创建、更新、删除和修补 |
不适用 | 不适用 |
ObservabilityPipeline Viewer | RoleBinding |
ObservabilityPipeline 资源:获取并阅读 |
不适用 | 不适用 |
项目级存储分区管理员 | RoleBinding |
存储分区:在项目命名空间中读取和写入 | 不适用 | 不适用 |
Project Bucket Object Admin | RoleBinding |
|
不适用 | 不适用 |
Project Bucket Object Viewer | RoleBinding |
存储分区和对象:读取 | 不适用 | 不适用 |
Project Cortex Alertmanager 编辑器 | RoleBinding |
Cortex 系统和 Cortex Alertmanager:读取和写入 | 不适用 | 不适用 |
Project Cortex Alertmanager Viewer | RoleBinding |
Cortex 系统和 Cortex Alertmanager:阅读 | 不适用 | 不适用 |
Project Cortex Prometheus 查看器 | RoleBinding |
Cortex 系统和 Cortex Prometheus:阅读 | 不适用 | 不适用 |
Project Grafana Viewer | RoleBinding |
Grafana 系统和 Grafana:读取和写入 | 不适用 | 不适用 |
项目 NetworkPolicy 管理员 | RoleBinding |
项目网络政策:在项目命名空间中读取和写入 | 不适用 | 不适用 |
Project Viewer | RoleBinding |
项目命名空间中的所有资源:读取 | 不适用 | 不适用 |
项目虚拟机管理员 | RoleBinding |
|
不适用 | 不适用 |
Project VirtualMachine Image Admin | RoleBinding |
|
不适用 | 不适用 |
Secret Admin | RoleBinding |
Kubernetes Secret:读取、创建、更新、删除和修补 | 不适用 | 不适用 |
Secret Viewer | RoleBinding |
Kubernetes Secret:读取 | 不适用 | 不适用 |
Service Configuration Admin | RoleBinding |
ServiceConfigurations :读取和写入
|
不适用 | 不适用 |
Service Configuration Viewer | RoleBinding |
ServiceConfigurations :已读
|
不适用 | 不适用 |
卷复制管理员 | ClusterRoleBinding |
Volume failovers, volume relationship replicas :
创建、获取、列出、观看、删除
|
不适用 | 不适用 |
Workbench Notebooks Admin | RoleBinding |
不适用 |
|
不适用 |
Workbench Notebooks 查看器 | RoleBinding |
不适用 |
|
不适用 |
Workload Viewer | ProjectRoleBinding |
不适用 |
|
不适用 |
常见的预定义身份和访问权限角色
常见角色 | ||||
---|---|---|---|---|
名称 | Kubernetes 资源名称 | 初始管理员 | 级别 | 类型 |
AI Platform Viewer | ai-platform-viewer |
错误 | 项目 | Role |
DNS 后缀查看器 | dnssuffix-viewer |
错误 | 组织 | Role |
流日志管理员 | flowlog-admin |
错误 | 组织 | ClusterRole |
流日志查看器 | flowlog-viewer |
错误 | 项目 | ClusterRole |
Project Discovery Viewer | projectdiscovery-viewer |
错误 | 项目 | ClusterRole |
公共图片查看器 | public-image-viewer |
错误 | 组织 | Role |
系统 Artifact Registry anthos-creds Secret 监控器 | sar-anthos-creds-secret-monitor |
错误 | 组织 | Role |
系统 Artifact Registry gpc-system Secret 监控器 | sar-gpc-system-secret-monitor |
错误 | 组织 | Role |
系统制品注册表 harbor-system 密钥监控器 | sar-harbor-system-secret-monitor |
错误 | 组织 | Role |
虚拟机类型查看器 | virtualmachinetype-viewer |
错误 | 组织 | OrganizationRole |
VM Type Viewer | vmtype-viewer |
错误 | 组织 | Role |
常见的预定义身份和访问权限角色
常见角色 | ||||
---|---|---|---|---|
名称 | 绑定类型 | 管理员集群权限 | Kubernetes 集群权限 | 升级为 |
AI Platform Viewer | RoleBinding |
预训练服务:读取 | 不适用 | 不适用 |
DNS 后缀查看器 | ClusterRoleBinding |
DNS 后缀配置映射:读取 | 不适用 | 不适用 |
流日志管理员 | ClusterRoleBinding |
流日志资源:获取和读取 | 流日志资源:获取和读取 | 不适用 |
流日志查看器 | ClusterRoleBinding |
流日志资源:创建、获取、读取、修补、更新和删除 | 流日志资源:创建、获取、读取、修补、更新和删除 | 不适用 |
Project Discovery Viewer | ClusterRoleBinding |
项目:读取 | 不适用 | 不适用 |
公共图片查看器 | RoleBinding |
虚拟机映像:读取 | 不适用 | 不适用 |
系统 Artifact Registry anthos-creds Secret 监控器 | RoleBinding |
anthos-creds 密文:获取和读取 |
anthos-creds 密文:获取和读取 |
不适用 |
系统 Artifact Registry gpc-system Secret 监控器 | RoleBinding |
gpc-system 密文:获取和读取 |
gpc-system 密文:获取和读取 |
不适用 |
系统制品注册表 harbor-system 密钥监控器 | RoleBinding |
harbor-system 密文:获取和读取 |
harbor-system 密文:获取和读取 |
不适用 |
虚拟机类型查看器 | OrganizationRoleBinding |
不适用 | 虚拟机类型:读取 | 不适用 |
VM Type Viewer | ClusterRoleBinding |
虚拟机类型:读取 | 不适用 | 不适用 |
您可以通过以下两种方式授予对资源的访问权限:
使用 CLI 设置角色绑定
管理员集群中的 AO 访问权限
与基础设施运维人员 (IO) 和平台管理员 (PA) 不同,GDC 通过 RoleBinding
(而非 ClusterRoleBinding
)将应用运维人员 (AO) 绑定到 Project
。
如需向 AO 授予对管理集群的访问权限,请完成以下步骤:
导出您用于访问 AO 的电子邮件。例如,电子邮件地址可以是
ao-alice@example.com
。export AO_EMAIL=AO_EMAIL
创建角色绑定,以在
iam-test
命名空间中授予${AO_EMAIL}
Project IAM Admin 访问权限:kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-iam-admin \ --role=project-iam-admin --user=$AO_EMAIL \ --namespace=iam-test
project-iam-admin
角色是 GDC 的预定义角色。iam-test
Kubernetes 命名空间对应于管理员集群中的iam-test
项目。验证 AO 账号是否具有在
iam-test
命名空间中创建角色绑定的权限:kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test
您将看到以下输出内容:
yes
创建角色绑定,以在
bar
命名空间中授予${AO_EMAIL}
Project Viewer 访问权限:kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-viewer \ --role=project-viewer --user=$AO_EMAIL \ --namespace=bar
project-viewer
角色是 GDC 的预设角色。bar
Kubernetes 命名空间对应于组织管理员集群中的bar
项目。验证 AO 账号没有在
bar
命名空间中创建角色绑定的权限:kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n bar
您将看到以下输出内容:
no
可选:删除角色绑定以撤消授予 AO 账号的权限:
kubectl --kubeconfig PA_KUBECONFIG delete rolebinding $AO_EMAIL-project-iam-admin -n iam-test
用户集群中的 AO 访问权限
AO 使用 ProjectRole
和 ProjectRoleBinding
资源来获取对用户集群的命名空间访问权限。不过,PA 可以使用预设的 OrganizationRole
和 ProjectRoleBinding
资源在用户集群中授予 AO 组织范围的权限。
完成以下步骤,向 AO 授予对用户集群的访问权限:
如需授予对用户集群的访问权限,您必须拥有 Project IAM Admin 角色。
创建
ProjectRoleBinding
资源,以在iam-test
命名空间中的所有用户集群中授予${AO_EMAIL}
命名空间管理员访问权限:kubectl --kubeconfig AO_KUBECONFIG apply -f - <<EOF apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: ${AO_EMAIL%@*}-namespace-admin namespace: iam-test spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: namespace-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: ${AO_EMAIL} EOF
按照使用 CLI 和 kubectl 登录部分中的说明,获取用户集群的用户凭据,并将其导出到
AO_USER_CLUSTER_KUBECONFIG
变量中:export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIG
验证 AO 账号是否具有在
iam-test
命名空间中创建部署的权限:kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} auth can-i create deployment -n iam-test
您将看到以下输出内容:
yes
可选:删除项目角色绑定,以撤消授予测试 AO 账号的权限:
kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} delete projectrolebinding ${AO_EMAIL%@*}-namespace-admin -n iam-test
使用界面设置项目级角色绑定
应用操作员将其他应用操作员添加到项目,以便他们有权访问项目资源。
如需获得设置角色绑定的权限,请让项目 IAM 管理员向您授予项目 IAM 管理员角色。
请按照以下步骤设置角色绑定:
- 登录 GDC 气隙式设备控制台。
- 选择一个项目。
- 在导航菜单中,点击访问管理。
- 点击添加成员。
- 在身份提供方列表中,选择一个身份提供方。
- 选择要添加单个用户还是群组。
- 在用户名或群组别名字段中,输入用户名、电子邮件地址或别名。
- 在角色列表中,选择要分配给相应用户或群组的角色,例如项目查看者。
- 点击添加。
使用界面移除角色绑定
如果不再需要访问权限,请移除相应成员及其关联的角色、权限和访问权限。
请按以下步骤操作来移除成员:
- 登录 GDC 气隙式设备控制台。
- 选择一个项目。
- 在导航菜单中,点击访问管理。
- 在授权的成员列表中,选择一个成员。
- 点击移除成员。
- 出现提示时,点击移除成员进行确认。