写点什么

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

评论

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

XCH奇亚算力挖矿系统开发成功案例丨XCH奇亚算力挖矿开发(源码演示)

系统开发咨询1357O98O718

Pulumi AWS 在进行预览更新的时候持续提示 Key 错误

HoneyMoose

help.hybris.com和help.sap.com网站的搜索实现

汪子熙

Java SAP abap Hybris

没想到你是这样的EasyRecovery

淋雨

数据恢复 EasyRecovery 文件恢复

☕【JVM技术之旅】字节码指令重排序

码界西柚

JVM 指令重排序 6月日更

进大厂必备的项目经验!基于Spring Cloud再造滴滴打车项目实战

Java架构追梦

Java 架构 微服务 SpringCloud 网约车项目

SAP ABAP和Hybris的源代码生成工具

汪子熙

Java SAP abap Hybris commerce

Chia奇亚挖矿系统开发技术方案丨Chia奇亚挖矿源码模式

系统开发咨询1357O98O718

Github大神梳理了各个大厂春秋招面经,分享上万道面试题及答案,面试过程的文档教程!

Java架构师迁哥

如何查看SAP CRM WebUI,C4C和Hybris里的页面技术信息

汪子熙

CRM abap WebClient UI SAP UI5

Java并发编程——AQS源码解析

Antway

6月日更

SAP BSP和JSP里的UI元素ID生成逻辑

汪子熙

Java jsp SAP abap SAP UI5

SAP Cloud for Customer(C4C)和微软Outlook的集成

汪子熙

微软 SAP abap SAP UI5 outlook

IP地址定位在网站上的几个代表性应用

郑州埃文科技

奇亚Chia算力挖矿系统开发(案例源码)

系统开发咨询1357O98O718

XCH奇亚系统开发流程丨XCH奇亚源码案例开发

系统开发咨询1357O98O718

职场人弯道超车的秘籍,利用Camtasia可以轻松实现!

淋雨

Camtasia 专业录屏

还在用SELECT COUNT统计数据库表的行数?Out了

汪子熙

SAP abap hana

IP数据库的定位能力在商业端的具体应用有哪些?(一)

郑州埃文科技

Pulumi Stack 命令不能找到默认的 Stack

HoneyMoose

BZZ节点算力挖矿系统开发流程丨BZZ节点算力挖矿现成源码

系统开发咨询1357O98O718

Chia(奇亚)算力挖矿系统开发详解丨Chia(奇亚)算力挖矿开发源码功能

系统开发咨询1357O98O718

Hybris UI的Route(路由)实现

汪子熙

Java SAP WebClient UI Hybris

无损放大美好回忆  让容颜无惧时光!

淋雨

PhotoZoom 无损放大 图片无损放大

这个暑假,狂暴输出炫酷的游戏视频,就靠Camtasia 2021啦!

淋雨

Camtasia 录屏 专业录屏

【LeetCode】反转每对括号间的子串Java题解

Albert

算法 LeetCode 6月日更

架构实战营模块5作业

Vic

架构实战营

树莓派体验Docker

IT蜗壳-Tango

6月日更

华为VS谷歌:万物互联,谁主沉浮?

老猿Python

华为 Google HarmonyOS 谷歌 Fuchsia

k8s部署手册

Damon

k8s 6月日更

微服务简介

wildpig

容器 微服务 Spring Cloud

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