使用 IAM 进行访问权限控制
本文档介绍了如何使用 Identity and Access Management 控制 Config Connector 如何创建和管理 Google Cloud 资源。
如需安装 Config Connector,您需要通过创建 IAM 服务账号,然后使用 Workload Identity Federation for GKE 将 IAM 服务账号与 Kubernetes 服务账号绑定来进行身份验证。IAM 可让 Config Connector 对特定资源执行操作。通过限制分配给服务账号的权限,您可以更好地控制 Config Connector 可以创建的资源类型。
您可以选择使用单个服务账号或多个服务账号来管理资源。
单个服务账号
使用 GKE 插件或手动安装方式安装 Config Connector 时,您可以在 ConfigConnector
CustomResource 中设置集群模式。在集群模式下,您可以使用单个 IAM 服务账号来创建和管理资源,即使您使用 Config Connector 管理多个项目也是如此。
下图展示了此模式的工作原理,其中名为 my-service-account 的同一服务账号管理两个项目:
多个服务账号
您可以通过在 ConfigConnector
CustomResource 中设置命名空间模式来使用多个服务账号。命名空间模式可让您根据不同 IAM 服务账号的各自关注点划分权限,并在不同的 Kubernetes 命名空间之间隔离权限,因为您可以为每个命名空间关联不同的服务账号。
在以下情况下选择命名空间型模式:
- 希望在 Kubernetes 命名空间级别隔离 IAM 权限。
- 预计在单个集群上管理来自多个 Google Cloud 项目的大量 Google Cloud 资源。
例如,您可以为每个项目创建一个 IAM 服务账号,将每个项目中的资源整理到同一个 Kubernetes 命名空间中,然后将相应的 IAM 服务账号绑定到该 Kubernetes 命名空间。这样,您就可以为每个项目单独设置 IAM 权限,使每个项目都有一组不相关的独特权限。
下图简要展示了命名空间模式的工作原理,其中每个项目都由不同的服务账号管理。项目 1 由 my-service-account 管理,项目 2 由 another-service-account 管理:
在命名空间模式下,每个 IAM 服务账号默认绑定到一个命名空间。当您在该命名空间中创建资源时,Config Connector 会使用此服务账号创建 Google Cloud资源。每个命名空间都有一个专用的 Config Connector cnrm-controller-manager pod,用于模拟与该命名空间关联的 IAM 服务账号。
如需了解如何配置命名空间模式,请参阅使用命名空间模式安装 Config Connector。
后续步骤
- 了解如何按文件夹、项目或组织整理资源。