管理身份和访问权限

Last reviewed 2023-08-08 UTC

Google Cloud 架构框架中的本文档提供了管理身份和访问权限的最佳实践。

身份和访问权限管理(通常称为 IAMIAM)的实践有助于确保适当的人员可访问适当的资源。IAM 解决了身份验证和授权的以下几个方面:

  • 账号管理,包括预配
  • 身份治理
  • 身份验证
  • 访问权限控制(授权)
  • 身份联合

如果您有不同的环境或使用多个身份提供商,则管理 IAM 可能会比较困难。但是,设置一个既能满足您的业务需求又能降低风险的系统至关重要。

本文档中的建议可帮助您查看当前 IAM 政策和流程,并确定可能需要为 Google Cloud 中的工作负载修改哪些政策和程序。例如,您必须查看以下内容:

  • 您是否可以使用现有群组管理访问权限,或者是否需要创建新群组。
  • 您的身份验证要求(例如,使用令牌进行多重身份验证 (MFA))。
  • 服务账号对当前政策的影响。
  • 如果您要使用 Google Cloud 进行灾难恢复,请保持适当的职责分离。

在 Google Cloud 中,您可以使用 Cloud Identity 对用户和资源进行身份验证,并使用 Google 的Identity and Access Management (IAM)产品来指定资源访问权限。管理员可以在组织、文件夹、项目和资源级层限制访问权限。Google IAM 政策指定哪些用户可以对哪些资源执行什么操作。正确配置的 IAM 政策有助于防止未经授权的资源访问,从而保护您的环境。

如需了解详情,请参阅身份和访问权限管理概览

使用单个身份提供商

我们的许多客户拥有的用户账号都是由 Google Cloud 以外的身份提供商管理和预配。Google Cloud 支持与大多数身份提供商和本地目录(如 Active Directory)进行联合

大多数身份提供商都允许您为用户和群组启用单点登录 (SSO)。对于您在 Google Cloud 上部署的应用以及使用外部身份提供商的应用,您可以将身份提供商扩展到 Google Cloud。如需了解详情,请参阅参考架构在混合环境中对企业用户进行身份验证所采用的模式

如果您没有现成的身份提供商,则可以使用 Cloud Identity 专业版Google Workspace 来管理员工的身份。

保护超级用户账号

超级用户账号(由 Google Workspace 或 Cloud Identity 管理)可让您创建 Google Cloud 组织。因此,超级用户账号具有较高的特权。此账号的最佳实践包括以下几个方面:

  • 为此目的创建一个新账号;请勿使用现有用户账号。
  • 创建和保护备份账号。
  • 启用 MFA。

如需了解详情,请参阅超级用户账号最佳实践

规划服务账号的使用

服务账号是应用用来调用服务的 Google API 的 Google 账号。

与用户账号不同,服务账号在 Google Cloud 中创建和管理。服务账号的身份验证方式也与用户账号不同:

  • 若要使 Google Cloud 上运行的应用使用服务账号进行身份验证,您可以将服务账号与运行该应用的计算资源相关联。
  • 若要使 GKE 上运行的应用使用服务账号进行身份验证,您可以使用 Workload Identity
  • 若要使在 Google Cloud 外部运行的应用使用服务账号进行身份验证,您可以使用工作负载身份联合

使用服务账号时,您必须在设计过程中考虑适当的职责分离。请记下您必须进行的 API 调用,并确定这些 API 调用所需的服务账号和关联角色。例如,如果要设置 BigQuery 数据仓库,您可能至少需要为以下流程和服务提供身份:

  • Cloud Storage 或 Pub/Sub,具体取决于您是提供批量文件还是创建流式服务。
  • Dataflow 和敏感数据保护,用于对敏感数据进行去标识化处理。

如需了解详情,请参阅使用服务账号的最佳实践

更新云的身份流程

通过身份治理,您可以跟踪访问权限、风险和违反政策的行为,以便支持法规要求。此治理要求您具有适当的流程和政策,以便可以向用户授予并审核访问权限控制角色和权限。您的流程和政策必须反映您的环境要求,例如测试、开发和生产环境。

在 Google Cloud 上部署工作负载之前,请先查看您当前的身份流程并根据需要进行更新。请务必根据组织所需的账号类型进行适当的规划,并确保您充分了解账号角色和访问权限要求。

