Terraform
安装 Sentinel CLI
HCP Terraform 使用 Sentinel 来为您的基础设施启用精细的策略控制。Sentinel 是一种语言和策略框架,它将 Terraform 操作限制为定义的允许行为。策略作者使用策略集(一系列策略)在 HCP Terraform 中管理 Sentinel 策略。组织所有者通过将某些策略集应用于整个组织或选定的工作空间来控制策略集的范围。
基于代码的策略框架使您能够像管理应用程序一样管理治理需求:由操作员编写、在 VCS 中控制、进行审查并在部署过程中自动化。

Sentinel CLI(命令行界面)验证和测试规则,以便您可以开发 Sentinel 策略。
安装 Sentinel CLI 后,请尝试其他 Sentinel 教程,以练习编写、测试和导入 HCP Terraform 的策略。
安装 Sentinel CLI
要安装 Sentinel CLI,请为您的系统找到合适的软件包并下载。CLI 打包为 zip 压缩文件。
下载 Sentinel 后,解压缩软件包。CLI 运行为单个二进制文件,名为sentinel。软件包中的任何其他文件都可以安全地删除,并且 Sentinel 仍然可以正常工作。
最后,请确保sentinel二进制文件在您的PATH中可用。此过程将因您的操作系统而异。
让您的终端打印PATH中位置的冒号分隔列表。
$ echo $PATH
将sentinel二进制文件移动到列出的位置之一。下面的命令假定二进制文件当前在您的下载文件夹中,并且您的PATH包含/usr/local/bin,但您可以自定义它,如果您的位置不同。
$ mv ~/Downloads/sentinel /usr/local/bin/sentinel
有关将二进制文件添加到路径的更多详细信息,请参阅这篇文章。
验证 Sentinel 安装
安装 Sentinel CLI 后,通过打开一个新的终端会话并检查sentinel二进制文件是否可用,来验证安装是否成功。执行sentinel后,您应该会看到类似于以下内容的帮助输出
$ sentinel
Usage: sentinel [--version] [--help] <command> [<args>]
Available commands are:
apply Execute a policy and output the result
fmt Format Sentinel policy to a canonical format
test Test policies
version Prints the Sentinel runtime version
如果收到找不到二进制文件的错误,则您的PATH环境变量未正确设置。请返回并确保您正确设置了PATH。
运行策略
为了使 Sentinel 运行策略,它需要数据来测试策略。打开嵌入式终端会话,并按照窗口左侧的说明测试针对预填充的 HCP Terraform 计划数据的策略。示例策略确保 S3 存储桶附加了标签。
启动终端
本教程包括一个免费的交互式命令行实验室,您可以跟随实际云基础设施进行操作。
这是您将要测试的策略
import "tfplan/v2" as tfplan
s3_buckets = filter tfplan.resource_changes as _, rc {
rc.type is "aws_s3_bucket" and
(rc.change.actions contains "create" or rc.change.actions is ["update"])
}
bucket_tags = rule {
all s3_buckets as _, instances {
instances.change.after.tags is not null
}
}
main = rule {
bucket_tags
}
下一步
完成以下教程,了解如何使用 Sentinel CLI 并强制执行 Sentinel 策略
- 了解如何 生成模拟策略数据
- 了解如何 编写 Sentinel 策略
- 了解如何 测试 Sentinel 策略
- 了解如何 将 Sentinel 策略集上传到 HCP Terraform