作为管理员,您可以使用全网域授权功能,允许内部应用和第三方应用访问您用户的 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 运行:
查找权限或角色(例如 |