
Yor是一个开源工具,旨在为基础设施即代码(IaC)框架添加信息丰富且一致的标签。目前支持Terraform、CloudFormation和Serverless框架,可自动为IaC资源块添加标签。Yor可作为GitHub Action自动应用标签逻辑,也可作为pre-commit钩子或独立CLI工具运行,帮助团队实现云资源与IaC代码的关联追踪及变更管理。
yor_trace标签实现IaC资源块与运行中的云资源之间的简单关联。bashdocker pull bridgecrew/yor
在本地IaC目录上运行Yor添加标签:
bashdocker run --tty --volume /local/path/to/tf:/tf bridgecrew/yor tag --directory /tf
说明:
--volume /local/path/to/tf:/tf将本地IaC目录挂载到容器内的/tf路径,tag --directory /tf指定对该目录下的IaC文件应用标签。
tag命令(核心标签功能)
bash# 对terraform目录树应用所有标签(递归) docker run --tty -v /local/tf:/tf bridgecrew/yor tag --directory /tf # 对terraform目录应用标签,不递归子目录 docker run --tty -v /local/tf:/tf bridgecrew/yor tag --directory /tf --non-recursive # 仅应用指定标签(git_file和git_org) docker run --tty -v /local/tf:/tf bridgecrew/yor tag --directory /tf --tags git_file,git_org # 排除指定标签(以git开头和yor_trace标签) docker run --tty -v /local/tf:/tf bridgecrew/yor tag --directory /tf --skip-tags git*,yor_trace # 仅应用git标签组下的所有标签 docker run --tty -v /local/tf:/tf bridgecrew/yor tag --tag-groups git --directory /tf # 应用自定义键值对标签(需设置环境变量) docker run --tty -e YOR_SIMPLE_TAGS='{ "Environment" : "Dev" }' -v /local/tf/dev:/tf bridgecrew/yor tag --tag-groups simple --directory /tf # Dry-Run模式(预览标签变更,不实际修改文件) docker run --tty -v /local/tf:/tf bridgecrew/yor tag -d /tf --dry-run # 使用外部标签组配置文件 docker run --tty -v /local/config:/config -v /local/tf:/tf bridgecrew/yor tag -d /tf --config-file /config/custom_tags.yaml # 排除特定类型的资源(如aws_s3_bucket) docker run --tty -v /local/tf:/tf bridgecrew/yor tag -d /tf --skip-resource-types aws_s3_bucket # 为标签添加前缀 docker run --tty -v /local/tf:/tf bridgecrew/yor tag -d /tf --tag-prefix "module_" # 排除指定名称的资源 docker run --tty -v /local/tf:/tf bridgecrew/yor tag -d /tf --skip-resources aws_s3_bucket.operations # 仅对指定框架应用标签 docker run --tty -v /local/tf:/tf bridgecrew/yor tag -d /tf --parsers Terraform,CloudFormation
输出格式控制
bash# 默认CLI输出 docker run --tty -v /local/tf:/tf bridgecrew/yor tag -d /tf -o cli # JSON格式输出 docker run --tty -v /local/tf:/tf bridgecrew/yor tag -d /tf -o json # 同时输出CLI和JSON文件(便于程序分析+人工阅读) docker run --tty -v /local/tf:/tf bridgecrew/yor tag -d /tf --output cli --output-json-file /tf/result.json
跳过目录
bash# 对path/to/files应用标签,跳过指定子目录 docker run --tty -v /local/path/to/files:/tf bridgecrew/yor tag -d /tf --skip-dirs /tf/skip,/tf/another/skip2
列出标签
bash# 列出内置标签组 docker run --tty bridgecrew/yor list-tag-groups # 列出所有内置标签 docker run --tty bridgecrew/yor list-tags # 列出git标签组下的所有标签 docker run --tty bridgecrew/yor list-tags --tag-groups git
通过特定注释可排除资源或文件被标签化,目前支持Terraform和CloudFormation文件:
排除特定资源
hcl# Terraform示例 #yor:Skip resource "aws_instance" "example_instance" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" } # CloudFormation示例 #yor:skip ExampleInt: Type: AWS::Lambda::Function Properties: Description: An example template
排除文件中所有资源
hcl# Terraform示例 #yor:skipAll resource "aws_vpc" "example_vpc" { cidr_block = "10.0.0.0/16" } # CloudFormation示例 #yor:skipAll Resources: NewVolume: Type: AWS::EC2::Volume Properties: Size: 100
yor_trace是一个特殊标签,为IaC资源代码块创建唯一标识符。通过该标签,无需访问敏感的plan或state文件,即可将云资源与对应的IaC代码块关联,实现从云资源到代码的追踪。
bashbrew tap bridgecrewio/tap brew install bridgecrewio/tap/yor
bashchoco install yor
yamlname: IaC trace on: [push, pull_request] jobs: yor: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Run yor action uses: bridgecrewio/yor-action@main
golangci-lint run --fix --skip-dirs tests/yor_plugins确保代码规范您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务