全部产品
Search
文档中心

表格存储:授权语法与元素

更新时间:Jun 18, 2026

表格存储通过 JSON 格式的授权策略实现资源的精细化访问控制。本文介绍授权策略的语法结构,以及 Action、Resource、Condition 元素的取值与配置方式,适用于 Instance Policy、RAM Policy、Control Policy 等权限策略的编写。

授权语法

授权策略采用 JSON 格式描述,由版本号(Version)和一条或多条授权语句(Statement)组成。每条授权语句包含效果(Effect)、操作(Action)、资源(Resource)和条件(Condition)等基本元素。

语法结构

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["ots:操作名称"],
            "Resource": ["acs:ots:地域:账号ID:实例与资源路径"],
            "Condition": {
                "条件操作类型": {
                    "条件关键字": ["条件值"]
                }
            }
        }
    ]
}

字段说明

字段

说明

是否必填

Version

授权策略的版本号,固定取值为1

Statement

授权语句的主体,支持配置一条或多条授权语句。

Effect

授权效果,取值为Allow(允许)或Deny(拒绝)。

Action

允许或拒绝的操作。更多信息,请参见Action

Resource

被授权的资源。更多信息,请参见Resource

Condition

授权生效的条件。更多信息,请参见Condition

Action

Action 是对资源执行的操作,每个 Action 需添加ots:前缀,多个 Action 以半角逗号(,)分隔,支持使用星号(*)通配符(包括前缀匹配和后缀匹配)。典型的 Action 定义如下:

单个 API

"Action": "ots:GetRow"

多个 API

"Action": [
    "ots:PutRow",
    "ots:GetRow"
]

所有只读 API

"Action": [
    "ots:BatchGet*",
    "ots:Describe*",
    "ots:Get*",
    "ots:List*",
    "ots:Consume*",
    "ots:Search",
    "ots:ComputeSplitPointsBySize"
]

所有读写 API

"Action": "ots:*"

所有 SQL 操作 API

"Action": "ots:SQL*"

Resource

资源由产品、地域、账号 ID、实例名和表名等字段组成,通过 Resource 指定用户可访问的资源范围。每个字段均支持星号(*)通配符(包括前缀匹配和后缀匹配)。Resource 格式如下:

acs:ots:[region]:[user_id]:instance/[instance_name]/table/[table_name]

其中产品固定取值为 ots[region]为资源所在地域的 RegionID(例如 cn-hangzhou),[user_id]为阿里云账号 ID,[instance_name]为实例名称,[table_name]为表名称,请根据实际配置替换。

Tunnel 涉及的 Resource 定义只能到实例级别,即由产品、地域、账号 ID 和实例名组成。Resource 格式如下:

acs:ots:[region]:[user_id]:instance/[instance_name]

注意事项

  • 表格存储中实例名称不区分大小写,在 Resource 资源定义中的[instance_name]请用小写表示。

  • Action 和 Resource 通过字符串匹配进行验证,并且通配符星号(*)区分前缀和后缀匹配。例如 Resource 定义为acs:ots:*:*:instance/abc时,无法匹配 acs:ots:*:*:instance/abc/table/xyz

  • 登录表格存储控制台管理实例资源时,由于控制台需要获取实例的列表,因此需要授予用户acs:ots:[region]:[user_id]:instance/*资源的读取权限。

  • 对于批量操作 API(例如 BatchGetRow、BatchWriteRow),表格存储会对被访问的每张表分别鉴权,只有所有表都通过鉴权才能执行操作,否则会返回权限错误。

典型 Resource 定义

  • 所有地域的所有账号的所有资源。

    "Resource": "acs:ots:*:*:*"
  • 华东 1(杭州)地域、账号 123456 的所有实例及其下所有表。

    "Resource": "acs:ots:cn-hangzhou:123456:instance*"
  • 华东 1(杭州)地域、账号 123456 中名称为 abc 的实例及其下所有表。

    "Resource": [
        "acs:ots:cn-hangzhou:123456:instance/abc",
        "acs:ots:cn-hangzhou:123456:instance/abc/table*"
    ]
  • 所有以 abc 开头的实例及其下所有表。

    "Resource": "acs:ots:*:*:instance/abc*"
  • 所有以 abc 开头的实例下所有以 xyz 开头的表(不包括实例资源,不匹配acs:ots:*:*:instance/abc*)。

    "Resource": "acs:ots:*:*:instance/abc*/table/xyz*"

API 类型与资源

目前表格存储的 API 主要分为实例管理类 API、表和数据读写类 API。不同类型 API 访问的资源的配置信息如下:

管理类API访问的资源

