如果你读过 一些 我的 早些时候 博客 帖子,您知道我自动化了研讨会和黑客马拉松的设置(入门)。 到目前为止,运行我的 Terraform 脚本来部署资源和权限意味着允许访问它们。 得益于一项(相对)新的 IBM Cloud 安全功能,称为 基于时间的限制,我可以将部署过程与可以访问的时间分离。
在这篇博文中,我将简要介绍基于时间的限制。 然后,我将向您介绍我的用例以及我如何实现它:
概述:基于时间的限制
身份和访问管理 (IAM) 允许您保护您的 IBM Cloud 资源。 您可能已经学会了如何利用访问组、可信配置文件、服务和用户身份以及如何分配访问权限。 通过增加 基于时间的限制,您可以将这些访问策略的范围进一步限定为特定时间和日期范围(一次)或循环窗口。 后者可能是维护时段,例如周末或夜间的特定时间。 单个事件(一次)的典型示例是几个小时的临时维护工作或一些具有给定开始和结束时间的计划的较长任务。
创建新策略时,您现在可以选择添加何时应授予访问权限的条件。 在 IBM Cloud 控制台的浏览器 UI 中,提供了该可选步骤(请参见下图)。 我也可以使用 CLI 或 API/SDK,但为了自动设置研讨会资源,我选择了 地形:
场景:研讨会
正如我的博客中所讨论的“研讨会和黑客马拉松的安全入职培训,”我有时需要运行短期项目。 对于这些项目,至关重要的是自动化入职和离职,以始终以相同的方式设置车间环境。 参与者应拥有与其角色相关的访问权限。 到目前为止,我将使用 Terraform(包括所有权限)部署资源,并在事件发生后销毁资源和访问权限。
通过向访问策略添加基于时间的限制,我可以分阶段授予访问权限。 我再次使用 Terraform 部署所有内容,包括 IAM 权限。 但是,与时间相关的条件确保策略仅在开始时间和结束时间之间有效。 它们可以设置为与研讨会开始和正式结束(或几个小时/几天后)保持一致。 在不破坏资源的情况下,研讨会结束后将自动切断对资源的访问。
下图显示了 我添加到共享 Terraform 代码中的示例条件。 您可以在 GitHub 存储库中找到所有内容 云项目入门 Terraform 和分支 研讨会_黑客马拉松。 本博文顶部的屏幕截图显示了 IBM Cloud 控制台中的相同情况。
rule_conditions {
key = "{{environment.attributes.current_date_time}}"
operator = "dateTimeGreaterThanOrEquals"
value = ["2023-07-19T09:00:00+01:00"]
}
rule_conditions {
key = "{{environment.attributes.current_date_time}}"
operator = "dateTimeLessThanOrEquals"
value = ["2023-07-26T09:00:00+01:00"]
}
rule_operator = "and"
pattern = "time-based-conditions:once"
结论
基于时间的限制是对现有 IBM Cloud 安全功能的重要补充。 它们允许您减少对单个时间、日期范围或定期维护时段的分配访问,从而减少攻击面。 对于我的自动加入和退出用例,基于时间的限制使我能够将资源和权限部署与激活访问分离。 这意味着我在何时执行管理任务方面拥有更大的灵活性。
想了解更多吗? 以下是我的建议:
如果您对本文有反馈、建议或疑问,请在 Twitter 上与我联系(@data_henrik), 乳齿象 (@data_henrik@mastodon.social) 或者 领英。