作为管理员,您可以使用全网域授权功能,允许内部和第三方应用访问用户的 Google Workspace 数据,而无需征得最终用户同意。为此,您需要在 Google Cloud 控制台中创建服务账号,并在 Google 管理控制台中向该账号授予全网域授权。 您还可以在管理控制台中向服务账号提供有限的 API 范围。如需详细了解全网域委托,请参阅使用全网域委托功能控制 API 访问权限。
管理和保护服务账号
Identity and Access Management (IAM) 提供了使用服务账号限制访问权限以及防范提权和不可否认性威胁的准则。如需查看相关准则,请参阅使用服务账号的最佳实践。
虽然指南中的所有建议都适用于保护使用全网域授权的服务账号,但一些重点做法如下:
|
请改用直接服务账号访问权限或 OAuth 权限请求 如果您可以直接通过服务账号或使用 OAuth 权限请求来完成任务,请避免使用全网域授权功能。 如果您无法避免使用全网域授权功能,请限制服务账号可以使用的 OAuth 范围集。虽然 OAuth 范围不会限制服务账号可以模拟的用户,但会限制服务账号可以访问的用户数据类型。 |
|
|
限制服务账号密钥的创建和上传 使用组织政策限制为具有全网域授权的服务账号创建和上传密钥。这会限制通过服务账号密钥进行的服务账号模拟。 |
|
|
停用默认服务账号的自动角色授予功能 默认创建的服务账号会被授予 Editor 角色,该角色允许账号读取和修改 Google Cloud 云项目中的所有资源。您可以为默认服务账号停用自动角色授予,以确保它们不会自动获得 Editor 角色,并且不会轻易被恶意用户利用。 |
|
|
限制横向移动 横向移动是指一个项目中的服务账号有权模拟另一个项目中的服务账号。这可能会导致对资源的意外访问。使用“横向移动数据分析”可以检测和限制通过模拟进行的横向移动。 |
|
|
限制对具有全网域授权的服务账号的访问权限 如果服务账号具有的访问权限超出用户,请勿允许用户更改服务账号的允许政策。使用 IAM 角色和全网域授权可以限制对服务账号的访问权限。 |
保护服务账号免受内部风险
仅当您有关键业务用例需要应用绕过用户同意来访问 Google Workspace 数据时,才使用全网域授权。尝试使用替代方案,例如具有用户同意机制的 OAuth 或使用 Marketplace 中的应用。有关详情,请参阅 Google Workspace Marketplace。
请遵循以下最佳做法,保护具有全网域授权的服务账号免受内部人员外泄风险的影响:
|
仅授予基本权限 确保具有全网域授权的服务账号仅拥有执行预期功能所需的必要权限。请勿授予对非必要 OAuth 范围的访问权限。 |
|
|
在专用 Google Cloud 项目中托管服务账号 确保具有全网域授权的服务账号托管在专用 Google Cloud 项目中。请勿将这些项目用于其他业务需求。 |
|
|
避免使用服务账号密钥 使用服务账号密钥不是执行全网域授权所必需的。请改用 signJwt API。 |
|
|
限制对具有全网域授权的项目的访问权限 设置全网域授权后,尽量减少对 Google Cloud 项目拥有编辑权限的用户人数。您可以使用 Cloud Asset Inventory API 了解谁有权访问服务账号。例如,使用 Cloud Shell 运行以下命令:
查找 |