临时授权访问

云数据库 TableStorage BTS

  • 功能发布记录
  • 产品描述
    • 使用限制
    • 产品优势
    • 产品介绍
    • 应用场景
  • 开发者指南
    • C++开发示例
  • HBaseClient
    • 从HBase迁移到TableStorage
    • 功能说明
    • TableStorage-HBase-Client开发示例
    • TableStorage与HBase的区别
    • 版本更新说明
    • 安装
    • 概述
  • 重要通知
    • 品牌升级
  • 操作指南
    • 多用户访问控制
    • 云审计
    • 全局概览
    • 开通云数据库-TableStorage-服务
    • 快速入门
    • 回收站
    • 时序模式
      • 时序表管理
      • 数据管理
      • 实例管理
    • 宽表模式
      • 数据管理
      • 实例管理
      • 表格管理
  • Python SDK
    • 行操作
    • 表操作
    • 实例操作
    • 初始化
    • 版本更新说明
    • 错误处理
    • 安装SDK工具包
    • 概述
  • 服务等级协议SLA
    • 云数据库-TableStorage服务等级协议SLA
  • API参考
    • 通用说明
    • 临时授权访问
    • 接口概览
    • API概述
    • API功能更新记录
    • 服务域名
    • 错误码
    • 时序模式相关接口
      • 实例操作
      • 时序数据读写
      • 时序表操作
    • 宽表模式相关接口
      • 行操作
      • 表操作
      • 实例操作
  • 常见问题
    • API、SDK常见问题
    • 常见问题总览
    • 运维类常见问题
  • Java SDK
    • 行操作
    • 表操作
    • 初始化
    • 版本更新说明
    • 错误处理
    • 安装
    • 概述
  • Javascript SDK
    • 行操作
    • 安装SDK
    • 表操作
    • 实例操作
    • 初始化
    • 概览
  • 产品定价
    • 余额不足提醒和欠费处理
    • 账单查看
    • 产品定价
所有文档
menu
没有找到结果,请重新输入

云数据库 TableStorage BTS

  • 功能发布记录
  • 产品描述
    • 使用限制
    • 产品优势
    • 产品介绍
    • 应用场景
  • 开发者指南
    • C++开发示例
  • HBaseClient
    • 从HBase迁移到TableStorage
    • 功能说明
    • TableStorage-HBase-Client开发示例
    • TableStorage与HBase的区别
    • 版本更新说明
    • 安装
    • 概述
  • 重要通知
    • 品牌升级
  • 操作指南
    • 多用户访问控制
    • 云审计
    • 全局概览
    • 开通云数据库-TableStorage-服务
    • 快速入门
    • 回收站
    • 时序模式
      • 时序表管理
      • 数据管理
      • 实例管理
    • 宽表模式
      • 数据管理
      • 实例管理
      • 表格管理
  • Python SDK
    • 行操作
    • 表操作
    • 实例操作
    • 初始化
    • 版本更新说明
    • 错误处理
    • 安装SDK工具包
    • 概述
  • 服务等级协议SLA
    • 云数据库-TableStorage服务等级协议SLA
  • API参考
    • 通用说明
    • 临时授权访问
    • 接口概览
    • API概述
    • API功能更新记录
    • 服务域名
    • 错误码
    • 时序模式相关接口
      • 实例操作
      • 时序数据读写
      • 时序表操作
    • 宽表模式相关接口
      • 行操作
      • 表操作
      • 实例操作
  • 常见问题
    • API、SDK常见问题
    • 常见问题总览
    • 运维类常见问题
  • Java SDK
    • 行操作
    • 表操作
    • 初始化
    • 版本更新说明
    • 错误处理
    • 安装
    • 概述
  • Javascript SDK
    • 行操作
    • 安装SDK
    • 表操作
    • 实例操作
    • 初始化
    • 概览
  • 产品定价
    • 余额不足提醒和欠费处理
    • 账单查看
    • 产品定价
  • 文档中心
  • arrow
  • 云数据库 TableStorageBTS
  • arrow
  • API参考
  • arrow
  • 临时授权访问
本页目录
  • STS简介
  • STS鉴权流程
  • 使用STS的优点
  • STS服务接口
  • 使用STS凭证访问TableStorage服务

临时授权访问

更新时间:2025-08-21

STS简介

TableStorage可以通过STS机制实现第三方的临时授权访问。STS(Security Token Service)是百度智能云提供的临时授权服务。通过STS,您可以为第三方用户颁发一个自定义时效和权限的访问凭证。第三方用户可以使用该访问凭证直接调用百度智能云的API访问百度智能云资源。

