すべてのプロダクト
Search
ドキュメントセンター

Tablestore:認可ポリシーの構文と要素

最終更新日:Jun 19, 2026

Tablestore では、JSON 形式の権限ポリシーを使用してリソースのきめ細かなアクセス制御を行います。権限ポリシーは、アクションリソースコンディション の各要素を定義し、インスタンスポリシー、RAM ポリシー、およびコントロールポリシーに適用されます。

権限付与の構文

権限付与ポリシーは JSON で記述されており、バージョン番号 (Version) と 1 つ以上のステートメント (Statement) で構成されます。各ステートメントには、基本要素である EffectActionResource、および Condition が含まれます。

構文構造

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

フィールドの説明

フィールド

説明

必須

Version

認可ポリシーのバージョン番号。値は 1 に固定されています。

はい

Statement

権限付与の本体です。1 つ以上のステートメントを設定できます。

はい

Effect

認可の効果。有効な値は AllowDeny です。

はい

Action

許可または拒否するアクションです。詳細については、「アクション」をご参照ください。

はい

Resource

権限を付与するリソースです。詳細については、「リソース」をご参照ください。

はい

Condition

権限付与が有効になる条件です。詳細については、「条件」をご参照ください。

いいえ

アクション

アクションは、リソースに対して実行される操作を指定します。各アクションには、プレフィックスとして ots: を付ける必要があり、複数のアクションはコンマ (,) で区切られます。アクションでは、前方一致と後方一致の両方でアスタリスク (*) ワイルドカードを使用できます。一般的なアクションの定義:

単一の 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*"

リソース

リソースは、プロダクト、リージョン、アカウント ID、インスタンス名、テーブル名などのフィールドで構成されます。リソースは、アクセス可能なリソースの範囲を指定します。各フィールドでは、プレフィックスとサフィックスの両方のマッチングに、アスタリスク (*) ワイルドカードを使用できます。リソース形式は次のとおりです。

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

製品は ots に固定されています。[region] はリソースが配置されているリージョンのリージョン ID (例: cn-hangzhou)、[user_id] は Alibaba Cloud アカウント ID、[instance_name] はインスタンス名、[table_name] はテーブル名です。これらの値を実際のリソースの値に置き換えます。

Tunnel の場合、リソース定義はインスタンスレベルでのみ指定可能で、製品、リージョン、アカウント ID、インスタンス名で構成されています。リソースの形式は次のとおりです:

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

