ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Gel CLI 的 `gel cloud secretkey create` 命令详解:创建 Gel Cloud 访问密钥的完整指南

Gel CLI 的 `gel cloud secretkey create` 命令详解:创建 Gel Cloud 访问密钥的完整指南 数据库图数据库关系型数据库【免费下载链接】edgedbGel supercharges Postgres with a modern data model, graph queries, Auth AI solutions, and much more.项目地址https://gitcode.com/gh_mirrors/ed/edgedb点击查看免费下载本文以 GelEdgeDB 继任项目官方 CLI 参考文档为骨架系统讲解gel cloud secretkey create命令的完整用法包括语法、全部命令行选项、交互与非交互两种执行方式以及它在 Gel Cloud 实例连接、CI 自动化与生产部署中的典型应用场景。读完本文你将能够熟练创建、管理并安全使用 Gel Cloud 的 secret key让本地开发、持续集成与生产环境都能以最小配置接入 Gel Cloud。命令概览与适用场景gel cloud secretkey create是 Gel CLI 中gel cloud子命令体系的一部分用于在 Gel Cloud 上创建一个新的 secret key访问密钥。secret key 本质上是一种长期有效的 API 凭证用于代替浏览器交互式登录让脚本、CI 流水线和部署后的应用能够以编程方式安全地访问 Gel Cloud 上的实例资源。整个gel cloud secretkey家族共包含三个子命令见 gel_cloud_secretkey/index.rst子命令作用gel cloud secretkey create创建新的 secret keygel cloud secretkey list列出已有的 secret keygel cloud secretkey revoke吊销撤销某个 secret key前置条件先完成 Gel Cloud 认证命令文档明确指出见 edgedb_cloud_secretkey_create.rst本命令仅在您已经通过gel cloud login完成认证后才可用。因此首次使用前需要先执行交互式登录$ gel cloud login该命令会打开浏览器并启动 Gel Cloud 认证流程认证成功后 CLI 会输出类似Successfully logged in to Gel Cloud as your-email的成功消息见 gel_cloud_login.rst。如果浏览器认证无法完成可以按Ctrl-C中断命令。需要特别注意的是gel cloud login与gel cloud logout被官方明确标注为不适合在脚本与 CI 中使用。对于自动化场景正确做法是在 Gel Cloud Web UI 或通过gel cloud secretkey create生成一个 secret key然后将其写入SECRET_KEY环境变量。一旦设置了该环境变量就不再需要登录流程详见 gel_cloud_logout.rst 中的警告。命令语法与全部选项详解gel cloud secretkey create的完整语法为gel cloud secretkey create [options]它本身不接收位置参数所有行为都由下列选项控制选项说明--json以 JSON 格式输出结果-n, --name name为密钥指定一个便于识别的友好名称--description description密钥的长描述信息--expires duration \| never密钥过期时间使用时长单位表达例如1 hour 30 minutes若设为never则密钥永不过期--scopes scopes逗号分隔的密钥作用域列表与--inherit-scopes互斥--inherit-scopes从当前正在使用的密钥继承作用域与--scopes互斥-y, --non-interactive非交互模式不提问对所有有默认值的输入采用默认答案下面逐一展开每个选项的用法与注意事项。--json结构化输出$ gel cloud secretkey create --name prod-deploy --json对于需要解析命令输出的脚本而言--json是首选。它以标准 JSON 结构返回密钥信息如密钥 ID、名称、过期时间等便于jq等工具进一步处理例如提取密钥 ID 用于后续的revoke操作。-n, --name name友好密钥名称$ gel cloud secretkey create --name my-deploy-keyname 是一个友好名称用于在gel cloud secretkey list的输出中快速辨认各密钥的用途。建议按使用场景命名例如dev、staging-deploy、prod-deploy、ci-pipeline等以便在密钥数量增多时仍然一目了然。--description description长描述$ gel cloud secretkey create \ --name prod-deploy \ --description Secret key used by the production app on Renderdescription 用于填写比 name 更长的说明信息例如该密钥服务的应用、所属团队或创建背景便于后续审计与维护。--expires duration | never过期时间# 30 分钟后过期 $ gel cloud secretkey create --expires 30 minutes # 1 小时 30 分钟后过期 $ gel cloud secretkey create --expires 1 hour 30 minutes # 永不过期 $ gel cloud secretkey create --expires never过期时间使用人类可读的时长单位表达例如1 hour 30 minutes。如果设置为never密钥将永不过期。从安全实践出发对于长期运行的生产应用通常需要选择never或足够长的有效期而对于临时任务、短期 CI 任务设置一个较短的有效期能有效缩小密钥泄露时的攻击面。--scopes scopes与--inherit-scopes作用域控制作用域决定了密钥拥有的权限边界。两者互斥只能二选一# 显式指定作用域逗号分隔 $ gel cloud secretkey create --scopes read,write # 继承当前正在使用的密钥的作用域 $ gel cloud secretkey create --inherit-scopes--scopes直接给出一个逗号分隔的作用域列表精确控制新密钥的权限。--inherit-scopes复用当前 CLI 所用密钥的作用域配置适合希望与当前身份保持同等权限的场景省去手动枚举作用域的麻烦。如果两个选项同时传入CLI 会拒绝该命令互斥校验。-y, --non-interactive非交互模式$ gel cloud secretkey create \ --name ci-key \ --expires 24 hours \ --scopes read \ --non-interactive在交互模式下CLI 会对未提供的输入进行提问加上-y, --non-interactive后CLI 不再提问而是对所有有默认值的输入直接采用默认答案。文档同时强调非交互模式要求密钥的 TTL存活时间与作用域必须通过参数显式指定——即必须同时提供--ttl或--no-expiration过期相关以及--scopes或--inherit-scopes作用域相关否则命令无法在无人值守环境下确定这些关键属性。提示选项列表中用于控制过期的选项名为--expires如--expires never而非交互模式说明中提到的--ttl/--no-expiration属于同一语义的另一种表述方式实际使用时以--expires为准。完整实战示例以下示例组合了多个选项创建一个用于生产部署的长期密钥$ gel cloud secretkey create \ --name prod-deploy \ --description Secret key for the production app (Render) \ --expires never \ --inherit-scopes \ --json创建成功后会返回密钥信息请务必安全保存输出的密钥值——它是唯一一次以明文形式展示密钥的机会后续无法再次查询完整密钥内容。再比如为一次性 CI 任务创建短期、最小权限密钥$ gel cloud secretkey create \ --name ci-temp \ --expires 2 hours \ --scopes read \ --non-interactivesecret key 的后续管理list 与 revoke创建密钥只是生命周期管理的开始配套的还有两个命令详见 gel_cloud_secretkey/index.rst。查看已有密钥gel cloud secretkey list$ gel cloud secretkey list $ gel cloud secretkey list --json列出当前账户下已有的全部 secret key。同样支持--json结构化输出便于脚本解析。吊销密钥gel cloud secretkey revoke$ gel cloud secretkey revoke --secret-key-id secret-key-id $ gel cloud secretkey revoke --secret-key-id secret-key-id --non-interactive当一个密钥泄露、对应的应用下线或不再需要时应立即吊销。其选项包括选项说明--json以 JSON 格式输出结果--secret-key-id secret_key_id要吊销的密钥 ID必填-y, --non-interactive跳过确认提示直接吊销与 create 一样list 和 revoke 也都要求先通过gel cloud login完成认证。在应用与 CI 中使用 secret key通过环境变量接入secret key 的实际消费方式是与环境变量配合使用。Gel Cloud 官方指南见 docs/cloud/index.rst建议为生产应用创建两个环境变量SECRET_KEY存放通过gel cloud secretkey create或 Gel Cloud Web UI 生成的密钥INSTANCEGel Cloud 实例名称格式为org-name/instance-name。一旦设置了SECRET_KEY环境变量客户端即可直接连接 Gel Cloud 实例不再需要执行gel cloud login/logout见 docs/cloud/cli.rst 中的说明。这正是官方推荐的 CI 与脚本接入方式。连接云实例的完整流程在连接参数文档docs/reference/using/connection.rst中官方给出了两种典型场景开发环境先在本地执行gel cloud login完成交互式认证然后通过gel project init --server-instance org-name/instance-name将项目链接到云实例之后即可使用gel branch create/gel branch switch管理分支部署环境生产/CI此时不进行交互登录而是为每个部署环境单独创建一个 secret key配合实例名称INSTANCE与SECRET_KEY环境变量完成认证。官方还建议如果测试、预发、生产共享同一个云实例还应显式指定分支名branch以区分环境。各平台部署时的密钥注入仓库中多个平台部署指南均演示了如何注入SECRET_KEY例如Render 部署在 render.rst 中要求配置SECRET_KEY环境变量存放创建好的密钥Vercel 部署见 vercel.rstNetlify 部署见 netlify.rstRailway 部署见 railway.rstFly.io 部署见 fly.rst其中演示了通过flyctl secrets set GEL_SECRET_KEY GEL_SECRET_KEY将密钥设置为平台 secret。各平台一致的推荐模式是每个部署环境一个独立密钥密钥只以环境变量形式注入运行时绝不写入代码仓库。安全最佳实践小结综合上述官方文档使用 Gel Cloud secret key 时应遵循以下实践按环境隔离测试、预发、生产各自创建独立的 secret key便于按环境单独吊销与轮换见 docs/reference/using/connection.rst 的部署环境章节最小权限通过--scopes只授予完成任务所需的最小作用域避免使用过于宽泛的权限控制有效期临时任务使用--expires设置较短有效期长期服务使用never或足够长的期限妥善保管密钥只在创建时明文展示一次应立即存入安全的位置如平台的 secret 管理、密钥管理系统及时吊销通过gel cloud secretkey revoke --secret-key-id id吊销不再使用或已泄露的密钥CI 不使用交互登录脚本与 CI 一律使用SECRET_KEY环境变量避免gel cloud login/logout带来的浏览器交互依赖。延伸阅读本命令完整参考edgedb_cloud_secretkey_create.rst密钥家族总览gel_cloud_secretkey/index.rst认证命令gel_cloud_login.rst、gel_cloud_logout.rstGel Cloud 使用指南docs/cloud/index.rst、docs/cloud/cli.rst连接参数与部署环境说明docs/reference/using/connection.rst各平台密钥注入示例fly.rst、render.rst、vercel.rst、netlify.rst、railway.rst赞分享数据库图数据库关系型数据库【免费下载链接】edgedbGel supercharges Postgres with a modern data model, graph queries, Auth AI solutions, and much more.项目地址https://gitcode.com/gh_mirrors/ed/edgedb点击查看免费下载相关推荐Gel Cloud Secret Key 管理指南用 gel cloud secretkey 命令为 CI 与云部署生成访问凭据Gel Cloud Secret Key 管理指南用 gel cloud secretkey 命令为 CI 与云部署生成访问凭据 本篇技术指南围绕 Gel 官数据库图数据库关系型数据库requests库源码解析核心Request和Response结构体探秘requests库源码解析核心Request和Response结构体探秘 在Go语言开发中HTTP客户端库是构建网络应用的基础组件。 requests库 作数据库图数据库关系型数据库Gel CLI gel database 命令组详解兼容旧版数据库管理命令的完整使用指南Gel CLI gel database 命令组详解兼容旧版数据库管理命令的完整使用指南 导读 gel database 是 Gel前身 EdgeDB命令数据库图数据库关系型数据库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表