写点什么

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

评论

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

室内LED全彩显示屏P3与P5

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏 规格说明

TikTok直播卡顿怎么解决?教你几个方法!

Ogcloud

SD-WAN tiktok直播 tiktok直播网络 tiktok网络 sd-wan专线

AI工具如何一键生成图表?5个流行的图表生成软件盘点!

职场工具箱

人工智能 图表 AI软件 AIGC 可视化工具

阿里Java开发手册:编程规约、异常日志、单元测试、安全规 约、MySQL 数据库、工程结构、设计规约!

程序员高级码农

Java 程序员 java 技术提升

现代框架对SEO的深度影响

溪抱鱼

国际化 SEO SEO工具

11.多用组合和少继承

杨充

从0到上线,CodeBuddy 如何帮我快速构建旅游 App?

VyrnSynx

CodeBuddy首席试玩官

鸿蒙适配unity的交互方法

cfx

鸿蒙 HarmonyOS HarmonyOS NEXT

莫想到有一天得重新写个 etcd client

八苦-瞿昙

什么是AI大模型?看deepseek用通俗易懂的语言解释

我再BUG界嘎嘎乱杀

人工智能 AI AI大模型 大模型 大语言模型

常见应用层DDoS攻击

天翼云开发者社区

安全 DDoS

YashanDB 知识库|STATISTICS_LEVEL 设置为 ALL,性能掉到冰点?一条参数搞清楚根因

数据库砖家

数据库

从AI助手到个性化数字分身:WeClone & Second Me打造本地化、私有化的个性化AI代理系统

汀丶人工智能

人工智能

Arthas vmtool(从 jvm 里查询对象,执行 forceGc)

刘大猫

Java 监控 Arthas 监控工具 vmtool

使用LLaMA-Factory快速训练自己的专用大模型

我再BUG界嘎嘎乱杀

人工智能 AI 大模型

用 CodyBuddy 帮我写自动化运维脚本

悟空聊架构

AI 悟空聊架构 CodeBuddy首席试玩官

uniapp开发HarmonyOS NEXT应用之项目结构详细解读

幽蓝计划

城市感知网络体系,构筑全域数字化新基石

脑极体

AI

手动开发?给我一条提示词,CodeBuddy能做的你都做不到!

VyrnSynx

CodeBuddy首席试玩官

100台电脑局域网搭建攻略和设备配置指南

Ogcloud

局域网 企业组网 局域网组建 局域网搭建 企业网络搭建

这款AI助手竟能自动生成行程+前端代码?

VyrnSynx

CodeBuddy首席试玩官

鸿蒙应用开发中的生命周期管理:从组件到应用的全流程解析

谢道韫

鸿蒙 HarmonyOS HarmonyOS NEXT 实践分享

湖仓一体架构在金融典型数据分析场景中的实践

镜舟科技

数据分析 金融 存算分离架构 StarRocks 湖仓一体

Kagi搜索:互联网搜索的净土,值得你的每一分钱

AI段舸

AI 搜索软件

闺蜜机行业市场销量涨超42%,小度科技持续领跑行业

科技大数据

uniapp跨平台开发HarmonyOS NEXT应用初体验

幽蓝计划

鸿蒙跨平台开发

《算法导论(第4版)》阅读笔记:p14-p16

codists

算法

关于懒加载,LazyForEach和Repeat的区别,哪一个性能更好呢?

cfx

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT

连锁药店如何安全访问总部运营系统?贝锐花生壳带来解决方案

贝锐

内网穿透 ERP

需求分析不好做?这门华为新课免费试听!

YG科技

AI实践探索:辅助生成测试用例

小巫debug日记

测试用例 AI编程

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