云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港服务器_云服务器国外_免费1年

小七 141 0

在Terraform Enterprise和Cloud中扩展Sentinel的tfrun导入

去年11月,我们宣布在Terraform Enterprise和Cloud中发布Sentinel的tfrun导入。新的tfrun导入的发布为客户提供了一个改进的策略编写工作流,以及创建可应用于整个组织的策略的灵活性,并减少了对策略重复的需要。从那时起,我们得到了来自客户的稳定反馈流,这些反馈涉及不同的用例,促使我们扩展由tfrun导入公开的属性列表。例如,新扩展的tfrun导入现在为策略作者提供了与Terraform云组织的名称、创建运行的日期和时间、作为运行一部分提供的消息以及许多其他属性相关的上下文。下图包含所有新公开的属性:tfrun公司├—创建于(字符串)├—消息(字符串)├—推测(布尔)├—is_destroy(布尔值)├—变量(键映射)├—组织││—名称(字符串)├—工作区│–├—名称(字符串)│–├—描述(字符串)│–├—自动应用(bool)│–├—工作_目录(字符串)││——vcs回购(密钥映射)———成本估算├—以前的每月费用(字符串)├—拟定每月_成本(字符串)———delta_月成本(字符串)以下是我们的客户要求我们在tfrun导入中支持的一些用例:»维护窗口强制执行在大多数企业组织中,通常的做法是指定一个例行维护窗口,以便技术人员执行可能导致服务中断的预防性维护。在本例中,我们使用time import来加载Terraform运行的时间空间,并使用weekday_name方法来确定是否将在指定用于日常维护的日期执行更改。使用Sentinel参数提供维护天数的值:导入"tfrun"导入"时间"param maintenance_days default Friday(星期五),"周六","周日"]tfrun_创建时间为=时间.负荷(tfrun.created_在)支持的_maintenance_day=规则{tfrun_已创建_工作日维护期内}主=规则{支持维护日}注意:以上是一个非常极端的例子,只适用于需要非常高级别服务可用性的环境。您也可以使用时间导入来限制维护时间在下午6点到上午6点等。有关更多信息,请参阅时间导入文档。»按组织名称的策略评估客户有时需要维护一个单一的策略源,但需要灵活性,以不同的方式将它们应用于Terraform组织。例如,您可能希望在生产环境中应用所有策略规则,但在开发环境中可能不希望这样做。在上一个示例的基础上,让我们看看如何在受支持的维护日使用when谓词来实现这一点。正如您在下面的示例中看到的,我们正在使用一个规则表达式来计算tfrun_organization_name的值。如果值是"hashicorp",则计算Sentinel规则。导入"tfrun"导入"时间"param maintenance_days default Friday(星期五),"周六","周日"]tfrun_创建时间为=时间.负荷(tfrun.created_在)tfrun_组织机构名称=tfrun.organization.namesupported_maintenance_day=tfrun_organization_name为"hashicorp"时的规则{tfrun_已创建_工作日维护期内}主=规则{支持维护日}注意:我们还可以使用contains或matches运算符来检查字符串值是否存在。例如,如果组织名称是"hashicorp staging",我们可以检查"staging",如下所示:supported_maintenance_day=tfrun_organization_name包含"staging"时的规则{tfrun_已创建_工作日维护期内}»防止输出泄露敏感值许多组织使用Terraform来管理其基础设施,因此可以保证客户将在资源调配工作流中使用敏感信息。Terraform通常需要特权访问凭据以及其他敏感信息来执行其功能。这些信息通常作为输入变量提供给Terraform。我们在Terraform Cloud中保护这些数据的方法通常是将某些输入变量标记为敏感的,并让平台负责数据的存储和加密。通过对tfrun导入所做的新更改,您现在可以利用variables属性防止通过输出值无意中泄漏数据。我们使用下面定义的敏感变量表中的terra-sensitive-form的值来确定是否允许用户使用terra-sensitive-form的输出值。导入"tfrun"导入"tfconfig"导入"字符串"sensitive_tfrun_variables=过滤器tfrun.variables变量作为变量,值{价值敏感型是真的}打印(键(敏感的\u tfrun_变量))get_output_references=func(){输出_引用=[]对于价值观(tfconfig.outputs)作为输出{参考=过滤器输出.参考as value{value包含"var"}供参考{附加(输出参考,字符串。拆分(参考,"."[-1])}}返回输出_引用}通过灵敏度=func检查输出变量{结果=假输出变量作为输出变量{键中的if输出变量(敏感的\u tfrun_变量){打印("变量",输出变量,"配置为敏感变量,不能作为Terraform输出公开")返回结果}其他{结果=真}}返回结果}deny_secure_output_variables=规则{按敏感度检查输出变量(get_output_references())}主=规则{拒绝安全输出变量}»现在可用这些示例只是触及了在Sentinel策略中使用Sentinel tfrun导入所能达到的效果。可用属性的完整列表包含在tfrun导入文档中。所有Terraform Cloud和Terraform Enterprise客户都可以在其策略中使用这些新属性。如果您对我们如何进一步扩展tfrun导入或任何Sentinel导入有任何想法,请与我们联系,因为我们总是有兴趣听到您的消息并发现新的用例。有关Terraform云和Terraform Enterprise的更多信息,或者要开始免费试用,请访问Terraform产品页面。要了解有关Terraform的更多信息,请访问HashiCorp学习平台并查看其实际操作。