更新时间:2026-09-18 GMT+08:00

查看API Key

操作场景

Supabase通过API Key为您的项目提供细粒度访问控制,决定哪些应用组件可以访问您的项目。API Key用于对应用组件(包括网页、移动应用或服务器)进行身份认证,使其能够访问Supabase服务。本章节介绍如何查看Supabase AI应用的API Key(API密钥)。

前提条件

  • 注册华为云账号
  • 如果需要对华为云上的资源进行精细管理,请使用统一身份认证服务(Identity and Access Management,简称IAM)创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限,更多操作,请参见通过IAM角色或策略授予使用RDS的权限
  • 登录账号需要具备授权项“rds:aiApplication:listApiKey”、“rds:aiApplication:getApiKeyValue”、“rds:aiApplication:get”和“rds:aiApplication:list”。

API Key功能说明

API Key是用于验证客户端(如Web、移动应用或服务器)身份并授权其访问Supabase后端服务(数据库、认证、存储等)的唯一标识符。API Key提供数据访问的第一层认证,而Supabase Auth(用户登录认证)在此基础上构建进一步的认证。API Key区分的是应用,而非用户。

Supabase应用的密钥分类,详见表1
表1 Supabase应用API Key分类

类型

格式

权限级别

可用途径

用途

Publishable Key

(可公开密钥)

sb_publishable_xxx

平台

可安全地暴露在网络上:网页、移动/桌面应用、GitHub Actions、CLI、源代码。

Secret Key

(秘密密钥)

sb_publishable_xxx

平台

仅用于后端组件:服务器、已受保护的 API(管理面板)、Edge Function、微服务等。拥有对项目数据的完全访问权限绕过行级安全(RLS)

Anon Key

(匿名密钥)

JWT(长期有效)

平台、CLI

Publishable key 的旧版形式。

Service Role Key

(服务角色密钥)

JWT(长期有效)

平台、CLI

Secret key 的旧版形式。

  • Publishable Key说明
    • Publishable key用于标识应用的公开组件。公开组件运行在无法保护任何机密的环境中,包括以下场景:
      • 网页:密钥被打包在源代码中。
      • 移动/桌面应用:密钥被打包在编译后的包或可执行文件中。
      • CLI、脚本、工具或其他预构建的可执行文件。
      • 其他公开可用的API(无需额外授权即可返回密钥)。
    • 与Supabase Auth的交互

      使用Publishable key并不代表您的用户是匿名的,您可以用Publishable Key认证应用,同时用户通过Supabase Auth获得个人JWT认证。

      表2 Supabase应用API Key与Auth交互关系

      密钥

      用户是否通过Supabase Auth登录

      用于RLS等的Postgres角色

      Publishable key

      anon

      Publishable key

      authenticated

    • 安全注意事项

      Publishable key无法防范以下情况(因为从公开组件中获取密钥始终是可行的):

      • 静态或动态代码分析与逆向工程。
      • 浏览器网络检查器。
      • 跨站请求伪造(CSRF)、跨站脚本(XSS)、钓鱼攻击。
      • 中间人攻击。
    • 使用Publishable key时,您的项目数据访问由Postgres通过内置的anon和authenticated角色保护。为确保完整防护,请务必注意以下几点:
      • 在所有表上启用行级安全(Row Level Security)。
      • 定期审查RLS策略,检查授予anon和authenticated角色的权限。
      • 不要在未充分理解的情况下修改角色属性。
      • 仔细审查项目的Security Advisor中的每一条安全发现。
  • Secret Key说明
    • 与Publishable key不同,Secret Key允许对项目数据进行高级别访问。它仅应用于安全、由开发者控制的组件中,例如:
      • 实现了自身授权的服务器(Edge Function、微服务、传统/专用Web服务器)。
      • 定时任务、队列处理器、消息订阅者。
      • 管理和后台工具(仅有前置授权检查)。
      • 数据处理管道(分析、报表、备份、数据库同步等)。
    • 访问控制:

      Secret key通过内置的service_role Postgres角色授权访问项目数据。该角色拥有对项目数据的完全访问权限,并使用 BYPASSRLS 属性,跳过所有行级安全策略。

      Secret key是旧版JWT格式service_role key的改进版本,新增了防滥用检查:

      • 不能在浏览器中使用(通过 User-Agent 头检测),将始终返回:HTTP 401 Unauthorized。
      • 如果不需要使用Secret key,则无需创建。
  • 请您务必妥善管理API Key,避免Key值泄露造成安全隐患,避免因此被攻击破坏而引发业务损失。
  • 关于如何使用API Key,请参见Supabase SDK使用章节。

约束限制

  • AI应用已成功创建。
  • Supabase AI应用当前仅支持每个Key类型只有一个生效的API Key。每次重置操作成功后会创建新的API Key,旧的API Key会失效。

操作步骤

  1. 登录RDS管理控制台
  2. 单击管理控制台左上角的,选择区域。
  3. 左侧导航栏,选择“AI应用开发平台”,进入AI应用开发平台管理界面。
  4. 在“AI应用开发平台”列表页面,选择指定的AI应用,单击应用名称,进入应用详情页面。
  5. 在左侧导航栏,选择“API Key”,进入API Key列表界面。

    图1 应用API Key列表

  6. 可以选择状态为“正常”的API Key,单击操作列中“复制API Key值”,将对应的Key值复制到剪贴板中。