身份验证和授权

Last reviewed 2023-12-20 UTC

本部分介绍如何使用 Cloud Identity 来管理员工用于访问 Google Cloud 服务的身份

外部身份提供方作为可靠来源

我们建议您将 Cloud Identity 账号与现有身份提供方联合。联合可帮助您确保现有账号管理流程适用于 Google Cloud 和其他 Google 服务。

如果您还没有身份提供方,则可以直接在 Cloud Identity 中创建用户账号。

下图简要展示了身份联合和单点登录 (SSO)。它使用位于本地环境中的 Microsoft Active Directory 作为示例身份提供方。

外部身份提供方联合。

下图介绍了以下最佳做法:

  • 用户身份在本地环境的 Active Directory 域中接受管理并与 Cloud Identity 联合。Active Directory 使用 Google Cloud Directory Sync 为 Cloud Identity 预配身份。
  • 尝试登录 Google 服务的用户将被重定向到外部身份提供方以使用 SAML 进行单点登录,其使用其现有凭据进行身份验证。没有密码会与 Cloud Identity 同步。

下表提供了各身份提供方对应的设置指南的链接。

身份提供方 指南
Active Directory
Microsoft Entra ID(以前称为 Azure AD)
其他外部身份提供方(例如 Ping 或 Okta)

我们强烈建议您在身份提供方处使用防网上诱骗机制(例如 Titan 安全密钥)强制执行多重身份验证。

Cloud Identity 的推荐设置并非通过此蓝图中的 Terraform 代码自动执行。如需了解除了部署 Terraform 代码之外还必须配置的推荐安全设置,请参阅 Cloud Identity 管理控制

访问权限控制群组

主账号是一种可被授予资源访问权限的身份。主账号包括用户的 Google 账号、Google 群组、Google Workspace 账号、Cloud Identity 网域和服务账号。某些服务还允许您向使用 Google 账号进行身份验证的所有用户或互联网上的所有用户授予访问权限。为了让主账号能够与 Google Cloud 服务进行交互,您必须在 Identity and Access Management (IAM) 中为其授予角色。

要大规模管理 IAM 角色,我们建议您根据用户的工作职能和访问权限要求将用户分配给相应群组,然后为这些群组授予 IAM 角色。您应按照现有身份提供方中的流程将用户添加到群组,以创建群组和授予成员资格。

我们不建议向单个用户授予 IAM 角色,因为单独的分配可能会增加管理和审核角色的复杂性。

此蓝图将配置群组和角色,使其对基础资源拥有“只能查看”权限。我们建议您通过基础流水线部署蓝图中的所有资源,并且不要向群组用户授予可在流水线外修改基础资源的角色。

下表显示了蓝图配置的可查看基础资源的群组。

名称 说明 角色 范围
grp-gcp-org-admin@example.com 可以在组织级层授予 IAM 角色的高权限管理员。他们可以访问任何其他角色。不建议在日常使用此特权。 组织管理员 组织
grp-gcp-billing-admin@example.com 可以修改 Cloud Billing 账号的高权限管理员。不建议在日常使用此特权。 结算账号管理员 组织
grp-gcp-billing-viewer@example.com 负责查看和分析所有项目的支出的团队。 Billing Account Viewer 组织
BigQuery User 结算项目
grp-gcp-audit-viewer@example.com 负责审核安全相关日志的团队。

Logs Viewer

BigQuery User

日志记录项目
grp-gcp-monitoring-users@example.com 负责监控应用性能指标的团队。 Monitoring Viewer 监控项目
grp-gcp-security-reviewer@example.com 负责审核云安全的团队。 Security Reviewer 组织
grp-gcp-network-viewer@example.com 负责查看和维护网络配置的团队。 Compute Network Viewer 组织
grp-gcp-scc-admin@example.com 负责配置 Security Command Center 的团队。 Security Center Admin Editor 组织
grp-gcp-secrets-admin@example.com 负责管理、存储和审核应用使用的凭据和其他 Secret 的团队。 Secret Manager Admin Secret 项目
grp-gcp-kms-admin@example.com 负责强制执行加密密钥管理以满足合规性要求的团队。 Cloud KMS Viewer KMS 项目

在基础上构建自己的工作负载时,您可以创建其他群组并授予基于每个工作负载的访问权限要求的 IAM 角色。

我们强烈建议您避免使用基本角色(例如 Owner、Editor 或 Viewer),而是使用预定义角色。基本角色过于宽松,可能存在安全风险。Owner 和 Editor 角色可能会导致提升权限和横向移动,而 Viewer 角色包括可读取所有数据的权限。如需了解 IAM 角色的最佳做法,请参阅安全使用 IAM

