写点什么

HashiCorp 策略即代码框架 Sentinel 新增多项开发体验改进

  • 2023-05-18
    北京
  • 本文字数:989 字

    阅读完需:约 3 分钟

HashiCorp策略即代码框架Sentinel新增多项开发体验改进

HashiCorp发布了策略即代码框架Sentinel一些改进,新特性包括:改进导入配置语法、新增静态导入特性、支持命名函数以及 per-policy 参数值。它还提供了新的辅助函数,用来确定一个值是否未定义。

 

0.19 版本引入了经过改进的导入配置系统,提供了标准化的命名约定,以及使用 HCL 语法的一致性更好的导入配置。现在, import块还允许覆盖策略中使用的导入和插件的默认配置。新语法如下所示:

import "plugin" "time" {	config = {		timezone = "Australia/Brisbane"	}} import "module" "reporter" {	source = "./reporter.sentinel"}
复制代码

 

0.19 版本还引入了一个新的静态导入特性,允许将静态的结构化 JSON 数据导入策略。该导入块有两个配置属性:source表示数据的路径;format目前只支持 JSON 格式。

 

import "static" "people" {    source = "./data/people.json"    format = "json"}
复制代码

 

数据一旦导入,就可以在策略中使用了。假如 JSON 中有一个名为names的键,则可以使用length(people.names)确定该对象的长度。HashiCorp 表示将在以后的版本中添加对其他数据格式的支持。

 

0.20 版本引入了命名函数。该功能允许定义不能重新分配或重用的函数。请注意,匿名函数仍然可以重新分配,如果之后调用该函数,可能会导致策略失败。命名函数的语法如下所示:

 

func sum(a, b) {	a + b}
复制代码

 

0.21 版本增加了两个辅助函数,用来确定一个值是否已定义。在以前的版本中,策略作者必须使用else表达式从未定义值中恢复并提供替代值。

 

foo = undefined // 在0.21之前的版本中foo else false is false // falsefoo else true is true // true // 在0.21+版本中foo is defined // falsefoo is not defined // true
复制代码

 

该版本还增加了 per-policy 参数值。这些值为每个策略提供一次,优先于全局提供的值。以前,参数值在一个配置中只提供一次,并在所有策略中共享。

 

policy "restrict-s3" {	source = "./deny-resource.sentinel"	params = {		resource_kind = "aws_s3_bucket"	}}
复制代码

 

Terraform Cloud 的最新版本还增加了对开放策略代理(OPA)的支持,作为一种可选的策略即代码框架。OPA 是一个开源策略引擎,它使用了一种名为Rego的高级声明性语言。

 

HashiCorp网站提供了 Sentinel 的下载。要了解关于这些版本的更多细节,可以查看HashiCorp官方博客更新日志

 

原文链接:

https://www.infoq.com/news/2023/04/hashicorp-sentinel-devex/

2023-05-18 08:006035

评论

发布
暂无评论
发现更多内容

设计模式第八讲:观察者模式和中介者模式详解

C++后台开发

数据结构 设计模式 后端开发 Linux服务器开发 C++开发

2023-02-23:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420P格式文件。

福大大架构师每日一题

golang ffmpeg 福大大

阿里云云通信风控系统的架构与实践

阿里云CloudImagine

云计算 云通信

Python 基础练习题(三)

漫步桔田

预防DIP器件可焊性问题,看这篇就够了

华秋电子

金融与科技融合发展,将技术转化成生产力是重中之重

镜舟科技

数据库 数据库·

大模型时代的异构计算平台

Baidu AICLOUD

大模型训练 异构计算

如何实现文件高速传输,推荐镭速高速文件传输解决方案

镭速

MegEngine 使用小技巧:使用 Netron 实现模型可视化

MegEngineBot

深度学习 开源 MegEngine Netron 模型可视化

【AAAI 2023】针对视频分类的知识迁移

Zilliz

计算机视觉

前端二面高频react面试题集锦

夏天的味道123

前端 React

2023前端二面手写面试题总结

helloworld1024fd

JavaScript 前端

如何使用 Kubernetes 实现应用程序的弹性伸缩

API7.ai 技术团队

Prometheus api 网关 APISIX Serverless Kubernetes

每日一题之请描述Vue组件渲染流程

bb_xiaxia1998

Vue 前端

2023前端二面vue面试题

bb_xiaxia1998

Vue 前端

高频js手写题之实现数组扁平化、深拷贝、总线模式

helloworld1024fd

JavaScript 前端

前端react面试题(边面边更)

beifeng1996

前端 React

百度前端一面高频react面试题指南

beifeng1996

前端 React

React的useLayoutEffect和useEffect执行时机有什么不同

beifeng1996

前端 React

React循环DOM时为什么需要添加key

beifeng1996

前端 React

JS继承有哪些,你能否手写其中一两种呢?

helloworld1024fd

JavaScript 前端

前端常见手写面试题集锦

helloworld1024fd

JavaScript 前端

用ChatGPT优化AI绘画提示词的探索

Baihai IDP

人工智能 AI AIGC ChatGPT

最佳的18个JAVASCRIPT前端开发框架和库

2D3D前端可视化开发

web前端 Javascript框架 前端开发框架 webgl库 javascript库

网心科技以11.3%的市场份额跻身IDC中国边缘公有云市场前三

网心科技

边缘计算 IDC 边缘云 边缘云原生

人人能读懂redux原理剖析

夏天的味道123

前端 React

逃离同质化,OPPO折叠屏正在笃定远一点的未来

脑极体

OPPO 折叠屏

StarRocks携手零洞科技,助力碧桂园物业企业微信数字化项目

StarRocks

数据库 开源 互联网

ChatGPT热潮背后,金融行业大模型应用路在何方?——金融行业大模型应用探索

易观分析

金融 科技

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue 前端

HashiCorp策略即代码框架Sentinel新增多项开发体验改进_架构_Matt Campbell_InfoQ精选文章