说明:这里的第三方用户主要是指您所开发的应用程序的终端用户,例如,您是移动App开发者,您的App终端用户我们称为第三方用户。

STS鉴权流程

为了让移动终端能够便捷、安全地享受到TableStorage服务,百度智能云研发了STS服务,来对移动场景下的安全需求进行支持。您无需开放自己的AK/SK,仅通过STS即可实现临时授权。以移动客户端访问TableStorage服务为例,使用STS为APP客户端临时授权的流程如下图所示:

image.png

  1. 申请访问TableStorage权限。

    App客户端访问TableStorage资源,需向AppServer申请访问权限。已经开通TableStorage服务的AppServer可以针对不同的App终端用户进行授权及访问资源限制。

  2. 申请临时访问凭证。

    AppServer需要向STS服务申请一个临时访问凭证。AppServer通过调用STS的GetSessionToken()接口进行申请,同时需要指定资源访问权限和过期时间。GetSessionToken()的调用方法请参考STS服务接口。

  3. 返回STS凭证给AppServer。

    STS处理申请后,返回给AppServer一份临时的身份凭证(Credential),包括临时访问密钥AK/SK, SessionToken、失效时间和AppServer的用户ID等信息。AppServer可以缓存STS凭证,当多个App客户端需要的权限相同时,可以直接把缓存的凭证颁发给客户端。

  4. 返回STS凭证给App客户端。

    AppServer将收到的STS凭证下发给App客户端,App客户端可以缓存STS凭证。当凭证失效时,App客户端需要向AppServer重新申请有效访问凭证。

  5. App客户端使用STS凭证访问TableStorage资源。

    App客户端设备可以直接使用返回的STS凭证构造API请求直接访问TableStorage资源,TableStorage会感知STS访问凭证,并会依赖STS服务来验证访问凭证,正确响应用户请求。

使用STS的优点

使用STS访问主要有以下优点:

  • 您不需要向第三方用户透露您的管理账号或AK/SK信息,您只需要向STS申请一个临时访问凭证并颁发给第三方用户即可,且这个访问凭证拥有的权限和有效期均可由您自己去定义。
  • 您不需要关注该权限的撤销问题,临时访问凭证在过期后会自动失效。

STS服务接口

接口描述

GetSessionToken接口用于临时授权访问时,请求返回一份临时的访问凭证(Credential)。

权限说明

请求发起人需要具有合法的AccessKeyID和SecretAccessKey才能发起请求。

请求

  • 请求语法

    Plain Text
    1POST /v1/sessionToken HTTP/1.1
    2Host: sts.bj.baidubce.com
    3Date: <Date>
    4Authorization: <Authorization_String>
  • 请求参数

    名称 描述 默认值 是否必选
    durationSeconds 临时访问凭证的有效时长。数据类型:int。单位为秒,最长可指定为129600秒(36小时)。 43200(12小时) 否
  • 请求头域

    名称 数据类型 描述 默认值 是否必选
    Authorization string 认证字符串,计算方法请参考生成认证字符串。 - 是
  • 请求元素

    本接口的请求元素是权限控制的主要部分。请求元素由一条或多条acl配置项组成,每条acl配置项间相互独立。

    名称 是否必选 数据类型 描述 父标签
    id 否 string acl的标识符。 -
    accessControlList 是 list 标识acl主体的开始,由一或多组acl配置项组成。 -
    +effect 是 string 指定与该条acl配置项匹配的Request能否执行,取值为Allow或Deny。Allow表示可以执行;Deny表示拒绝执行。 accessControlList
    +eid 否 string 标识acl配置项的id 。 accessControlList
    +permission 是 list acl配置项所影响的权限。 accessControlList
    +region 是 string acl配置项影响的区域,"_"表示所有区域。 accessControlList
    +resource 是 list acl配置项所影响的资源,支持通配符。TableStorage仅支持instance级别的资源,格式为:instance/或instance/xxx_ accessControlList
    +service 是 string acl配置项影响的服务组件,"*"表示所有服务。以TableStorage为例,取值为"bce:bts" accessControlList

    其中,permission有以下几种:

    permission 实例操作权限 表操作权限 行操作权限
    FULL_CONTROL - 列举实例
    - 显示实例信息
    - 创建实例
    - 删除实例
    - 创建表
    - 删除表
    - 显示表信息
    - 列举所有表
    - 单条写入
    - 批量写入
    - 单条删除
    - 批量删除
    -随机读
    - 批量读
    - 区间读
    OPERATE - 列举实例
    - 显示实例信息
    - 创建表
    - 删除表
    - 显示表信息
    - 列举所有表
    - 单条写入
    - 批量写入
    - 单条删除
    - 批量删除
    - 随机读
    - 批量读
    - 区间读
    READ - 列举实例
    - 显示实例信息
    -显示表信息
    - 列举所有表
    - 随机读
    - 批量读
    - 区间读