使用上の注意

  • Tablestore のインスタンス名では、大文字と小文字は区別されません。リソース定義では、[instance_name] を小文字で指定してください。

  • Action と Resource は文字列マッチングによって検証され、アスタリスク (*) ワイルドカードで前方一致と後方一致が区別されます。たとえば、Resource 定義の acs:ots:*:*:instance/abcacs:ots:*:*:instance/abc/table/xyz とは一致しません。

  • Tablestore コンソールでインスタンスリソースを管理するには、インスタンスリストを取得する必要があります。このため、ユーザーに acs:ots:[region]:[user_id]:instance/* リソースに対する読み取り権限を付与してください。

  • バッチオペレーション (BatchGetRow や BatchWriteRow など) の場合、Tablestore はアクセスされる各テーブルを個別に認可します。すべてのテーブルが認可された場合にのみ、オペレーションが実行されます。そうでない場合は、権限エラーが返されます。

代表的なリソース定義

  • すべてのリージョンにおけるすべてのアカウントのすべてのリソース。

    "Resource": "acs:ots:*:*:*"
  • 中国 (杭州) リージョンにあるアカウント 123456 内のすべてのインスタンスとそのテーブル。

    "Resource": "acs:ots:cn-hangzhou:123456:instance*"
  • 中国 (杭州) リージョンにあるアカウント 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 タイプとリソース

Tablestore の API オペレーションは、インスタンス管理オペレーション、およびテーブルとデータの読み書き操作の 2 つのカテゴリに分類されます。各タイプのリソース設定は次のとおりです:

管理 API によってアクセスされるリソース

管理 API 操作は、主にインスタンス関連の操作であり、コンソールと OpenAPI の両方から呼び出されます。 以下でアクセスされるリソースは、acs:ots:[region]:[user_id]: プレフィックスを省略し、インスタンス部分のみを記述します。

API オペレーション

アクション

アクセスされるリソース

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 操作のアクションとリソースの定義は、コンソールのユーザーエクスペリエンスに影響します。以下でアクセスされるリソースは、acs:ots:[region]:[user_id]: プレフィックスを省略し、インスタンスとテーブルの部分のみを記述します。

API オペレーション

アクション

アクセスされるリソース

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]

条件

条件は、承認が有効になるための制約を指定します。条件は、条件演算子、条件キー、および条件値で構成されます。

条件演算子

条件演算子は、条件キーと条件値を比較する方法を指定します。サポートされているタイプには、文字列 (String)、数値 (Number)、日時 (Date and time)、ブール値 (Boolean)、および IP アドレス (IP address) があります。条件演算子とその説明の完全なリストについては、「条件演算子」をご参照ください。

条件キー

次の表では、Tablestore がサポートするカスタム条件キーと共通条件キーについて説明します。

タイプ

条件キー

説明

Tablestore のカスタム条件

ots:EncryptionRequired

CreateTable API および UpdateTable API に適用されます。暗号化されたテーブルの作成または更新のみを許可するかどうかを指定します。

値の型は文字列です。有効な値は "true" と "false" です。

設定例: "ots:EncryptionRequired": "true"

ots:IsFromTrustProxy

信頼できるプロキシからのアクセスのみを許可するかどうかを指定します。コンソールからのアクセスは、信頼できるプロキシを使用します。

値の型は文字列です。有効な値は "true" と "false" です。

設定例: "ots:IsFromTrustProxy": "true"

ots:AllowInstanceInternetAccess

CreateInstance API および UpdateInstance API に適用されます。インターネット経由でアクセスできないインスタンスの作成に限定するかどうかを指定します。

値の型は文字列です。有効な値は "true" と "false" です。

設定例: "ots:AllowInstanceInternetAccess": "true"

ots:TLSVersion

許可するクライアントの TLS バージョンを設定します。これにより、アクセスは HTTPS プロトコルのみに制限されます。

値の型は文字列です。有効な値は TLSv1、TLSv1.1、TLSv1.2、および TLSv1.3 です。

1 つの条件で複数の TLS バージョンをサポートします。複数の TLS バージョンが設定されている場合、クライアントは設定されているいずれかの TLS バージョンを使用して Tablestore にアクセスできます。

ots:AccessId

リクエスト元の AccessKey ID (AK) を制限します。

値の型は文字列です。複数の AccessKey ID を指定するには、1 行につき 1 つの AccessKey ID を入力します。

共通条件

acs:SourceIp

アクセス元の IP アドレスまたは CIDR ブロックを制限します。

値の型は文字列です。有効な値は、IPv4 または IPv6 の IP アドレスおよび CIDR ブロックです。1 つの条件で複数の IP アドレスまたは CIDR ブロックをサポートします。

重要

インスタンスポリシーで acs:SourceIp を設定する場合は、リクエストのネットワークソースを指定するために acs:SourceVpc も設定する必要があります。そうしないと、設定を送信できません。acs:SourceIp はリクエストの送信元 IP アドレスにのみ一致し、その IP アドレスがインターネットからか VPC からかを区別しないため、acs:SourceIp のみを単独で使用してアクセスを制限すると、権限昇格のリスクが生じる可能性があります。

acs:SourceVpc

ソース VPC を制限します。

値の型は文字列です。有効な値は、ソース VPC の ID と vpc-* です。1 つの条件で複数の VPC ID をサポートします。設定する VPC ID が正しいことを確認してください。

acs:SecureTransport

アクセスがセキュアトランスポート (HTTPS) を使用するかどうかを制限します。

値の型はブール値です。有効な値は次のとおりです。

  • true:HTTPS リクエストのみを許可します。

  • false:HTTP リクエストのみを許可します。

acs:SecureTransport が設定されていない場合、HTTP と HTTPS の両方のリクエストが許可されます。

acs:CurrentTime

リクエストが Tablestore サーバーに到着する時刻を制限します。

値の型は日時で、ISO 8601 形式です (例:2016-01-01T00:00:00+08:00)。

acs:MFAPresent

アクセスで多要素認証 (MFA) を使用するかどうかを制限します。

値の型はブール値です。有効な値は true と false です。