管理API Key

通过API/SDK调用OpenSearch-LLM智能问答版服务时,需要对调用者身份进行认证或者鉴权,本文介绍身份认证和鉴权的方式及如何管理API Key。

API调用认证

通过API Key实现API调用认证:是-LLM智能问答版提供的认证方式,通过该方式调用API时,需提供访问密钥即API Key。一个实例下最多允许创建和启用10个API Key。

重要

为保障API Key不被泄露:

  • 不要将API Key以任何方式公开,避免因未经授权的使用造成安全风险或资金损失。

  • API调用应仅发起于服务端,任何发起自客户端的API调用,例如浏览器、App或小程序等,均有可能造成API Key的泄露。

  • 如API Key疑似泄露,您可以登录OpenSearch-LLM智能问答版先禁用再删除该API Key。API Key被禁用后,无法通过该API Key进行API调用。

API调用鉴权

通过AccessKey(简称AK)实现API调用鉴权:是阿里云提供给用户的永久访问凭据,一组由AccessKey ID和AccessKey Secret组成的密钥对。

AK不用于控制台登录,而是用于通过开发工具(API、CLI、SDK、Terraform等)访问阿里云时,发起的请求会携带AccessKey ID和AccessKey Secret加密请求内容生成的签名,进行身份验证及请求合法性校验。

强烈建议您创建专用于API访问的RAM用户并创建对应的AK,完成最小化授权后,通过API调用开发工作台服务。AK详情请参见创建AccessKey并配置环境变量,创建RAM用户和授权请参见创建RAM用户并授权

操作步骤

  1. 登录OpenSearch控制台

  2. 选择目标地域,切换到OpenSearch-LLM智能问答版

  3. 在实例列表单击目标实例右侧的管理,选择左侧导航栏API Keys

  4. 单击创建API Key,系统生成一个API Key,单击复制保存API Key或者下载CSV文件保存API Key信息。

  5. 安全保存API Key后,单击我已保存好 API Key,单击确定关闭弹窗。

    0731.png

    • 编辑:为API Key添加描述备注信息。

    • 查看:查看API Key。

    • 禁用/启用:禁用状态时,无法通过该API Key进行API调用;启用状态时,可以通过该API Key进行API调用。

    • 删除:禁用状态时,可以删除该API Key。

API Key认证示例

您也可以使用API Key的方式完成调用认证,下面是一个使用API Key认证的获取词条列表的curl请求示例,您配置完URL与API Key后可进行测试。

curl --location 'http://***.opensearch-cn-shanghai.aliyuncs.com/v3/openapi/apps/[app_group_identity]/knowledge/entries' \
--header 'Authorization: Bearer 您的API Key' \
--header 'Content-Type: application/json' \

返回示例:

{
  "request_id":"4F6F9BDC-740F-4FC1-B976-74CAFCBF1333",
  "status":"OK",
  "total_count":2,
  "latency":0.0,
  "result":[
    {
      "entry_id":"ca0c8c1cec7c41a280c76c16f0db79f6",
      "create_time":1718188424000,
      "update_time":1718188424000,
      "questions":[
          "在杭州市买自住住房提取住房公积金的办事地址在哪里"
      ],
      "answer":"\"您好,办事地址****联系电话:0571-12329-1\""
      },
    {
      "entry_id":"2f4c7350a7104f029f316706b61b6eb2",
      "create_time":1718193627000,
      "update_time":1718193627000,
      "questions":[
          "内资分公司注销申请可以找人帮忙代办么?"
      ],
      "answer":"可以代办理的,现场窗口提交材料授权*****授权人应亲笔签字。"
    }
    ],
    "errors":[]
}