简介
本页面推荐了安全性方面的最佳做法,在使用 IAM 时,您应该牢记这些最佳做法。
本页内容面向精通 IAM 的用户。这些说明不会教您如何使用 IAM,刚开始使用的新用户应该从 IAM 快速入门开始学习。
最低权限
❑
|
❑
将您的应用的每个组件视为单独的信任边界。如果您有多个需要不同权限的服务,请为每个服务创建一个单独的服务帐号,然后只为每个服务帐号授予必需的权限。
|
❑
切记,子资源会沿用其父资源的政策。举例来说,如果项目的政策授予用户管理 Compute Engine 虚拟机 (VM) 实例的权限,则用户可以管理该项目中的任何 Compute Engine 虚拟机,无论您在各虚拟机上设置怎样的政策都是如此。
|
❑
在所需的最小范围内授予角色。例如,如果用户只需要发布 Pub/Sub 主题的访问权限,则可为该用户授予该主题的 Publisher 角色。
|
❑
指定哪些成员可以充当服务帐号。被授予服务帐号的 Service Account Actor 角色的用户可以访问该服务帐号有权访问的所有资源。因此,在向用户授予 Service Account Actor 角色时一定要谨慎。
|
❑
指定具备在您的项目中创建和管理服务帐号的访问权限的用户。
|
❑
授予 Project IAM Admin 和 Folder IAM Admin 预定义角色将允许修改 IAM 政策,但不允许对所有资源进行直接读取、写入和管理。
为成员授予 Owner ( roles/owner ) 角色可允许他们访问和修改几乎所有资源,包括修改 IAM 政策。这种权限可能存在风险。仅在需要或差不多需要通用访问权限时才授予 Owner (roles/owner ) 角色。 |
服务帐号和服务帐号密钥
❑
您可以使用 IAM 服务帐号 API 轮替您的服务帐号密钥。如需轮替密钥,可创建新密钥、让应用改用新密钥,然后删除旧密钥。您可以结合使用
serviceAccount.keys.create() 方法和 serviceAccount.keys.delete() 方法来自动执行轮替。 |
❑
实施相关流程以管理用户管理的服务帐号密钥。
|
❑
请务必小心,不要将加密密钥与服务帐号密钥混淆。加密密钥通常用于加密数据,服务帐号密钥用于安全访问 Google Cloud API。
|
❑
不要删除运行中的实例正在使用的服务帐号。这可能导致整个或部分应用失败(如果您事先未切换为使用备用服务帐号的话)。
|
❑
使用服务帐号的显示名称跟踪它们的用途以及它们应具有的权限。
|
❑
请勿将服务帐号密钥签入源代码中或将其保留在“下载内容”目录中。
|
审核
❑
使用 Cloud Audit Logs 中的日志定期审核 IAM 政策的更改。
|
❑
将审核日志导出至 Cloud Storage,以便长时间存储您的日志。
|
❑
审核谁能够更改您的项目上的 IAM 政策。
|
❑
使用 Logging 角色管理日志访问权限。
|
❑
对您用于导出日志的 Google Cloud 资源应用与日志查看器相同的访问权限政策。
|
❑
使用 Cloud Audit Logs 中的日志定期审核对服务帐号密钥的访问权限。
|
政策管理
❑
设置组织级层 IAM 政策以授予对贵组织中所有项目的访问权限。
|
❑
尽可能向 Google 群组(而不是单个用户)授予角色。向 Google 群组中添加成员以及从中移除成员,比起更新 IAM 政策以添加或移除用户要更加容易。
|
❑
如果您需要授予多个角色以允许执行特定任务,请创建一个 Google 群组,为该群组授予这些角色,然后向该群组添加用户。
|