您最后一次查看云帐户中的现有访问策略是什么时候? 它很可能不在您的常规任务中(还),但应该定期执行以提高安全性。
在 IBM Cloud 中,访问策略定义谁接收对哪些资源授予的一组权限。 当评估策略并应用它以允许访问时,“最后允许”数据将被更新。 您可以利用该数据来识别未使用或不活动的访问策略。
在这篇博文中,我们概述了现有的 IBM Cloud 访问策略类型。 然后,我们向您展示如何检索有关非活动访问策略的信息,并讨论如何对该数据采取行动。 这将演示如何清理未使用的策略以增强 IBM Cloud 环境的安全性:
概述:访问策略
在 IBM Cloud Identity and Access Management (IAM) 中, 访问策略 指定授予谁对哪些资源的哪些访问权限。 一般来说,存在两种类型的策略:访问和授权:
- 这 授权 类型用于 授予一个服务访问另一个服务的权限。 一个示例策略可能是允许存储或数据库服务(实例)从中读取加密密钥 适用于 IBM Cloud 的 IBM Key Protect。
- 这 使用权 type 有助于确定作为访问组成员的所有身份或单个 IAM 身份(例如,用户、服务 ID 或可信配置文件)的资源访问权限。 典型的策略将授予访问组的特定存储桶的读取者和写入者角色。 IBM 云对象存储 实例。 另一个示例是授予单个用户在帐户中进行用户管理的管理员权限。
策略的范围可以非常狭窄——这意味着仅授予特定资源的选择性特权。 更通用的策略授予对同一服务类型的所有实例或资源组或区域中的所有资源的访问权限。 政策甚至可以包括 基于时间的限制。 我在最近的博客文章中讨论了它们,“仅在短时间内:基于时间的限制以增强云安全性”。
上面的屏幕截图显示了编辑访问组的访问策略详细信息时的 IBM Cloud 控制台。 它授予查看者和读者对该资源组“cloudsec-workshop”中所有支持身份和访问的服务的权限。 此外,访问仅限于所示的时间范围。 控制台中提供了访问策略的 JSON 表示形式。 下面的屏幕截图显示了所讨论的示例策略的部分 JSON 对象:
识别未使用的访问策略
如上所述,访问策略定义访问组成员、个人 IAM 身份或服务对资源的权限。 当请求资源访问时,将对策略进行评估,并且要么不授予访问权限,要么找到允许访问的策略。 在 IBM Cloud 中,访问策略的使用情况会通过时间戳记为 last_permit_at
和一个柜台 last_permit_frequency
。
您可以使用该信息 审计访问策略 并确定不活跃的政策。 IBM 云控制台 列出 30 天或更长时间处于非活动状态的策略。 它不显示完全未使用的策略。
IBM Cloud 控制台的替代方案是 IAM 策略管理 API。 它可以让你 检索所有策略 并将格式参数设置为时将“last-permit”属性包含到结果集中 include_last_permit
。 我们构建了一个小型 Python 工具来简化与该 API 的交互,并支持一些过滤和数据输出为 JSON 或 CSV 数据。 该工具可在 GitHub 存储库中找到 ibmcloud-iam-密钥-身份。 请参阅 自述文件 文件以了解如何检索策略数据。
下面显示了不常用且不活动的访问策略的 JSON 格式的工具输出。 它属于 IAM 访问组(主题),并授予查看者对 IBM Cloud 帐户中特定资源组的权限:
管理不活动的策略
一旦有了策略列表,问题就是如何管理它们。 一般来说,您应该检查它们的类型(访问或授权)以及授予的权限的类型和角色。 特权是针对特定服务实例还是非常广泛(例如,针对资源组或服务的所有实例)? 它是授予最小访问权限还是广泛访问权限的角色,例如经理或管理员?
遵循最小特权原则,可能是时候调整和减少授予的特权了。 这也是检查所有政策是否都有详细描述的好时机。 描述是可选的,但应用作简化管理和提高安全性的最佳实践。 请注意服务间授权 授予跨账户访问权限以实现资源共享 以及涉及可信配置文件的策略:
- 最近使用的政策: 您可能想要保留它们,因为这些策略的创建应该是有原因的并且它们正在使用中。 但是,您可能需要检查它们是否定义了过于广泛的权限。
- 保单闲置 30 天及以上: 您应该调查这些政策的用途。 也许它们用于不常见的任务? 如果尚未完成,您可能需要考虑限制策略 基于时间的限制。 因此,它们只能在指定的时间窗口内使用。 还需要检查的是该政策是否仅限于过去的日期。
- 从未使用过的政策: 这些都需要调查。 谁创造了它们以及出于什么目的? 为什么它们从未被使用过? 可能有好的原因,也可能有坏的原因。
为了提高安全性,您应该删除那些不再需要的策略。 根据您在 IBM Cloud 控制台中或使用 CLI 或 API 分析策略详细信息的方式,您希望继续在同一环境中并删除过时的策略。 尽管您可以通过单个 API 调用检索所有策略或在控制台的单个列表中列出非活动策略,但删除取决于策略类型和主题。 每个在控制台和 CLI 中都有自己的命令。
结论
访问策略定义谁接收对什么资源授予的哪组特权。 它们以不同的方式存在,用于访问组、IAM 身份和服务到服务授权。 如果访问策略变得过时并且不再需要,它们就会带来安全风险,应该被删除。 目标是以最少的权限进行操作。
IBM Cloud 提供了识别不活动或未使用的访问策略的功能。 我们讨论了如何识别此类政策以及如何处理它们。 那么,您上次分析 IBM Cloud 帐户中的非活动身份是什么时候?
开始使用以下资源:
如果您对本文有反馈、建议或疑问,请在 Twitter 上与我联系(@data_henrik), 乳齿象 (@data_henrik@mastodon.social) 或者 领英。