写点什么

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

评论

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

YashanDB安装前操作系统参数调整

YashanDB

数据库 yashandb

百万技术博主实测:AI+Java 一键写程序 ,写一句代码算我输

飞算JavaAI开发助手

2025 Lakehouse 趋势全景展望:从技术演进到商业重构

镜舟科技

开源 架构 iceberg LakeHouse StarRocks

YashanDB安装前服务器准备

YashanDB

数据库 yashandb

比 cursor 更懂中国程序员,飞算 JavaAI 助力代码平权

飞算JavaAI开发助手

GPU 云服务器的软件系统设计和实践

Baidu AICLOUD

GPU服务器 百度百舸 百度太行

SD-WAN实践案例解析:跨国企业异地组网方案

Ogcloud

SD-WAN 企业组网 企业网络 SD-WAN组网 sd-wan专线

SD-WAN技术是怎样提高TikTok海外直播流畅度的?

Ogcloud

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

联想AI服务器首次实现低于1TB本地部署DeepSeek满血大模型

新消费日报

YashanDB安装初始环境调整

YashanDB

数据库 yashandb

Deepseek R1 的技术揭秘与低成本复现,中科院计算所工程师『致 Great』的分享实录已整理!

ModelWhale

人工智能 大数据 大语言模型 DeepSeeek

YashanDB安装前依赖项准备

YashanDB

数据库 yashandb

Appple 超级体验官招募!大声说出你的宝藏 App~

声网

如何在 NocoBase 中实现 CRM 的线索转化

NocoBase

开源 低代码 开发工具 教程 CRM

动手魔改属于自己的 Frida

LLLibra146

Frida Android 逆向

财务领导者应如何转型以提高企业运营的效率

智达方通

企业管理 财务管理 财务规划

PM求职必备软件!这10款工具助你变身Offer收割机!

职场工具箱

产品 效率工具 产品经理 求职 办公软件

02 HarmonyOS Next仪表盘案例详解(一):基础篇

全栈若城

HarmonyOS NEXT

2025 年 Java 工程师必备的 AI 工具链配置方案

飞算JavaAI开发助手

荣耀一箭,射穿PC行业的苹果屏障

脑极体

AI

《Operating System Concepts》阅读笔记:p179-p179

codists

操作系统

企业级智能办公演进:基于低代码平台的流程自动化与系统集成架构设计

不在线第一只蜗牛

Kubernetes Secrets 加密实践

俞凡

Kubernetes 云原生 安全

YashanDB目录划分

YashanDB

数据库 yashandb

使用 OpenLIT 对 LLM 应用进行可观测

观测云

OpenTelemetry LLM

Markdown 区块的妙用

NocoBase

开源 markdown 低代码 开发工具 教程

03 HarmonyOS Next仪表盘案例详解(二):进阶篇

全栈若城

HarmonyOS NEXT

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