写点什么

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:006053

评论

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

TIKV 源码学习笔记--BatchSystem 创建初始化流程

TiDB 社区干货传送门

TiDB 底层架构 TiKV 源码解读 TiKV 底层架构

TIDB DM功能使用实践

TiDB 社区干货传送门

6.x 实践

TiDB 7.5 LTS版本新增的Hint

TiDB 社区干货传送门

管理与运维 新版本/特性解读 7.x 实践

【必备】,95页初级前端模块笔记分享

阿里、莫言

前端 前端面试

一文了解TiDB的执行计划绑定功能

TiDB 社区干货传送门

性能调优 实践案例

Haproxy 探活 TiDB in Action

TiDB 社区干货传送门

一张图搞清楚wait、sleep、join、yield四者区别,面试官直接被征服!

不在线第一只蜗牛

Java 程序员 面试

知识图谱中的数据服务是什么?

悦数图数据库

知识图谱

多模态 + 大模型会带来哪些 “化学反应”?

京东科技开发者

TIKV BatchSystem 概述

TiDB 社区干货传送门

TiDB 底层架构

现网修改TiDB集群IP和端口

TiDB 社区干货传送门

6.x 实践

web快速开发框架,前端开发学习教程

阿里、莫言

前端 前端面试 前端知识

知识图谱数据开发是做什么的

悦数图数据库

图数据库

京东ES支持ZSTD压缩算法上线了:高性能,低成本

京东科技开发者

TIDB数据库在某省妇幼业务系统应用

TiDB 社区干货传送门

实践案例 数据库架构选型 性能测评 7.x 实践

TDengine 签约优力电,查询速度提升至毫秒级别

TDengine

tdengine 时序数据库

华为吴辉:强健“伙伴+华为”体系,让数智世界一触即达

新消费日报

站群云服务器租用攻略,让你的网站运行更稳定更快速

一只扑棱蛾子

站群服务器 站群云服务器租用 站群云服务器

【AAAI 2024】解锁深度表格学习(Deep Tabular Learning)的关键:算术特征交互

阿里云大数据AI技术

人工智能 机器学习 架构 算法

了解 x-www-form-urlencoded 及实践

Liam

程序员 前端 Web HTTP x-www-form-urlencoded

TIDB 行转列和列转行操作(附SQL实战)

TiDB 社区干货传送门

实践案例

TIKV 源码学习笔记--分布式事务接口 CheckTxnStatus/ ResolveLock

TiDB 社区干货传送门

TiDB 底层架构

基于信通院混沌测试工具databench-c对TiDB数据库进行混沌测试

TiDB 社区干货传送门

实践案例 性能测评

虾皮Shopee根据ID取商品详情API

Noah

全栈开发与自动化测试高薪私教班,带你从0到1拿到高薪Offer

测试人

软件测试

北斗芯片产业的高质量发展之路

江湖老铁

Sora Opera:天图万境联合华为云共筑AI生成式视频音效新高度

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 视频配音 AI生成式视频音效

增长分析系列一:社交行业指标体系设计与运营策略探究

ClkLog

为什么Python语言那么受欢迎呢?

小魏写代码

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