注意:

  • 由于GetSessionToken的响应结果会包含STS凭证,强烈建议通过HTTPS协议调用。
  • 如在请求元素中不指定acl,则默认返回的临时权限Credential与您当前拥有的权限相同,授权给第三方用户后,可能会给您的账户资源带来风险,建议您在临时授权时明确指定acl,规避风险。

响应

  • 响应头域

    本接口只用到了公共响应头。

  • 响应元素

    名称 数据类型 描述
    accessKeyId string 用于STS凭证访问的AK。
    expiration date 访问失效时间。
    secretAccessKey string 用于STS凭证访问的SK。
    sessionToken string SessionToken,使用STS凭证访问时必须携带。
    userId string 您的用户ID。

示例

  • 请求示例

    Plain Text
    1POST /v1/sessionToken HTTP/1.1
    2Host: sts.bj.baidubce.com
    3Date: Wed, 06 Apr 2016 06:34:40 GMT
    4Authorization: AuthorizationString
    5Content-type:application/json
    6Content-Length:178
    7
    8{
    9  "id":"10eb6f5ff6ff4605bf044313e8f3ffa5",
    10  "accessControlList": [
    11  {  
    12    "eid":<eid>,
    13    "service":"bce:bts",
    14    "region":"bd",
    15    "effect": "Allow",
    16    "resource": ["instance/instance1", "instance/instance2"],
    17    "permission": ["READ"]
    18  },
    19  {  
    20    "eid":<eid>,
    21    "service":"bce:bts",
    22    "region":"bd",
    23    "effect": "Allow",
    24    "resource": ["instance/instance3", "instance/instance4"],
    25    "permission": ["OPERATE"]
    26  }
    27  ]
    28}
  • 响应示例

    Plain Text
    1HTTP/1.1 200 OK
    2Server: Apache-Coyote/1.1
    3Content-Type: application/json;charset=UTF-8
    4Date: Wed, 06 Apr 2016 06:34:40 GMT
    5
    6{
    7  "accessKeyId": "3bdecf4afebd41849628389a20629ecc",
    8  "secretAccessKey": "3f901ef12d454b9c92ba2dde7c029140",
    9  "sessionToken": "ZGZiM2M3MmU4Mjk4NGQ2MGEzYTNhYTAyMDE3NTZmZmV8AAAAAC8CAABf0XcbS9E/leusHxRyZ4DYNb+SH374S+mmkxaOpcwdLPC7JL/aTF5F7x83dQn354VKiTyNGuvQIsv7MidIPN7+0oOehdFlHua4RkwqIi8wOslX0qNitZa56WpxowLprrMksOHiQiEqYEzAyaVF3Oy3hBbMiX/RprtcnxERAi1/skNR1VzTZyYfS5D4p8Ul62X9Whwmj5Lkxy6yuZ1og94wytwTc8aWPFPGFIpQyCpCaxYvl/QkA1M0rxQ6SMaHbxTyEYuG2Eg8EOP0EKn2O2DMjGuLURRKuxHRCrFidRxDqOX9kM/L7gQXuaZl9DdB1DwZPrSo8xiPDRrfkpIqvkJEeB0blb8dXtMm0V0lmTznUrnPuoD4nfVyEPKCET+0JhQooxNLWDE6x4alnR8QtJkJ2yjrYaoMZdeuqKRcpgehVOIgI8ZDIumN1rdObs7a4Hw4Gmx7f0gQgLWdIF4ZOKsSpWP8aos+vzdOA+NNSHsTVg==",
    10  "createTime": "2015-11-18T11:48:17Z",
    11  "expiration": "2015-11-18T23:48:17Z",
    12  "userId": "2d6f4473c99e4ca7be1ca19ec18beacf"
    13}

使用STS凭证访问TableStorage服务

与普通的API接口相比,使用STS凭证调用API时,只需要在请求头部增加x-bce-security-token: 即可,以PutRow为例:

Plain Text
1PUT /v{version}/instance/{instanceName}/table/{tableName}/row/{rawurlencode(rowkey)} HTTP/1.1
2Host: bts.bd.baidubce.com
3Date: Wed, 27 Mar 2019 06:34:40 GMT
4Authorization: <Authorization_String>
5x-bce-security-token: <SessionToken>
6Content-Type: text/plain
7Content-Length: 11434

上一篇
通用说明
下一篇
接口概览