Todos os produtos
Search
Central de documentação

Tablestore:Authorization policy syntax and elements

Última atualização: Jun 30, 2026

O Tablestore utiliza políticas de autorização em formato JSON para controle de acesso granular aos recursos. Uma política de autorização define os elementos Action, Resource e Condition, aplicando-se a políticas de instância, políticas do RAM e políticas de controle.

Sintaxe de autorização

Uma política de autorização é descrita em JSON e composta por um número de versão (Version) e uma ou mais instruções de autorização (Statement). Cada instrução contém os elementos básicos Effect, Action, Resource e Condition.

Estrutura da sintaxe

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["ots:ActionName"],
            "Resource": ["acs:ots:region:account-id:instance-and-resource-path"],
            "Condition": {
                "ConditionOperator": {
                    "ConditionKey": ["ConditionValue"]
                }
            }
        }
    ]
}

Descrição dos campos

Campo

Descrição

Obrigatório

Version

Número da versão da política de autorização. O valor é fixo em 1.

Sim

Statement

Corpo da autorização. Configure uma ou mais instruções.

Sim

Effect

Efeito da autorização. Valores válidos: Allow e Deny.

Sim

Action

Operações a permitir ou negar. Para obter mais informações, consulte Action.

Sim

Resource

Recursos a autorizar. Para obter mais informações, consulte Resource.

Sim

Condition

Condições para a autorização entrar em vigor. Para obter mais informações, consulte Condition.

Não

Action

O elemento Action especifica uma operação realizada em um recurso. Cada ação deve ter o prefixo ots:, e múltiplas ações são separadas por vírgulas (,). As ações aceitam o caractere curinga asterisco (*) para correspondência tanto de prefixo quanto de sufixo. Definições comuns de ação:

Uma única operação de API

"Action": "ots:GetRow"

Múltiplas operações de API

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

Todas as operações de API somente leitura

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

Todas as operações de API de leitura e gravação

"Action": "ots:*"

Todas as operações de API SQL

"Action": "ots:SQL*"

Resource

Um recurso consiste em campos como produto, região, ID da conta, nome da instância e nome da tabela. O elemento Resource especifica o escopo dos recursos acessíveis. Cada campo aceita o caractere curinga asterisco (*) para correspondência tanto de prefixo quanto de sufixo. O formato do Resource é o seguinte:

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

O produto é fixo como ots. [region] é o ID da região onde o recurso reside (por exemplo, cn-hangzhou). [user_id] é o ID da conta Alibaba Cloud. [instance_name] é o nome da instância. [table_name] é o nome da tabela. Substitua esses valores pelos valores reais dos seus recursos.

Para o Tunnel, a definição de Resource pode ser especificada apenas no nível da instância, consistindo no produto, região, ID da conta e nome da instância. O formato do Resource é o seguinte:

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

