All Products
Search
Document Center

Tablestore:Sintaksis dan elemen kebijakan otorisasi

Last Updated:Jun 19, 2026

Tablestore menggunakan kebijakan otorisasi berformat JSON untuk kontrol akses detail halus terhadap resource. Kebijakan ini mendefinisikan elemen Action, Resource, dan Condition, serta berlaku untuk kebijakan instans, kebijakan RAM, dan kebijakan kontrol.

Sintaksis otorisasi

Kebijakan otorisasi ditulis dalam format JSON dan terdiri atas nomor versi (Version) serta satu atau beberapa pernyataan otorisasi (Statement). Setiap pernyataan mencakup elemen dasar Effect, Action, Resource, dan Condition.

Struktur sintaksis

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

Deskripsi field

Field

Deskripsi

Wajib

Version

Nomor versi kebijakan otorisasi. Nilainya tetap 1.

Ya

Statement

Isi utama otorisasi. Anda dapat mengonfigurasi satu atau beberapa pernyataan.

Ya

Effect

Efek otorisasi. Nilai yang valid: Allow dan Deny.

Ya

Action

Operasi yang diizinkan atau ditolak. Untuk informasi selengkapnya, lihat Action.

Ya

Resource

Resource yang diberi otorisasi. Untuk informasi selengkapnya, lihat Resource.

Ya

Condition

Kondisi yang harus dipenuhi agar otorisasi berlaku. Untuk informasi selengkapnya, lihat Condition.

Tidak

Action

Action menentukan operasi yang dapat dilakukan pada suatu resource. Setiap action harus diawali dengan ots:, dan beberapa action dipisahkan dengan koma (,). Action mendukung karakter wildcard asterisk (*) untuk pencocokan awalan maupun akhiran. Berikut adalah definisi action umum:

Operasi API tunggal

"Action": "ots:GetRow"

Beberapa operasi API

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

Semua operasi API read-only

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

Semua operasi API baca dan tulis

"Action": "ots:*"

Semua operasi API SQL

"Action": "ots:SQL*"

Resource

Resource terdiri atas field seperti produk, wilayah, ID akun, nama instans, dan nama tabel. Resource menentukan cakupan resource yang dapat diakses. Setiap field mendukung karakter wildcard asterisk (*) untuk pencocokan awalan maupun akhiran. Format Resource adalah sebagai berikut:

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

Produk tetap menggunakan ots. [region] adalah ID wilayah tempat resource berada (misalnya, cn-hangzhou). [user_id] adalah ID akun Alibaba Cloud. [instance_name] adalah nama instans. [table_name] adalah nama tabel. Ganti nilai-nilai tersebut dengan nilai aktual resource Anda.

Untuk Tunnel, definisi Resource hanya dapat ditentukan pada tingkat instans, yang terdiri dari produk, wilayah, ID akun, dan nama instans. Format Resource adalah sebagai berikut:

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

