
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
的基础Go SDK,该语言由美国国家标准与技术研究院(NIST)开发。还包含一个CLI工具,用于处理OSCAL文档、在OSCAL格式的XML、JSON和YAML之间转换,以及将OpenControl项目转换为OSCAL。该工具还支持从OSCAL格式的目录和配置文件生成Go源代码。
OSCAL标准的文档可在[***]
目前支持以下OSCAL组件:
| 组件 | 模式 |
|---|---|
| 目录 | https://github.com/usnistgov/OSCAL/blob/master/schema/xml/oscal-catalog-schema.xsd | https://github.com/usnistgov/OSCAL/blob/master/schema/json/oscal-catalog-schema.json | https://github.com/usnistgov/OSCAL/blob/master/schema/metaschema/oscal-catalog-metaschema.xml |
| 配置文件 | https://github.com/usnistgov/OSCAL/blob/master/schema/xml/oscal-profile-schema.xsd | https://github.com/usnistgov/OSCAL/blob/master/schema/json/oscal-profile-schema.json | https://github.com/usnistgov/OSCAL/blob/master/schema/metaschema/oscal-profile-metaschema.xml |
| 实现(开发中) | 目前基于https://github.com/usnistgov/OSCAL/issues/216%E4%B8%AD%E5%BC%80%E5%8F%91%E7%9A%84%E6%A8%A1%E5%9E%8B%E4%B8%8Ehttps://gist.github.com/anweiss/8afd321b6bf2a9d4e***a1b8f2fe%E4%B8%AD%E7%9A%84%E7%BB%84%E4%BB%B6%E5%AE%9A%E4%B9%89%E5%8E%9F%E5%9E%8B%E7%9A%84%E7%BB%84%E5%90%88 |
您可以从https://github.com/docker/oscalkit/releases%E9%A1%B5%E9%9D%A2%E4%B8%8B%E8%BD%BD%E9%80%82%E7%94%A8%E4%BA%8E%E6%82%A8%E7%B3%BB%E7%BB%9F%E7%9A%84%60oscalkit%60%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7%E3%80%82%E5%B0%86%E5%85%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%60$PATH%60%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E4%B8%AD%E5%88%97%E5%87%BA%E7%9A%84%E9%80%82%E5%BD%93%E7%9B%AE%E5%BD%95%E3%80%82macOS%E8%BF%98%E6%8F%90%E4%BE%9BHomebrew%E9%85%8D%E6%96%B9%EF%BC%8C%E5%90%8C%E6%97%B6https://hub.docker.com/r/docker/oscalkit/%E5%B7%B2%E5%8F%91%E5%B8%83%E5%88%B0Docker Hub。
bash$ brew tap docker/homebrew-oscalkit $ brew install oscalkit
运行
oscalkitDocker容器需要绑定挂载包含源文件的目录,或通过stdin将文件内容传递给命令。
bash$ docker pull docker/oscalkit:0.2.0 $ docker run -it --rm -v $PWD:/data -w /data docker/oscalkit:0.2.0 convert oscal-core.xml
通过stdin:
bash$ docker run -it --rm docker/oscalkit:0.2.0 convert < oscal-core.xml
NAME: oscalkit - OSCAL工具包 USAGE: oscalkit [全局选项] 命令 [命令选项] [参数...] VERSION: 0.2.0 COMMANDS: convert 在一种或多种OSCAL文件格式之间转换,以及从OpenControl格式转换 validate 根据OSCAL XML和JSON模式验证文件 sign 签名OSCAL JSON工件 generate 根据提供的配置文件生成go代码 implementation 根据提供的配置文件和Excel表格生成实现的go代码 help, h 显示命令列表或单个命令的帮助 GLOBAL OPTIONS: --debug, -d 启用调试命令输出 --help, -h 显示帮助 --version, -v 打印版本
oscalkit可用于将一个或多个源文件在OSCAL格式的XML和JSON之间转换。
NAME: oscalkit convert oscal - 在一种或多种OSCAL文件格式之间转换 USAGE: oscalkit convert oscal [命令选项] [源文件...] DESCRIPTION: 在OSCAL格式的XML和JSON文件之间转换。该命令接受一个或多个源文件路径,也可与通过STDIN管道/重定向的源文件内容一起使用。 OPTIONS: --output-path value, -o value 转换文件的输出路径。默认为当前工作目录 --output-file value, -f value 来自STDIN的转换输出的文件名。默认为"stdin.<json|xml|yaml>" --yaml 如果源文件格式为XML或JSON,也生成等效的YAML输出
示例
将OSCAL格式的NIST 800-53声明从XML转换为JSON:
bash$ oscalkit convert oscal SP800-53-declarations.xml
通过STDIN将OSCAL格式的NIST 800-53声明从XML转换为JSON(注意使用"-"):
bash$ cat SP800-53-declarations.xml | oscalkit convert oscal -
oscalkit可用于使用JSON Web签名(JWS)对OSCAL格式的JSON工件进行签名。
NAME: oscalkit sign - 签名OSCAL JSON工件 USAGE: oscalkit sign [命令选项] [文件...] OPTIONS: --key value, -k value 用于签名的私钥文件。必须为PEM或DER格式。支持RSA/EC密钥和包含RSA/EC密钥的X.509证书 --alg value, -a value 签名算法。支持RSASSA-PKCS#1v1.5、RSASSA-PSS、HMAC、ECDSA和Ed25519
支持以下签名算法:
| 签名/MAC | 算法标识符 |
|---|---|
| RSASSA-PKCS#1v1.5 | RS256, RS384, RS512 |
| RSASSA-PSS | PS256, PS384, PS512 |
| HMAC | HS256, HS384, HS512 |
| ECDSA | ES256, ES384, ES512 |
| Ed25519 | EdDSA |
示例
使用PEM编码的私钥文件和PS256签名算法签名OSCAL格式的JSON:
bash$ oscalkit sign --key jws-example-key.pem --alg PS256 NIST_SP-800-53_rev4_catalog.json
此功能已暂时禁用,等待https://github.com/usnistgov/OSCAL/issues/216%E5%92%8Chttps://github.com/usnistgov/OSCAL/issues/215%E8%A7%A3%E5%86%B3
oscalkit还支持将OpenControl项目转换为OSCAL格式的JSON。您需要opencontrol.yaml文件的路径和运行compliance-masonry get命令时创建的opencontrols/目录。
NAME: oscalkit convert opencontrol - 从OpenControl格式转换为OSCAL"实现"格式 USAGE: oscalkit convert opencontrol [命令选项] [opencontrol.yaml文件路径] [opencontrols目录路径] DESCRIPTION: 将OpenControl格式的"组件"和"OpenControl"YAML转换为OSCAL格式的"实现"层JSON OPTIONS: --yaml, -y 除JSON外还生成YAML --xml, -x 除JSON外还生成XML
将OpenControl项目转换为OSCAL格式的JSON:
bash$ oscalkit convert opencontrol ./opencontrol.yaml ./opencontrols/
该工具支持根据相应的OSCAL XML模式(.xsd)和JSON模式验证OSCAL格式的XML和JSON文件。XML模式验证需要本地机器上的xmllint工具(macOS和Linux包含,Windows安装说明此处)。
NAME: oscalkit validate - 根据OSCAL XML和JSON模式验证文件 USAGE: oscalkit validate [命令选项] [文件...] DESCRIPTION: 根据特定XML模式(.xsd)验证OSCAL格式的XML文件,或根据特定JSON模式验证OSCAL格式的JSON文件 OPTIONS: --schema value, -s value 用于验证的模式文件
示例
根据相应的JSON模式验证OSCAL格式JSON中的FedRAMP配置文件:
bash$ oscalkit validate -s oscal-core.json fedramp-annotated-wrt-SP800-53catalog.json
oscalkit使用Go(1.11+)开发。如果安装了Docker,包含的Makefile可用于运行单元测试并为Linux、macOS和Windows编译应用程序。否则,可使用原生Go工具链。
依赖项使用https://github.com/golang/go/wiki/Modules%E7%AE%A1%E7%90%86%E3%80%82%E5%8C%85%E5%90%AB%E4%BE%9D%E8%B5%96%E9%A1%B9%E7%9A%84%60vendor/%60%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E4%B8%80%E8%B5%B7%E7%AD%BE%E5%85%A5%EF%BC%8C%E4%BB%A5%E5%90%91%E5%90%8E%E5%85%BC%E5%AE%B9%E6%97%A7%E7%89%88%E6%9C%AC%E7%9A%84Go%E3%80%82%E5%BD%93%E4%BD%BF%E7%94%A8%E5%90%AF%E7%94%A8%60GO111MODULE=on%60%E7%9A%84Go 1.11时,可按如下方式验证依赖项:
bash$ go mod verify
您可以使用包含的Makefile为您的操作系统生成二进制文件(需要Docker):
为Linux编译:
bash$ GOOS=linux GOARCH=amd64 make
为macOS编译:
bash$ GOOS=darwin GOARCH=amd64 make
为Windows编译:
bash$ GOOS=windows GOARCH=amd64 make
网站和相应文档均在docs/中开发。内容使用Hugo框架开发。静态内容生成并发布在docs/public中,这是一个独立的Git工作树,绑定到https://github.com/docker/oscalkit/tree/gh-pages%E5%88%86%E6%94%AF%EF%BC%8C%E5%8F%AF%E9%80%9A%E8%BF%87https://docker.github.io/oscalkit%E5%85%AC%E5%BC%80%E8%AE%BF%E9%97%AE%E3%80%82
SDK的GoDoc可在此处找到。
GoReleaser工具用于将oscalkit发布到GitHub Releases。目前支持以下发布工件:
的基础Go SDK,该语言由美国国家标准与技术研究院(NIST)开发。还包含一个CLI工具,用于处理OSCAL文档、在OSCAL格式的XML、JSON和YAML之间转换,以及将OpenControl项目转换为OSCAL。该工具还支持从OSCAL格式的目录和配置文件生成Go源代码。
OSCAL标准的文档可在[***]
目前支持以下OSCAL组件:
| 组件 | 模式 |
|---|---|
| 目录 | https://github.com/usnistgov/OSCAL/blob/master/schema/xml/oscal-catalog-schema.xsd | https://github.com/usnistgov/OSCAL/blob/master/schema/json/oscal-catalog-schema.json | https://github.com/usnistgov/OSCAL/blob/master/schema/metaschema/oscal-catalog-metaschema.xml |
| 配置文件 | https://github.com/usnistgov/OSCAL/blob/master/schema/xml/oscal-profile-schema.xsd | https://github.com/usnistgov/OSCAL/blob/master/schema/json/oscal-profile-schema.json | https://github.com/usnistgov/OSCAL/blob/master/schema/metaschema/oscal-profile-metaschema.xml |
| 实现(开发中) | 目前基于https://github.com/usnistgov/OSCAL/issues/216%E4%B8%AD%E5%BC%80%E5%8F%91%E7%9A%84%E6%A8%A1%E5%9E%8B%E4%B8%8Ehttps://gist.github.com/anweiss/8afd321b6bf2a9d4e***a1b8f2fe%E4%B8%AD%E7%9A%84%E7%BB%84%E4%BB%B6%E5%AE%9A%E4%B9%89%E5%8E%9F%E5%9E%8B%E7%9A%84%E7%BB%84%E5%90%88 |
您可以从https://github.com/docker/oscalkit/releases%E9%A1%B5%E9%9D%A2%E4%B8%8B%E8%BD%BD%E9%80%82%E7%94%A8%E4%BA%8E%E6%82%A8%E7%B3%BB%E7%BB%9F%E7%9A%84%60oscalkit%60%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7%E3%80%82%E5%B0%86%E5%85%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%60$PATH%60%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E4%B8%AD%E5%88%97%E5%87%BA%E7%9A%84%E9%80%82%E5%BD%93%E7%9B%AE%E5%BD%95%E3%80%82macOS%E8%BF%98%E6%8F%90%E4%BE%9BHomebrew%E9%85%8D%E6%96%B9%EF%BC%8C%E5%90%8C%E6%97%B6https://hub.docker.com/r/docker/oscalkit/%E5%B7%B2%E5%8F%91%E5%B8%83%E5%88%B0Docker Hub。
bash$ brew tap docker/homebrew-oscalkit $ brew install oscalkit
运行
oscalkitDocker容器需要绑定挂载包含源文件的目录,或通过stdin将文件内容传递给命令。
bash$ docker pull docker/oscalkit:0.2.0 $ docker run -it --rm -v $PWD:/data -w /data docker/oscalkit:0.2.0 convert oscal-core.xml
通过stdin:
bash$ docker run -it --rm docker/oscalkit:0.2.0 convert < oscal-core.xml
NAME: oscalkit - OSCAL工具包 USAGE: oscalkit [全局选项] 命令 [命令选项] [参数...] VERSION: 0.2.0 COMMANDS: convert 在一种或多种OSCAL文件格式之间转换,以及从OpenControl格式转换 validate 根据OSCAL XML和JSON模式验证文件 sign 签名OSCAL JSON工件 generate 根据提供的配置文件生成go代码 implementation 根据提供的配置文件和Excel表格生成实现的go代码 help, h 显示命令列表或单个命令的帮助 GLOBAL OPTIONS: --debug, -d 启用调试命令输出 --help, -h 显示帮助 --version, -v 打印版本
oscalkit可用于将一个或多个源文件在OSCAL格式的XML和JSON之间转换。
NAME: oscalkit convert oscal - 在一种或多种OSCAL文件格式之间转换 USAGE: oscalkit convert oscal [命令选项] [源文件...] DESCRIPTION: 在OSCAL格式的XML和JSON文件之间转换。该命令接受一个或多个源文件
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务