超级用户账号

拥有超级用户账号的 Cloud Identity 用户会绕过组织的 SSO 设置并直接向 Cloud Identity 进行身份验证。这种例外情况是故意为之,以便在 SSO 配置错误或中断时,超级用户仍然可以访问 Cloud Identity 控制台。但是,这意味着您必须考虑为超级用户账号提供额外的保护。

为了保护您的超级用户账号,我们建议您始终使用 Cloud Identity 中的安全密钥强制执行两步验证。有关信息,请参阅管理员账号的安全最佳做法

消费者用户账号问题

如果您在加入 Google Cloud 之前未使用 Cloud Identity 或 Google Workspace,则您组织的员工可能已经在使用与公司电子邮件身份相关联的消费者账号访问其他 Google 服务(例如 Google Marketing Platform 或 YouTube)。消费者账号完全由创建账号的个人拥有和管理。由于这些账号不受组织控制,并且可能同时包含个人和公司数据,因此您必须决定如何将这些账号与其他公司账号整合起来。

我们建议您在加入 Google Cloud 时整合现有消费者用户账号。如果您尚未将 Google Workspace 用于所有用户账号,我们建议限制创建新的消费者账号

Cloud Identity 的管理控制

Cloud Identity 具有各种管理控制,但 Terraform 代码在蓝图中不会自动执行这些控制。我们建议您在构建基础的过程中尽早执行每个最佳做法安全控制。

控制 说明
部署两步验证

用户账号可能通过钓鱼式攻击、社会工程学、密码泄露或各种其他威胁被破解。两步验证有助于减轻这些威胁。

我们建议您使用防范网上诱骗机制(例如 Titan 安全密钥或基于防范网上诱骗 FIDO U2F (CTAP1) 标准的其他密钥)对组织中的所有用户账号强制执行两步验证机制。

设置 Google Cloud 服务的会话时长 开发者工作站上的永久性 OAuth 令牌若公开,可能会带来安全风险。我们建议您将重新身份验证政策设置为每 16 小时使用一次安全密钥进行身份验证。
设置 Google 服务的会话时长 (仅限 Google Workspace 客户)

其他 Google 服务中的持久 Web 会话如果公开,可能会带来安全风险。我们建议您强制执行网络会话时长上限,并将其与 SSO 提供方中的会话长度控制保持一致。

将 Cloud Identity 中的数据与 Google Cloud 服务共享

来自 Google Workspace 或 Cloud Identity 的管理员活动审核日志通常在管理控制台中管理和查看,与 Google Cloud 环境中的日志分开。这些日志包含与您的 Google Cloud 环境相关的信息,例如用户登录事件。

我们建议您将 Cloud Identity 审核日志共享到 Google Cloud 环境,以便集中管理来自所有来源的日志。

设置单点登录后验证

此蓝图假定您使用外部身份提供方设置单点登录。

我们建议您根据 Google 的登录风险分析启用额外的控制层。应用此设置后,如果 Google 认为用户登录可疑,则用户可能会在登录时看到其他基于风险的登录验证。

修复消费者用户账号的问题

具有您网域中的有效电子邮件地址,但没有 Google 账号的用户可以注册不受管理的消费者账号。这些账号可能包含公司数据,但不受账号生命周期管理流程的控制。

我们建议您采取措施来确保所有用户账号都是受管理的账号。

对超级用户账号停用账号恢复

所有新客户的超级用户账号自行恢复功能在默认情况下关闭(现有客户可能启用了此设置)。关闭此设置有助于降低攻击者利用遭到入侵的手机、被盗用的电子邮件或社会工程学攻击获得对您的环境的超级用户特权的风险。

规划超级用户在无法访问其账号时联系组织内的其他超级用户所需的内部流程,并确保所有超级用户都熟悉支持团队协助的恢复流程。

强制执行和监控用户的密码要求 在大多数情况下,用户密码通过外部身份提供方管理,但超级用户账号会绕过 SSO,必须使用密码登录 Cloud Identity。对使用密码登录 Cloud Identity 的任何用户(尤其是超级用户账号)停用密码重用并监控密码强度。
为群组的使用设置组织级政策

默认情况下,外部用户账号可以添加到 Cloud Identity 中的群组。我们建议您配置共享设置,以免群组所有者添加外部成员。

请注意,此限制不适用于超级用户账号或拥有群组管理员权限的其他委派管理员。由于身份提供方的联合服务运行时需要使用管理员权限,因此群组共享设置不适用于此群组同步。我们建议您查看身份提供方和同步机制中的控制,确保非网域成员不会添加到群组,或者确保您将应用群组限制

后续步骤