Catatan penggunaan

  • Nama instans di Tablestore tidak membedakan huruf besar/kecil. Tentukan [instance_name] dalam huruf kecil pada definisi Resource.

  • Action dan Resource diverifikasi melalui pencocokan string, dan karakter wildcard asterisk (*) membedakan antara pencocokan awalan dan akhiran. Misalnya, definisi Resource acs:ots:*:*:instance/abc tidak cocok dengan acs:ots:*:*:instance/abc/table/xyz.

  • Untuk mengelola resource instans di konsol Tablestore, konsol harus mendapatkan daftar instans. Oleh karena itu, berikan izin baca kepada pengguna pada resource acs:ots:[region]:[user_id]:instance/*.

  • Untuk operasi API batch (seperti BatchGetRow dan BatchWriteRow), Tablestore memberikan otorisasi secara terpisah untuk setiap tabel yang diakses. Operasi hanya berjalan jika semua tabel lolos otorisasi. Jika tidak, error izin akan dikembalikan.

Definisi Resource khas

  • Semua resource dari semua akun di semua wilayah.

    "Resource": "acs:ots:*:*:*"
  • Semua instans dan tabelnya di akun 123456 di wilayah Tiongkok (Hangzhou).

    "Resource": "acs:ots:cn-hangzhou:123456:instance*"
  • Instans bernama abc dan semua tabelnya di akun 123456 di wilayah Tiongkok (Hangzhou).

    "Resource": [
        "acs:ots:cn-hangzhou:123456:instance/abc",
        "acs:ots:cn-hangzhou:123456:instance/abc/table*"
    ]
  • Semua instans yang namanya diawali abc dan semua tabelnya.

    "Resource": "acs:ots:*:*:instance/abc*"
  • Semua tabel yang namanya diawali xyz di semua instans yang namanya diawali abc (tidak termasuk resource instans, yang tidak cocok dengan acs:ots:*:*:instance/abc*).

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

Jenis API dan resource

Operasi API Tablestore dibagi menjadi dua kategori: operasi manajemen instans, serta operasi baca/tulis tabel dan data. Konfigurasi resource untuk masing-masing jenis adalah sebagai berikut:

Resource yang diakses oleh operasi API manajemen

Operasi API manajemen terutama merupakan operasi terkait instans, yang dipanggil baik oleh konsol maupun OpenAPI. Resource yang diakses di bawah ini menghilangkan awalan acs:ots:[region]:[user_id]: dan hanya menjelaskan bagian instans.

Operasi API

Action

Resource yang diakses

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]

Resource yang diakses oleh operasi API data

Operasi API data terutama merupakan operasi terkait tabel dan baris, yang dipanggil baik oleh konsol maupun SDK. Definisi Action dan Resource untuk operasi API ini memengaruhi pengalaman pengguna di konsol. Resource yang diakses di bawah ini menghilangkan awalan acs:ots:[region]:[user_id]: dan hanya menjelaskan bagian instans dan tabel.

Operasi API

Action

Resource yang diakses

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

Condition menentukan batasan yang harus dipenuhi agar otorisasi berlaku. Condition terdiri dari operator kondisi, kunci kondisi, dan nilai kondisi.

Operator kondisi

Operator kondisi menentukan cara membandingkan kunci kondisi dengan nilai kondisi. Jenis yang didukung mencakup string (String), angka (Number), tanggal dan waktu (Date and time), Boolean (Boolean), dan alamat IP (IP address). Untuk daftar lengkap operator kondisi dan deskripsinya, lihat Operator kondisi.

Kunci kondisi

Tabel berikut menjelaskan kunci kondisi khusus dan kunci kondisi umum yang didukung Tablestore.

Jenis

Kunci kondisi

Deskripsi

Kondisi khusus Tablestore

ots:EncryptionRequired

Berlaku untuk operasi CreateTable dan UpdateTable. Menentukan apakah hanya mengizinkan pembuatan atau pembaruan tabel terenkripsi.

Jenis nilai adalah String. Nilai yang valid: true dan false.

Contoh konfigurasi: "ots:EncryptionRequired": "true"

ots:IsFromTrustProxy

Menentukan apakah hanya mengizinkan akses dari proxy tepercaya. Akses dari konsol menggunakan proxy tepercaya.

Jenis nilai adalah String. Nilai yang valid: true dan false.

Contoh konfigurasi: "ots:IsFromTrustProxy": "true"

ots:AllowInstanceInternetAccess

Berlaku untuk operasi CreateInstance dan UpdateInstance. Menentukan apakah hanya mengizinkan pembuatan instans yang tidak dapat diakses melalui Internet.

Jenis nilai adalah String. Nilai yang valid: true dan false.

Contoh konfigurasi: "ots:AllowInstanceInternetAccess": "true"

ots:TLSVersion

Menetapkan versi TLS klien yang diizinkan. Ini juga membatasi akses hanya ke protokol HTTPS.

Jenis nilai adalah String. Nilai yang valid: TLSv1, TLSv1.1, TLSv1.2, dan TLSv1.3.

Satu kondisi mendukung beberapa versi TLS. Saat beberapa versi TLS dikonfigurasi, klien dapat mengakses Tablestore secara berhasil menggunakan salah satu versi TLS yang dikonfigurasi.

ots:AccessId

Membatasi ID AccessKey (AK) dari sumber permintaan.

Jenis nilai adalah String. Untuk menentukan beberapa ID AccessKey, masukkan satu ID AccessKey per baris.

Kondisi umum

acs:SourceIp

Membatasi alamat IP sumber atau Blok CIDR akses.

Jenis nilai adalah String. Nilai yang valid: alamat IP IPv4 atau IPv6 dan Blok CIDR. Satu kondisi mendukung beberapa alamat IP atau Blok CIDR.

Penting

Dalam kebijakan instans, jika Anda mengonfigurasi acs:SourceIp, Anda juga harus mengonfigurasi acs:SourceVpc untuk menentukan sumber jaringan permintaan. Jika tidak, konfigurasi tidak dapat dikirimkan. acs:SourceIp hanya mencocokkan alamat IP sumber permintaan dan tidak membedakan apakah alamat IP tersebut berasal dari Internet atau VPC, sehingga penggunaan acs:SourceIp saja untuk membatasi akses dapat menimbulkan risiko peningkatan hak istimewa.

acs:SourceVpc

Membatasi VPC sumber akses.

Jenis nilai adalah String. Nilai yang valid: ID VPC sumber dan vpc-*. Satu kondisi mendukung beberapa ID VPC. Pastikan ID VPC yang dikonfigurasi benar.

acs:SecureTransport

Membatasi protokol permintaan, yaitu apakah akses menggunakan transport aman (HTTPS).

Jenis nilai adalah Bool. Nilai yang valid:

  • true: Hanya mengizinkan permintaan HTTPS.

  • false: Hanya mengizinkan permintaan HTTP.

Jika acs:SecureTransport tidak diatur, permintaan HTTP dan HTTPS keduanya diizinkan.

acs:CurrentTime

Membatasi waktu kedatangan permintaan di server Tablestore.

Jenis nilai adalah Tanggal dan waktu, dalam format ISO 8601, misalnya, 2016-01-01T00:00:00+08:00.

acs:MFAPresent

Membatasi apakah akses menggunakan autentikasi multi-faktor (MFA).

Jenis nilai adalah Bool. Nilai yang valid: true dan false.