
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像提供一套基于RBAC(基于角色的访问控制)和策略的多租户安全框架,旨在解决多租户环境下的安全隔离、权限管控与策略执行问题。框架通过整合RBAC模型与策略管理机制,实现对用户、角色、权限及资源访问的精细化控制,适用于SaaS平台、企业多部门系统、云服务等多租户场景的安全管理需求。
通过Docker直接运行镜像:
bashdocker run -d \ --name rbac-security-framework \ -p 8080:8080 \ -e TENANT_ID=default-tenant \ -e RBAC_CONFIG=/config/rbac.yaml \ -e POLICY_DIR=/policies \ -v $(pwd)/config:/config \ -v $(pwd)/policies:/policies \ myregistry/rbac-policy-security-framework:latest
| 环境变量名 | 描述 | 默认值 | 必需性 |
|---|---|---|---|
TENANT_ID | 租户标识,多租户环境下用于实例隔离 | default | 否 |
RBAC_CONFIG | RBAC配置文件路径 | /etc/rbac/rbac.yaml | 否 |
POLICY_DIR | 策略文件存放目录 | /etc/policies | 否 |
LOG_LEVEL | 日志级别(DEBUG/INFO/WARN/ERROR) | INFO | 否 |
DB_CONNECTION | 后端数据库连接字符串 | sqlite:///security.db | 否 |
API_PORT | 服务监听端口 | 8080 | 否 |
CORS_ALLOW_ORIGIN | CORS允许的源地址 | * | 否 |
yamlversion: '3.8' services: rbac-security: image: myregistry/rbac-policy-security-framework:latest container_name: rbac-security-service ports: - "8080:8080" environment: - TENANT_ID=company-x - RBAC_CONFIG=/config/rbac.yaml - POLICY_DIR=/policies - LOG_LEVEL=INFO - DB_CONNECTION=postgresql://rbac_user:rbac_pass@db:5432/rbac_db volumes: - ./config:/config # 挂载RBAC配置文件 - ./policies:/policies # 挂载策略文件 - ./logs:/app/logs # 挂载日志目录 depends_on: - db db: image: postgres:14-alpine container_name: rbac-security-db environment: - POSTGRES_USER=rbac_user - POSTGRES_PASSWORD=rbac_pass - POSTGRES_DB=rbac_db volumes: - postgres-data:/var/lib/postgresql/data ports: - "5432:5432" volumes: postgres-data:
RBAC配置文件(rbac.yaml)
用于定义租户内的角色、权限及用户-角色映射,示例:
yaml# 角色定义 roles: - name: admin # 管理员角色 description: "Full system access" permissions: - resource: "*" # 所有资源 actions: "*" # 所有操作 - name: developer # 开发者角色 description: "Application development access" permissions: - resource: "app:*" # 应用资源 actions: "read,write,deploy" - resource: "api:*" # API资源 actions: "invoke" - name: viewer # 查看者角色 description: "Read-only access" permissions: - resource: "app:*" actions: "read" - resource: "dashboard:*" actions: "view" # 用户-角色映射 users: - username: alice@company.com roles: [admin] - username: bob@company.com roles: [developer] - username: charlie@company.com roles: [viewer]
策略文件示例(Rego格式)
在POLICY_DIR目录下创建策略文件(如access-policy.rego):
regopackage security.policy # 默认拒绝访问 default allow = false # 允许admin角色访问所有资源 allow { input.user.roles[_] == "admin" } # 允许developer角色在工作时间访问app资源 allow { input.user.roles[_] == "developer" input.resource startsWith "app:" input.action in ["read", "write", "deploy"] # 工作时间校验(示例:周一至周五 9:00-18:00) time.weekday(time.now()) >= 1 # 周一(1)至周五(5) time.weekday(time.now()) <= 5 hour := time.clock(time.now()).hour hour >= 9 hour <= 18 } # 拒绝viewer角色删除操作 deny { input.user.roles[_] == "viewer" input.action == "delete" }
通过HTTP POST请求验证用户对资源的访问权限:
bashcurl -X POST http://localhost:8080/api/v1/auth/check \ -H "Content-Type: application/json" \ -d '{ "user": "bob@company.com", "resource": "app:service-a", "action": "deploy" }'
成功响应示例:
json{ "allowed": true, "tenant_id": "company-x", "user": "bob@company.com", "resource": "app:service-a", "action": "deploy", "reason": "Matched developer role policy", "timestamp": "2024-05-20T14:30:00Z" }
创建新角色:
bashcurl -X POST http://localhost:8080/api/v1/roles \ -H "Content-Type: application/json" \ -d '{ "name": "tester", "description": "QA testing access", "permissions": [ { "resource": "app:*", "actions": "read,test" } ] }'
TENANT_ID与配置目录隔离。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务