管理类 API 主要为实例相关的操作,控制台和 OpenAPI 都会调用。以下访问的资源省略了acs:ots:[region]:[user_id]:前缀,只描述实例部分。

API名称

Action

访问的资源

CreateInstance

ots:InsertInstance

instance/[instance_name]

UpdateInstance

ots:UpdateInstance

instance/[instance_name]

GetInstance

ots:GetInstance

instance/[instance_name]

DeleteInstance

ots:DeleteInstance

instance/[instance_name]

ListInstances

ots:ListInstance

instance/*

ChangeResourceGroup

ots:UpdateInstance

instance/[instance_name]

ListTagResources

ots:ListTagResourcesCustomTags

instance/*

TagResources

ots:TagResourcesCustomTags

instance/[instance_name]

UntagResources

ots:UntagResourcesCustomTags

instance/[instance_name]

UpdateInstancePolicy

ots:UpdateInstancePolicy

instance/[instance_name]

DeleteInstancePolicy

ots:DeleteInstancePolicy

instance/[instance_name]

CheckInstancePolicy

ots:CheckInstancePolicy

instance/[instance_name]

UpdateInstanceElasticVCUUpperLimit

ots:UpdateInstanceElasticVCUUpperLimit

instance/[instance_name]

数据类API访问的资源

数据类 API 主要为表和行相关的操作,控制台和 SDK 都会调用。该类 API 的 Action 和 Resource 定义会影响用户对控制台的使用。以下访问的资源省略了acs:ots:[region]:[user_id]:前缀,只描述实例和表部分。

API名称

Action

访问的资源

ListTable

ots:ListTable

instance/[instance_name]/table*

CreateTable

ots:CreateTable

instance/[instance_name]/table/[table_name]

UpdateTable

ots:UpdateTable

instance/[instance_name]/table/[table_name]

DescribeTable

ots:DescribeTable

instance/[instance_name]/table/[table_name]

DeleteTable

ots:DeleteTable

instance/[instance_name]/table/[table_name]

CreateGlobalTable

ots:CreateGlobalTableots:UpdateTableots:CreateTunnelots:DescribeTunnelots:ListTunnelots:TunnelReadRecordsots:BatchWriteRow

instance/[instance_name]/table/[table_name]

DescribeGlobalTable

ots:DescribeGlobalTable

instance/[instance_name]/table/[table_name]

UpdateGlobalTable

ots:UpdateGlobalTableots:UpdateTableots:CreateTunnelots:DescribeTunnelots:ListTunnelots:TunnelReadRecordsots:BatchWriteRow

instance/[instance_name]/table/[table_name]

BindGlobalTable

ots:BindGlobalTableots:UpdateTableots:CreateTunnelots:DescribeTunnelots:ListTunnelots:TunnelReadRecordsots:BatchWriteRow

instance/[instance_name]/table/[table_name]

UnbindGlobalTable

ots:UnbindGlobalTableots:UpdateTableots:DeleteTunnel

instance/[instance_name]/table/[table_name]

AddDefinedColumn

ots:AddDefinedColumn

instance/[instance_name]/table/[table_name]

DeleteDefinedColumn

ots:DeleteDefinedColumn

instance/[instance_name]/table/[table_name]

GetRow

ots:GetRow

instance/[instance_name]/table/[table_name]

PutRow

ots:PutRow

instance/[instance_name]/table/[table_name]

UpdateRow

ots:UpdateRow

instance/[instance_name]/table/[table_name]

DeleteRow

ots:DeleteRow

instance/[instance_name]/table/[table_name]

GetRange

ots:GetRange

instance/[instance_name]/table/[table_name]

BatchGetRow

ots:BatchGetRow

instance/[instance_name]/table/[table_name]

BatchWriteRow

ots:BatchWriteRow

instance/[instance_name]/table/[table_name]

ComputeSplitPointsBySize

ots:ComputeSplitPointsBySize

instance/[instance_name]/table/[table_name]

StartLocalTransaction

ots:StartLocalTransaction

instance/[instance_name]/table/[table_name]

CommitTransaction

ots:CommitTransaction

instance/[instance_name]/table/[table_name]

AbortTransaction

ots:AbortTransaction

instance/[instance_name]/table/[table_name]

CreateIndex

ots:CreateIndex

instance/[instance_name]/table/[table_name]

DropIndex

ots:DropIndex

instance/[instance_name]/table/[table_name]

CreateSearchIndex

ots:CreateSearchIndex

instance/[instance_name]/table/[table_name]

UpdateSearchIndex

ots:UpdateSearchIndex

instance/[instance_name]/table/[table_name]

DeleteSearchIndex

ots:DeleteSearchIndex

instance/[instance_name]/table/[table_name]

ListSearchIndex

ots:ListSearchIndex

instance/[instance_name]/table/[table_name]

DescribeSearchIndex

ots:DescribeSearchIndex

instance/[instance_name]/table/[table_name]

Search

ots:Search

instance/[instance_name]/table/[table_name]

ComputeSplits

ots:ComputeSplits

instance/[instance_name]/table/[table_name]

ParallelScan

ots:ParallelScan

instance/[instance_name]/table/[table_name]

CreateTunnel

ots:CreateTunnel

instance/[instance_name]/table/[table_name]

DeleteTunnel

ots:DeleteTunnel

instance/[instance_name]/table/[table_name]

ListTunnel

ots:ListTunnel

instance/[instance_name]/table/[table_name]

ConsumeTunnel

ots:ConsumeTunnel

instance/[instance_name]/table/[table_name]

DescribeTunnel

ots:DescribeTunnel

instance/[instance_name]/table/[table_name]

BulkImport

ots:BulkImport

instance/[instance_name]/table/[table_name]

BulkExport

ots:BulkExport

instance/[instance_name]/table/[table_name]

SQL_Select

ots:SQL_Select

instance/[instance_name]/table/[table_name]

SQL_Create

ots:SQL_Create

instance/[instance_name]/table/[table_name]

SQL_DropMapping

ots:SQL_DropMapping

instance/[instance_name]/table/[table_name]

Condition

Condition 用于指定授权生效的限制条件,由条件操作类型、条件关键字和条件值组成。

条件操作类型

条件操作类型用于指定条件关键字与条件值的比较方式,支持字符串类型(String)、数字类型(Number)、日期类型(Date and time)、布尔类型(Boolean)、IP 地址类型(IP address)等。完整的条件操作类型及其运算符说明,请参见条件运算符

条件关键字

表格存储支持配置的自定义 Condition 和通用 Condition 说明请参见下表。

类型

条件关键字

说明

表格存储自定义Condition

ots:EncryptionRequired

适用于CreateTable、UpdateTable操作,是否只允许创建或更新加密表。

取值类型为String,取值范围为true、false。

配置示例:"ots:EncryptionRequired": "true"

ots:IsFromTrustProxy

对来自可信代理(从控制台访问时为可信代理)的访问进行权限配置,是否只允许可信代理的访问。

取值类型为String,取值范围为true、false。

配置示例:"ots:IsFromTrustProxy": "true"

ots:AllowInstanceInternetAccess

适用于CreateInstance、UpdateInstance操作,是否只允许创建不能从公网访问的实例。

取值类型为String,取值范围为true、false。

配置示例:"ots:AllowInstanceInternetAccess": "true"

ots:TLSVersion

设置允许的客户端TLS版本,同时也限制了只能使用HTTPS协议进行访问。

取值类型为String,取值范围为TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。

单个条件中支持同时配置多个TLS版本。当配置多个TLS版本时,客户端采用配置中的任意一种TLS版本访问表格存储均可成功。

ots:AccessId

限制访问来源的用户AccessKey ID(AK)。

取值类型为String。如果有多个AccessId,请按行输入,一行输入一个AccessId。

通用Condition

acs:SourceIp

限制访问来源的IP地址或网段。

取值类型为String,取值范围为IPv4/IPv6的IP地址、CIDR网段。单个条件中支持同时配置多个IP地址或IP网段。

重要

配置Instance Policy时,如果配置了acs:SourceIp,必须同时配置acs:SourceVpc以明确请求的网络来源,否则配置无法提交。这是因为acs:SourceIp仅匹配请求的源IP地址,不区分该IP来自公网还是VPC内网,仅使用acs:SourceIp限制访问可能存在越权风险。

acs:SourceVpc

限制访问来源的VPC。

取值类型为String,取值范围为源端的VPC ID以及vpc-*。单个条件中支持配置多个VPC ID,请确保配置的VPC ID正确。

acs:SecureTransport

限制请求的协议类型,即是否通过安全传输(HTTPS)访问。

取值类型为Bool,取值范围如下:

  • true:仅允许HTTPS请求访问。

  • false:仅允许HTTP请求访问。

如果未设置acs:SecureTransport,表示HTTP或HTTPS请求均可以访问。

acs:CurrentTime

限制请求到达表格存储服务端的时间。

取值类型为Date and time,格式为ISO8601,例如2016-01-01T00:00:00+08:00

acs:MFAPresent

限制是否通过MFA(多因素认证)访问。

取值类型为Bool,取值范围为true、false。