为帮助您审核 Google IAM 活动,Google Cloud 会创建审核日志,其中包括以下内容:

  • 管理员活动。无法停用此日志记录。
  • 数据访问活动。您必须启用此日志记录。

为确保合规性,或者您想设置日志分析(例如,通过 SIEM 系统),您可以导出日志。由于日志可能会增加存储空间要求,因此可能会影响费用。请务必仅记录所需的操作,并设置适当的保留时间表。

设置单点登录和多重身份验证 (MFA)

您的身份提供商负责管理用户账号身份验证。联合身份可以使用单点登录向 Google Cloud 进行身份验证。对于具有特权的账号(例如超级用户),您应配置 MFA。Titan 安全密钥是物理令牌,可用于双重验证 (2FA) 以帮助防范钓鱼式攻击。

Cloud Identity 支持使用各种方法执行多重身份验证。如需了解详情,请参阅对访问公司资源的用户统一执行多重身份验证

Google Cloud 支持使用 OAuth 2.0 协议或签名的 JSON 网络令牌 (JWT) 对 Workload Identity 进行身份验证。如需详细了解 Workload Identity 身份验证,请参阅身份验证概览

实现最小权限和职责分离

您必须确保相应人员仅访问执行作业所需的资源和服务。也就是说,您应该遵循最小权限原则。此外,您还必须确保存在适当的职责分离

过度预配用户访问权限可能会增加内部人员威胁、资源配置错误以及不符合审核要求的风险。如果权限预配不足,则用户可能无法访问完成任务所需的资源。

避免过度预配的一种方法是实现即时特权访问权限仅根据需要提供特权访问权限,并且仅暂时授予该权限

请注意,创建 Google Cloud 组织后,系统会默认为您网域中的所有用户授予 Billing Account Creator 和 Project Creator 角色。确定将会履行这些职责的用户,并撤消其他用户的这些角色。如需了解详情,请参阅创建和管理组织

如需详细了解角色和权限在 Google Cloud 中的运作方式,请参阅 IAM 文档中的概览了解角色。如需详细了解如何强制执行最小权限,请参阅使用角色建议强制执行最小权限

审核访问权限

如需监控具有特权的账号的活动是否违反批准的条件,请使用 Cloud Audit Logs。Cloud Audit Logs 可记录您的 Google Cloud 组织成员在您的 Google Cloud 资源中执行的操作。您可以在各种 Google 服务中使用各种审核日志类型。如需了解详情,请参阅使用 Cloud Audit Logs 来管理内部人员的风险(视频)

使用 IAM Recommender 跟踪使用情况并根据需要调整权限。IAM Recommender 推荐的角色可以帮助您根据用户过去的行为和其他条件来确定向用户授予哪些角色。如需了解详情,请参阅角色建议的最佳实践

如需审核并控制 Google 支持和工程团队对您的资源的访问,您可以使用 Access Transparency。Access Transparency 可记录 Google 员工执行的操作。使用 Access Approval(Access Transparency 的一部分)在每次访问客户内容时授予明确批准。如需了解详情,请参阅控制云管理员对数据的访问

自动执行政策控制功能

尽可能以编程方式设置访问权限。如需了解最佳实践,请参阅组织政策限制条件。企业基础蓝图的 Terraform 脚本在示例基础代码库中。

Google Cloud 包含 Policy Intelligence,可让您自动查看和更新访问权限。Policy Intelligence 包含 RecommenderPolicy TroubleshooterPolicy Analyzer 工具,可用于执行以下操作:

  • 提供关于 IAM 角色分配的建议。
  • 监控并防止过于宽松的 IAM 政策。
  • 协助排查与访问权限控制相关的问题。

对资源设置限制

Google IAM 侧重于人员,可让您授权人员根据权限对特定资源执行操作。组织政策服务侧重于资源,可让您设置对资源的限制,以指定资源的配置方式。例如,您可以使用组织政策执行以下操作:

除了针对这些任务使用组织政策之外,您还可以使用以下某种方法限制对资源的访问:

  • 使用标记来管理对资源的访问,而无需定义对每个资源的访问权限。您可以改为添加标记,然后设置标记本身的访问权限定义。
  • 使用 IAM Conditions 对资源访问权限进行基于特性的条件性控制。
  • 使用 VPC Service Controls 实现深度防御,以进一步限制对资源的访问。

如需详细了解资源管理,请参阅确定您的 Google Cloud 着陆区的资源层次结构

后续步骤

通过以下资源详细了解 IAM: