SuperAPI AI 工具集

cloud-access-management

编程与开发

查看项目

更新于 10-15 21:37

技能介绍

用途:管理 Elastic Cloud 组织及其 Serverless 项目的身份与访问,包括邀请用户、分配预定义或自定义角色、创建与撤销 Cloud API 密钥,并把自然语言访问请求拆解为邀请、角色和密钥任务。

前提:假定 cloud-setup 技能已运行,环境中已设置 EC_API_KEY 并建立组织上下文;若缺失,应先调用 cloud-setup,不要直接向用户索要 API 密钥。组织 ID 通过 GET /organizations 自动发现。自定义角色操作还需项目 Elasticsearch 端点及具备 manage_security 权限的凭据。

主要能力:邀请用户并分配项目角色;列出成员及角色;更新组织级或项目级角色;移除成员;创建带作用域和有效期的 Cloud API 密钥;创建可调用 Serverless 项目 ES/Kibana API 的密钥;列出与撤销密钥;在项目中创建自定义角色并通过 Cloud API 的 application_roles 分配。

用法:先运行 python3 skills/cloud/access-management/scripts/cloud_access.py list-members 验证 EC_API_KEY 并发现组织 ID。常用命令包括 list-members、list-api-keys、create-custom-role、create-api-key、assign-custom-role。脚本自动加载工作目录下的 .env;也可在终端 export EC_API_KEY、EC_BASE_URL,自定义角色另需 ELASTICSEARCH_URL 与 ELASTICSEARCH_API_KEY。

权限与限制:邀请/移除成员、分配角色、创建/撤销 Cloud API 密钥需组织所有者(organization-admin);列出成员、邀请或密钥任意成员可做;创建/删除自定义角色需项目 ES 端点的 manage_security 集群权限。技能不做单独角色预检,由 API 强制授权,遇 403 应停止并请用户核对密钥权限。使用自定义角色时不要再单独分配预定义 Cloud 角色,否则 SSO 后权限取并集。API 密钥不会从 role_id 隐式继承 stack 角色,缺少 application_roles 时调用 ES/Kibana 返回 403。组织级 application_roles 会覆盖未来项目,需谨慎确认。自定义角色名须以字母或数字开头,仅含字母、数字、_、-、.;Serverless 不支持 run-as。详细 API 端点与请求模式见 references/api-reference.md。