Notas de uso

  • Os nomes de instância no Tablestore não diferenciam maiúsculas de minúsculas. Especifique [instance_name] em letras minúsculas na definição de Resource.

  • A verificação de Action e Resource ocorre por correspondência de strings, e o caractere curinga asterisco (*) distingue entre correspondência de prefixo e sufixo. Por exemplo, uma definição de Resource como acs:ots:*:*:instance/abc não corresponde a acs:ots:*:*:instance/abc/table/xyz.

  • Para gerenciar recursos de instância no console do Tablestore, o console precisa obter a lista de instâncias. Portanto, conceda ao usuário permissões de leitura no recurso acs:ots:[region]:[user_id]:instance/*.

  • Nas operações de API em lote (como BatchGetRow e BatchWriteRow), o Tablestore autoriza cada tabela acessada separadamente. A operação executa apenas se todas as tabelas passarem na autorização. Caso contrário, o sistema retorna um erro de permissão.

Definições típicas de Resource

  • Todos os recursos de todas as contas em todas as regiões.

    "Resource": "acs:ots:*:*:*"
  • Todas as instâncias e suas tabelas na conta 123456 na região China (Hangzhou).

    "Resource": "acs:ots:cn-hangzhou:123456:instance*"
  • A instância chamada abc e todas as suas tabelas na conta 123456 na região China (Hangzhou).

    "Resource": [
        "acs:ots:cn-hangzhou:123456:instance/abc",
        "acs:ots:cn-hangzhou:123456:instance/abc/table*"
    ]
  • Todas as instâncias cujos nomes começam com abc e todas as suas tabelas.

    "Resource": "acs:ots:*:*:instance/abc*"
  • Todas as tabelas cujos nomes começam com xyz em todas as instâncias cujos nomes começam com abc (excluindo o recurso de instância, que não corresponde a acs:ots:*:*:instance/abc*).

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

Tipos de API e recursos

As operações de API do Tablestore dividem-se em duas categorias: operações de gerenciamento de instâncias e operações de leitura/gravação de tabelas e dados. A configuração de recurso para cada tipo é a seguinte:

Recursos acessados por operações de API de gerenciamento

As operações de API de gerenciamento referem-se principalmente a operações relacionadas a instâncias, chamadas tanto pelo console quanto pela OpenAPI. Os recursos acessados abaixo omitem o prefixo acs:ots:[region]:[user_id]: e descrevem apenas a parte da instância.

Operação de API

Action

Recurso acessado

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]

Recursos acessados por operações de API de dados

As operações de API de dados referem-se principalmente a operações relacionadas a tabelas e linhas, chamadas tanto pelo console quanto pelos SDKs. As definições de Action e Resource dessas operações de API afetam a experiência do usuário no console. Os recursos acessados abaixo omitem o prefixo acs:ots:[region]:[user_id]: e descrevem apenas as partes da instância e da tabela.

Operação de API

Action

Recurso acessado

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:CreateGlobalTable, ots:UpdateTable, ots:CreateTunnel, ots:DescribeTunnel, ots:ListTunnel, ots:TunnelReadRecords, ots:BatchWriteRow

instance/[instance_name]/table/[table_name]

DescribeGlobalTable

ots:DescribeGlobalTable

instance/[instance_name]/table/[table_name]

UpdateGlobalTable

ots:UpdateGlobalTable, ots:UpdateTable, ots:CreateTunnel, ots:DescribeTunnel, ots:ListTunnel, ots:TunnelReadRecords, ots:BatchWriteRow

instance/[instance_name]/table/[table_name]

BindGlobalTable

ots:BindGlobalTable, ots:UpdateTable, ots:CreateTunnel, ots:DescribeTunnel, ots:ListTunnel, ots:TunnelReadRecords, ots:BatchWriteRow

instance/[instance_name]/table/[table_name]

UnbindGlobalTable

ots:UnbindGlobalTable, ots:UpdateTable, ots: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

O elemento Condition especifica as restrições para a autorização entrar em vigor. Ele consiste em um operador de condição, uma chave de condição e um valor de condição.

Operadores de condição

Um operador de condição define como uma chave de condição é comparada com um valor de condição. Os tipos suportados incluem string (String), número (Number), data e hora (Date and time), booleano (Boolean) e endereço IP (IP address). Para obter a lista completa de operadores de condição e suas descrições, consulte Operadores condicionais.

Chaves de condição

A tabela a seguir descreve as chaves de condição personalizadas e as chaves de condição comuns suportadas pelo Tablestore.

Tipo

Chave de condição

Descrição

Condições personalizadas do Tablestore

ots:EncryptionRequired

Aplica-se às operações CreateTable e UpdateTable. Define se o sistema permite apenas a criação ou atualização de tabelas criptografadas.

O tipo de valor é String. Valores válidos: true e false.

Exemplo de configuração: "ots:EncryptionRequired": "true"

ots:IsFromTrustProxy

Define se o sistema permite apenas acesso proveniente de um proxy confiável. O acesso via console utiliza um proxy confiável.

O tipo de valor é String. Valores válidos: true e false.

Exemplo de configuração: "ots:IsFromTrustProxy": "true"

ots:AllowInstanceInternetAccess

Aplica-se às operações CreateInstance e UpdateInstance. Define se o sistema permite apenas a criação de instâncias sem acesso pela Internet.

O tipo de valor é String. Valores válidos: true e false.

Exemplo de configuração: "ots:AllowInstanceInternetAccess": "true"

ots:TLSVersion

Define as versões de TLS permitidas para o cliente. Isso também restringe o acesso exclusivamente ao protocolo HTTPS.

O tipo de valor é String. Valores válidos: TLSv1, TLSv1.1, TLSv1.2 e TLSv1.3.

Uma única condição suporta múltiplas versões de TLS. Quando várias versões são configuradas, um cliente consegue acessar o Tablestore com êxito usando qualquer uma das versões TLS definidas.

ots:AccessId

Restringe o AccessKey ID (AK) da origem da solicitação.

O tipo de valor é String. Para especificar vários AccessKey IDs, insira um AccessKey ID por linha.

Condições comuns

acs:SourceIp

Restringe o endereço IP de origem ou o bloco CIDR do acesso.

O tipo de valor é String. Valores válidos: endereços IP IPv4 ou IPv6 e blocos CIDR. Uma única condição suporta múltiplos endereços IP ou blocos CIDR.

Importante

Em uma política de instância, se você configurar acs:SourceIp, também deverá configurar acs:SourceVpc para especificar a origem de rede da solicitação. Caso contrário, não será possível enviar a configuração. O acs:SourceIp corresponde apenas ao endereço IP de origem da solicitação e não distingue se o IP vem da Internet ou de uma VPC; portanto, usar apenas o acs:SourceIp para restringir o acesso pode representar um risco de escalonamento de privilégios.

acs:SourceVpc

Restringe a VPC de origem do acesso.

O tipo de valor é String. Valores válidos: o ID da VPC de origem e vpc-*. Uma única condição suporta múltiplos IDs de VPC. Certifique-se de que os IDs de VPC configurados estejam corretos.

acs:SecureTransport

Restringe o protocolo da solicitação, ou seja, se o acesso utiliza transporte seguro (HTTPS).

O tipo de valor é Bool. Valores válidos:

  • true: Permite apenas solicitações HTTPS.

  • false: Permite apenas solicitações HTTP.

Se acs:SecureTransport não estiver definido, tanto solicitações HTTP quanto HTTPS serão permitidas.

acs:CurrentTime

Restringe o horário em que uma solicitação chega ao servidor do Tablestore.

O tipo de valor é Data e hora, no formato ISO 8601, por exemplo, 2016-01-01T00:00:00+08:00.

acs:MFAPresent

Restringe se o acesso utiliza autenticação multifator (MFA).

O tipo de valor é Bool. Valores válidos: true e false.