如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
为项目点亮星标🌟,以获取发布通知并助力社区发展!
intuitem.com · SaaS 免费试用 · 路线图 · 文档 · 语言 ·
· 框架
CISO Assistant 为网络安全管理和GRC(治理、风险与合规)实践提供了全新视角:
我们的愿景是打造网络安全管理的一站式平台(one-stop-shop)——通过简化(simplification)和互操作性(interoperability)实现GRC现代化。
作为与网络安全和IT专业人员合作的从业者,我们曾面临同样的问题:工具碎片化、数据重复,以及缺乏直观的集成解决方案。CISO Assistant源于这些经验教训,我们正围绕务实(pragmatic)、常识(common-sense)原则构建社区。
我们不断根据用户和客户的反馈进行改进。CISO Assistant就像一只章鱼🐙,不断长出新的“触手”——为网络安全团队带来清晰度、自动化和生产力,同时减少数据输入和输出的工作量。
[!TIP] 最简单的入门方式是通过此处提供的云实例免费试用。
或者,在工作站或服务器上安装好_Docker_和_Docker-compose_后:
克隆仓库:
git clone --single-branch -b main https://github.com/intuitem/ciso-assistant-community.git
并运行启动脚本
./docker-compose.sh # Linux/MacOS
./docker-compose.ps1 # Windows
如果您正在寻找其他自托管安装选项,请查看配置生成器和https://intuitem.gitbook.io/ciso-assistant%E3%80%82
[!NOTE] docker-compose脚本使用预构建的Docker镜像,支持大多数标准硬件架构。 如果您使用Windows,请确保已安装https://www.docker.com/products/docker-desktop/%E5%B9%B6%E8%BF%90%E8%A1%8CPowerShell%E8%84%9A%E6%9C%AC%E3%80%82%E8%AF%A5%E8%84%9A%E6%9C%AC%E5%B0%86%E4%BB%A3%E4%B8%BA%E9%85%8D%E7%BD%AEDocker Desktop。
可以调整docker compose文件以传递额外参数,以适应您的设置(例如邮件发送器设置)。
[!WARNING] 如果您收到镜像平台与主机平台不匹配的警告或错误,请提交包含详细信息的issue,我们将很快添加支持。您也可以改用
docker-compose-build.sh(见下文)为特定架构构建镜像。
[!WARNING] 不要直接将
main分支代码用于生产环境,因为它是上游合并分支,在我们的开发过程中可能包含破坏性变更。请使用tags获取稳定版本或预构建镜像。
即将推出的功能列在路线图中。
CISO Assistant由Intuitem开发和维护,该公司专注于网络安全、云以及数据/AI领域。
以下是CISO Assistant中部分构建块的摘要,用于说明鼓励复用的解耦概念:
有关完整详细信息,请查看数据模型文档。
CISO Assistant的核心是解耦原则,它支持强大的用例并显著节省时间:
以下是解耦原则及其优势的说明:
查看在线文档:。
更多信息请参见:AI引擎
库可以表示一个框架、一个威胁目录、一组参考控制措施,甚至是一个自定义风险矩阵。
现在可以直接从 Excel 文件加载库。无需事先手动将其转换为 YAML——上传 Excel 文件时会在内部处理转换。
查看 tools 目录及其专用 README,其中描述了 Excel 中库源文件的预期格式。excel 子目录包含用作现有库源的示例 XLSX 文件,可用作创建您自己的模板。
要从 Excel 文件加载库,请转到 Governance → Library 页面,点击 Load,然后选择您的 Excel 源文件。导入过程中会报告任何验证或解析错误。
虽然可以直接加载 Excel 文件,但仍可以使用外部 Python 脚本将库源文件转换为 YAML:
convert_library_v2.py 帮助您从简单的 Excel 文件生成库。一旦您的项目按预期格式结构化,运行脚本即可生成相应的 YAML 文件。tools 目录还包含针对特定框架的专用转换器(例如,CIS 或 CCM 控制措施)。为便于创建框架之间的映射,您可以使用 prepare_mapping_v2.py 工具。它基于两个现有的 YAML 格式框架库生成 Excel 文件。填写映射后,生成的 Excel 文件可以:
convert_library_v2.py 转换为 YAML。[实验性] 在不使用 WSL2 的 Windows 上进行开发的额外要求
如果您希望在不使用 WSL2 的情况下开发项目,需要安装 MSYS2,将 MSYS2 UCRT64 二进制文件添加到您的系统 PATH 环境变量(通常二进制文件位于 C:\msys64\ucrt64\bin),然后通过 MSYS2 UCRT64 使用 pacman 安装以下依赖项。
pacman -S mingw-w64-ucrt-x86_64-file mingw-w64-ucrt-x86_64-pango
安装依赖项后,还需添加以下两个系统环境变量:
MAGIC=指向 `magic.mgc` 文件的完整路径(通常为 `C:\msys64\ucrt64\share\misc\magic.mgc`)
WEASYPRINT_DLL_DIRECTORIES=MSYS2 UCRT64 二进制文件的路径(与上述路径相同)
由于 Windows 上的默认编码不是 UTF-8 而是 cp1252,某些打印 UTF-8 字符(如表情符号)的 Python 脚本可能会导致后端崩溃或出现故障(例如库导入问题)。
为避免此项目出现该问题,通过添加以下两个用户环境变量强制使用 UTF-8 编码:
PYTHONUTF8=1
PYTHONIOENCODING=utf-8:replace
[!NOTE]
- Windows 上的
libmagic库(MIME 检测)在读取 Excel 文件(.xlsx)的前2048位时难以识别该文件,在导入 Excel 库时通常返回application/octet-stream(后端会显示警告消息[warning ] Invalid MIME type)。得益于backend/library/views.py:StoredLibraryViewSet.upload_library中的回退方法,这不会阻止 Excel 文件的导入。
git clone git@github.com:intuitem/ciso-assistant-community.git
cd ciso-assistant-community
../myvars),通过复制并修改以下代码将环境变量存储在其中,并将 " " 替换为您的私有值。注意不要将此文件提交到 git 仓库。必填变量
后端中的所有变量都有便捷的默认值。
推荐变量
export DJANGO_DEBUG=True
# 默认 URL 设置为 http://localhost:5173,但您可以更改,例如使用 caddy 代理启用 https
export CISO_ASSISTANT_URL=https://localhost:8443
# 例如使用 Mailhog 设置开发邮件服务器
export EMAIL_HOST_USER=''
export EMAIL_HOST_PASSWORD=''
export DEFAULT_FROM_EMAIL=ciso-assistant@ciso-assistantcloud.com
export EMAIL_HOST=localhost
export EMAIL_PORT=1025
export EMAIL_USE_TLS=True # true 表示使用 STARTTLS
export EMAIL_USE_SSL=False # true 表示使用 SMTPS
其他变量
# CISO Assistant 默认使用 SQLite,但您可以通过声明以下变量来设置 PostgreSQL
export POSTGRES_NAME=ciso-assistant
export POSTGRES_USER=ciso-assistantuser
export POSTGRES_PASSWORD=
export POSTGRES_PASSWORD_FILE= # 指定密码的另一种方式
export DB_HOST=localhost
export DB_PORT=5432 # 可选,默认值为 5432
# CISO Assistant 默认使用文件系统存储后端。
# 一次只能激活一个云存储后端(USE_S3 和 USE_AZURE 互斥)。
# --- AWS S3 ---
# 您可以通过声明以下变量使用 S3 存储桶
# 启动 CISO Assistant 前必须创建 S3 存储桶
export USE_S3=True
export AWS_STORAGE_BUCKET_NAME=
export AWS_S3_REGION_NAME= # 可选,例如 us-east-1
# S3 身份验证选项 1:访问密钥(适用于独立部署或 S3 兼容服务)
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export AWS_S3_ENDPOINT_URL= # S3 兼容服务(如 MinIO)必填
# S3 身份验证选项 2:IRSA(适用于 Kubernetes/EKS 部署)
# 在启用 IAM Roles for Service Accounts (IRSA) 的 EKS 上运行时,
# 这些环境变量由 Pod 的服务账户自动注入。
# 无需显式配置 - 只需确保设置 USE_S3=True 和 AWS_STORAGE_BUCKET_NAME。
# export AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/eks.amazonaws.com/serviceaccount/token
# export AWS_ROLE_ARN=arn:aws:iam::123456789012:role/ciso-assistant-s3-role
# --- Azure Blob Storage ---
# 您可以使用 Azure Blob Storage 容器代替 S3。
# 启动 CISO Assistant 前必须创建容器。
# export USE_AZURE=True
# export AZURE_CONTAINER= # 默认值:ciso-assistant-container
# export AZURE_CUSTOM_DOMAIN= # 可选,例如 cdn.example.com
# export AZURE_LOCATION= # 可选,容器内的路径前缀(例如 "media")
# Azure 身份验证选项 1:账户密钥
# export AZURE_ACCOUNT_NAME=
# export AZURE_ACCOUNT_KEY=
# Azure 身份验证选项 2:连接字符串
# export AZURE_CONNECTION_STRING=
# Azure 身份验证选项 3:托管标识(适用于 Azure 托管部署)
# 需要 AZURE_ACCOUNT_NAME。Pod/VM 分配的托管标识会自动使用。
# export AZURE_ACCOUNT_NAME=
# export AZURE_USE_MANAGED_IDENTITY=True
# 添加第二个备用邮件服务器(即将弃用,不再推荐)
export EMAIL_HOST_RESCUE=
export EMAIL_PORT_RESCUE=587
export EMAIL_HOST_USER_RESCUE=
export EMAIL_HOST_PASSWORD_RESCUE=
export EMAIL_USE_TLS_RESCUE=True
export EMAIL_USE_SSL_RESCUE=False
# 您可以定义第一个超级用户的邮箱,便于自动化。系统会向超级用户发送密码初始化邮件
export CISO_SUPERUSER_EMAIL=
# 默认情况下,Django 密钥在每次启动 CISO Assistant 时随机生成。这便于快速测试,
# 但不推荐用于生产环境,因为可能会破坏会话(有关更多信息,请参阅
# 此 [主题](https://stackoverflow.com/questions/15170637/effects-of-changing-djangos-secret-key))。
# 要设置固定密钥,请使用环境变量 DJANGO_SECRET_KEY。
export DJANGO_SECRET_KEY=...
# 用于运行不受信任代码(例如库 Excel 文件)的沙箱模式
# 警告:生产环境必须启用沙箱。
export ENABLE_SANDBOX=True # 可选,生产环境(DJANGO_DEBUG=False)默认值为 True,开发环境(DJANGO_DEBUG=True)默认值为 False。
pre-commit install
psql as superadminsudo su postgrespsqlcreate database ciso-assistant;
create user ciso-assistantuser with password ' ';
grant all privileges on database ciso-assistant to ciso-assistantuser;
[!NOTE] 前端无法自动推断主机,因此您需要设置 ORIGIN 变量,或
HOST_HEADER和PROTOCOL_HEADER变量。有关此复杂问题,请参见 https://kit.svelte.dev/docs/adapter-node#environment-variables-origin-protocolheader-hostheader-and-port-header%E3%80%82%E8%AF%B7%E6%B3%A8%E6%84%8F%EF%BC%8C%E6%AD%A4%E6%96%B9%E6%B3%95%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E "pnpm run dev",这在生产环境中无需担心。
[!NOTE] Caddy 需要接收 SNI 头。因此,对于您的公共 URL(在
CISO_ASSISTANT_URL中声明的 URL),您需要使用 FQDN,而非 IP 地址,因为如果主机是 IP 地址,浏览器不会传输 SNI。这又是一个需要注意的复杂问题!
[!NOTE] docker-compose 模板文件现在以非 root 模式启动后端、huey 和前端。如果您使用旧的 docker-compose.yml 文件,建议进行更新。容器同时兼容 root 和非 root 模式。
docker-compose.yml 现在依赖镜像中已有的非 root 用户 1001:1001。旧部署使用 root 用户,该模式仍受支持。要迁移到非 root 模式,请在主机中执行以下步骤:
参考文件为 en.json;覆盖率 = 每个区域文件中存在的参考键占比。每日自动刷新 — 完整细分请查看 https://intuitem.github.io/metrics/i18n/%E3%80%82
我们已尽力遵循安全最佳实践。如发现任何问题,请报告至 。
本仓库包含 CISO Assistant 开源版(社区版)的源代码,该版本基于 AGPL v3 许可证发布;同时包含 CISO Assistant 商业版(专业版和企业版)的源代码,该版本基于 intuitem 商业软件许可证发布。采用单仓库方式是为了简化管理。
顶层 "enterprise" 目录中的所有文件均基于 intuitem 商业软件许可证发布。
顶层 "enterprise" 目录外的所有文件均基于 https://choosealicense.com/licenses/agpl-3.0/ 许可证发布。
详情请参见 LICENSE.md。有关商业版的更多信息,可通过 与我们联系。
除非另有说明,所有文件均 © intuitem。
来自真实用户的反馈,见证轩辕镜像的优质服务