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

轻量服务器_公司如何申请企业邮箱_排行榜

小七 141 0

Sentinel和Terraform企业:将策略作为代码应用于基础设施配置

HashiCorp Terraform的基础设施即代码使运营商能够大规模地自动化供应。这伴随着风险,因为每一个行动都可能产生更大的影响。Sentinel策略作为代码设置了护栏,以保护用户不受业务和/或监管策略之外的基础架构更改的影响。示例约束可能包括:不允许在没有标记的情况下配置资源不允许在"us-east-1"中提供"开发"资源通过CIDR块限制AWS安全组入口和出口设置不允许在营业时间之外调配资源随着基础设施资源调配需求的增长,手动实施这些限制变得越来越困难。通过将策略作为代码提供,可以在Terraform Enterprise中使用Sentinel对这些类型的约束进行编码和自动化。»哨兵Sentinel是HashiCorp的语言和框架,用于将策略作为代码嵌入到现有软件中,从而实现细粒度的、基于逻辑的策略决策。策略描述在什么情况下允许某些行为。Sentinel被嵌入到HashiCorp的每个产品的企业版中,包括Terraform、Vault、Consult和Nomad。更多细节可以在HashiCorp的"代码框架策略"博客"Sentinel"中找到。»将企业和策略作为代码管理Terraform Enterprise为修改基础设施提供了一个安全的工作流,首先计划要进行的更改,然后在确认后应用它们。Sentinel在计划和应用之间向这个过程添加了一个新的步骤,其中任何配置的策略都将被强制执行。Terraform的计划、配置和状态数据可以通过tfplan插件提供给Sentinel,从而根据基础设施的建议更改来实施策略。»配置策略哨兵策略在组织上配置,并应用于该组织内所有工作区上的所有运行。这对于定义组织范围的策略非常有用,例如"禁止宽开放的AWS安全组进入"。将来还可以在工作区上直接配置策略,这是配置特定于环境的策略(如"开发环境不能有两个以上的应用实例")的更合适的地方。策略代码使用API或web UI输入Terraform Enterprise,不久将支持VCS集成。下面的屏幕截图显示在web UI中输入组织策略:Terraform Enterprise中的所有策略都有一些可配置的属性:Policy Name是一个简单的字符串,用于在Sentinel的输出中标识Sentinel策略。这是在UI或API中输入策略所需的详细信息。强制模式确定策略失败情况下会发生什么。有3个级别可供选择:咨询模式记录警告,但不阻止应用运行。这对于在不妨碍用户行动的情况下教会用户良好的习惯是很有用的。软强制模式要求具有适当权限的操作员在应用之前覆盖任何策略失败。这对于"用户不能在工作时间之外提供"之类的策略非常有用,因为这些策略需要故障保护。硬强制模式不允许任何重写,策略必须在应用之前通过。这对于强制执行法规要求(如"所有数据库卷都必须加密")的策略非常有用策略代码是输入哨兵策略的位置。详细的语法文档和示例可在https://docs.hashicorp.com/sentinel。»在Terraform企业中编写策略Sentinel有一个可插拔的架构,允许核心语言为它嵌入的每个产品进行扩展。以下策略使用tfplan插件检查所有AWS安全组是否都不允许完全打开的入口:导入"tfplan"不允许的块=["0.0.0.0/0",]主=规则{全部tfplan.resources.aws_安全性_组作为实例{所有实例都是{全部sg应用入口作为入口{所有不允许的区块作为区块{ingress.cidr_区块不包含块}}}}}如您所见,"tfplan"插件被导入,然后用于访问我们感兴趣的Terraform资源集(在本例中是AWS安全组)。然后,对找到的资源进行迭代,并根据不允许的\cidr_块测试每个资源的应用值。应用的资源表示应用计划时的值。这对于检查基础结构的建议更改非常有用。所有Terraform资源和模块属性都可以在策略中使用。Terraform计划还包含完整的状态和配置数据,它们都可以通过"tfplan"插件获得。»政策执行Terraform Enterprise中的哨兵策略在计划完成后立即执行。这反映在运行视图页面上。如果存在策略,则计划完成时将显示"策略检查"部分:在上述示例中,"cidr块"策略失败。上面的计划输出显示Terraform配置包含一个允许从"0.0.0.0/0"进入的安全组,这在我们的Sentinel策略中被明确拒绝。在本例中,策略的强制模式设置为软强制,这允许组织所有者在特殊情况下绕过策略失败。重写策略将运行置于待确认和应用的位置,这可以由工作区所有者或组织所有者完成。"注释"框允许组织所有者对策略被重写的原因进行注释。重写策略后,运行页上的提示将如下所示:在咨询执行模式下,失败看起来非常相似,只是不需要组织所有者的干预来确认和应用计划。"确认并应用"按钮将正常出现,如下所示:在强制强制强制模式下,策略检查对任何用户都没有任何覆盖选项。在能够在此场景中应用更改之前,需要对Terraform配置或Sentinel策略进行修改,如下所示:在调整Terraform配置以满足策略要求后,策略检查应该通过,如下所示:工作区所有者能够确认并应用一个可以自由通过策略检查的运行。»Terraform企业演示下面显示了Terraform企业工作区管理和哨兵策略的代码演示。»结论策略即代码管理是Terraform Enterprise的一部分。有关Terraform Enterprise的更多信息或开始免费试用,请访问Terraform产品页面。