产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

评论

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

【工具使用】eclipse来回切换项目的JDK版本的方法(最全的)

No8g攻城狮

eclipse jdk jdk8 JDK7

易观分析《中国智能客服供应商实力矩阵2023》研究报告正式启动

易观分析

智能客服 易观分析

GBase 8s 之数据存储空间划分

@下一站

数据库优化 国产数据库 12月日更 12月月更

不愧是阿里资深架构师,这本“分布式架构笔记”写得如此透彻明了

钟奕礼

Java 程序员 java面试 java编程

2022-12-10:给你一个由小写字母组成的字符串 s ,和一个整数 k 如果满足下述条件,则可以将字符串 t 视作是 理想字符串 : t 是字符串 s 的一个子序列。 t 中每两个 相邻 字母在字

福大大架构师每日一题

算法 rust 福大大

裸辞美团花两月吃透这Java岗798道真题解析,定级阿里P7

钟奕礼

Java 程序员 java面试 java编程

元宇宙之数字孪生 孪数科技-企业元宇宙引领者

Jerry Tan

别研究 ChatGPT 了,来看个国产好项目!

Java永远的神

程序员 程序人生 后端 架构师 开源项目

面试官:断网了,还能 ping 通 127.0.0.1 吗?

Java全栈架构师

程序员 面试 程序人生 后端 计算机网络

字节大神熬夜整理MyBatis+Redis+Kafka+spring源码与实战技术齐飞

钟奕礼

Java java编程 程序员、

工赋开发者社区 | 65页数字化工厂规划与建设详细方案 !

工赋开发者社区

通过假设地图进行产品待办列表排序

Bruce Talk

Agile User Story Product Owner 敏捷、

Verilog 编译指令

梦笔生花

Verilog语法 Verilog编译指令

Alibaba官方「SpringCloudAlibaba全彩学习手册」限时开源!

架构师之道

Java 架构 面试 spring cloud stream

Mac内存清理工具CleanMyMac2023

茶色酒

CleanMyMacX CleanMyMac X CleanMyMac X2023

非一线工程管理者的一对一沟通

俞凡

领导力 管理

关于ChatGPT的一切;CUDA入门之矩阵乘;PyTorch 2.0发布|AI系统前沿动态

OneFlow

人工智能 深度学习 AI

易观分析苏筱芮:数字科技创新场景应用为王,驱动金融与实体经济同频发展

易观分析

金融

分库分表经典15连问

架构师之道

Java MySQL 编程

MacBook免费的电脑管家CleanMyMac2023

茶色酒

CleanMyMac CleanMyMac X

Compose把Text组件玩出新高度

Halifax

android 前端 kotlin Compose android jetpack

在 Ubuntu 上安装 Discourse 开发环境

HoneyMoose

使用声网 SDK 构建 Piloteer 助盲服务平台的最佳实践

声网

音视频 人工智能’ SDK 教程

分布式锁主动续期的入门级实现-自省 | 简约而不简单

小小怪下士

Java 程序员 分布式 分布式锁

基于 docker-compose 部署单机版本 ELK

忙着长大#

ELK

小令案例 | 互联网消费分期产品引入令牌云服务,大幅提升进件转化

令牌云数字身份

身份认证 分布式数字身份 成功案例

工赋开发者社区 | 架构瓶颈原则:用注意力probe估计神经网络组件提供多少句法信息

工赋开发者社区

Hadoop如何保证自己的江湖地位?Yarn功不可没

JAVA旭阳

Java 大数据

我在哪里可以获得CleanMyMac2023许可证

茶色酒

CleanMyMac2023

TechSmith Camtasia Studio2023免费的屏幕录像视频编辑软件

茶色酒

Camtasia Studio2023

聊聊最适合程序员的一些画图工具?

程序员小毕

程序员 程序人生 后端 架构师 画图工具

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