RAM authorization

更新时间:
复制 MD 格式

Resource Access Management (RAM) is a service provided by Alibaba Cloud to manage user identities and resource access permissions. Using RAM helps you avoid sharing your Alibaba Cloud account keys with other users and allows you to grant users the least privilege access. RAM uses permission policies to define authorizations. This topic describes the general structure of a RAM policy, and the policy statement elements (Action, Resource, and Condition) defined by Open Search for RAM permission policies. The RAM code (RamCode) for Open Search is searchengine , and the supported authorization granularity is RESOURCE .

General structure of a policy

Permission policies support JSON format with the following general structure:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "<Effect>",
      "Action": "<Action>",
      "Resource": "<Resource>",
      "Condition": {
        "<Condition_operator>": {
          "<Condition_key>": [
            "<Condition_value>"
          ]
        }
      }
    }
  ]
}        

The following list describes the fields in the policy:

  • Version: Specifies the policy version number. It is fixed at 1.

  • Statement:

    • Effect: Specifies the authorization result. Valid values: Allow and Deny.

    • Action: Specifies one or more operations that are allowed or denied.

    • Resource: Specifies the specific objects affected by the operations. You can use Alibaba Cloud Resource Names (ARNs) to describe specific resources.

    • Condition: Specifies the conditions for the authorization to take effect. This field is optional.

      • Condition operator: Specifies the conditional operators. Different types of conditions support different conditional operators.

      • Condition_key: Specifies the condition keys.

      • Condition_value: Specifies the condition values.

Action

The following table lists the actions defined by Open Search. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that support authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding ARN in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys that are applicable across all RAM-integrated services. For more information, see Common condition keys.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

API

Access level

Resource type

Condition key

Dependent action

searchengine:GetDataSourceDeploy GetDataSourceDeploy get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:CreateConfigFile CreateConfigFile

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CreateFolder CreateFolder create

*Folder

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:UpdateSqlInstanceContent UpdateSqlInstanceContent update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ModifyPassword ModifyPassword update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetNodeConfig GetNodeConfig get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteModel DeleteModel delete

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListInstanceSpecs ListInstanceSpecs get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ListLogs ListLogs list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifySearcherReplica ModifySearcherReplica update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ForceSwitch ForceSwitch

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListDateSourceGenerations ListDateSourceGenerations list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:DeleteAdvanceConfig DeleteAdvanceConfig

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListAdvanceConfigs ListAdvanceConfigs list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetAdvanceConfigFile GetAdvanceConfigFile get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteTable DeleteTable delete

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyDataSourceDeploy ModifyDataSourceDeploy update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ModifyAlias ModifyAlias update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteConfigDir DeleteConfigDir

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetIndex GetIndex get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListDataSources ListDataSources list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteIndexVersion DeleteIndexVersion

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:TagResources TagResources update

*All Resource

*

None None
searchengine:RenameFolder RenameFolder update

*Folder

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyAdvanceConfig ModifyAdvanceConfig update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetInstance GetInstance get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetIndexOnlineStrategy GetIndexOnlineStrategy get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ListAdvanceConfigDir ListAdvanceConfigDir list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ModifyModel ModifyModel update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeletePublicUrl DeletePublicUrl delete

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetClusterRunTimeInfo GetClusterRunTimeInfo get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:StartIndex StartIndex update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteIndex DeleteIndex

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetTable GetTable get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyFile ModifyFile

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyIndex ModifyIndex update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetDeployGraph GetDeployGraph get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CreateModel CreateModel create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:UpdateSqlInstanceName UpdateSqlInstanceName update

*SqlInstance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListDataSourceTasks ListDataSourceTasks list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:StopTask StopTask

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetIndexVersion GetIndexVersion get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyOnlineConfig ModifyOnlineConfig

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:UpdateInstance UpdateInstance update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetTableGeneration GetTableGeneration get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyClusterOfflineConfig ModifyClusterOfflineConfig update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CreateTable CreateTable create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListOnlineConfigs ListOnlineConfigs list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ListRestQueryResult ListRestQueryResult list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyIndexVersion ModifyIndexVersion

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteFolder DeleteFolder delete

*Folder

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyNodeConfig ModifyNodeConfig

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteAlias DeleteAlias delete

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListInstances ListInstances get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/*

None None
searchengine:ListClusters ListClusters list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteSqlInstance DeleteSqlInstance delete

*SqlInstance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListIndexes ListIndexes list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListPausePolicys ListPausePolicys list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:PublishAdvanceConfig PublishAdvanceConfig update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteDataSource DeleteDataSource

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:Reindex Reindex update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CreateSqlInstance CreateSqlInstance create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ListTableGenerations ListTableGenerations list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetCluster GetCluster get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyAdvanceConfigFile ModifyAdvanceConfigFile

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListAliases ListAliases list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListVectorQueryResult ListVectorQueryResult list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListTables ListTables list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListSchemas ListSchemas list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:RemoveCluster RemoveCluster

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CreateAlias CreateAlias create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:UpdateSqlInstanceParams UpdateSqlInstanceParams update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ListQueryResult ListQueryResult get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:TransformPlan TransformPlan create

*All Resource

*

None None
searchengine:BuildIndex BuildIndex update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CreateDataSource CreateDataSource create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyClusterOnlineConfig ModifyClusterOnlineConfig

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ModifyTable ModifyTable update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CreateCluster CreateCluster create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListTagResources ListTagResources list

*All Resource

*

None None
searchengine:ListIndexRecoverRecords ListIndexRecoverRecords list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListClusterTasks ListClusterTasks list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DebugModel DebugModel get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:RecoverIndex RecoverIndex update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteConfigFile DeleteConfigFile

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListClusterNames ListClusterNames list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:UntagResources UntagResources delete

*All Resource

*

None None
searchengine:PublishIndexVersion PublishIndexVersion

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListDatabases ListDatabases list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ModifyIndexPartition ModifyIndexPartition

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ListDataSourceSchemas ListDataSourceSchemas list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:CreateInstance CreateInstance create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/*

None None
searchengine:ModifyClusterDesc ModifyClusterDesc

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListTasks ListTasks none

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ExecuteSqlInstance ExecuteSqlInstance create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:GetSqlInstance GetSqlInstance get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:CreatePublicUrl CreatePublicUrl create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetModel GetModel get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyPublicUrlIpList ModifyPublicUrlIpList update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetDataSource GetDataSource get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetAdvanceConfig GetAdvanceConfig get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CloneSqlInstance CloneSqlInstance create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:GetFile GetFile get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:PushDocuments PushDocuments

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListModels ListModels list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:GetDatabaseSchema GetDatabaseSchema get

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:ModifyPausePolicy ModifyPausePolicy update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:StopIndex StopIndex update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ModifyIndexOnlineStrategy ModifyIndexOnlineStrategy

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}

None None
searchengine:CreateIndex CreateIndex create

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ListPostQueryResult ListPostQueryResult list

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:ChangeResourceGroup ChangeResourceGroup update

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:CreateConfigDir CreateConfigDir

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None
searchengine:DeleteInstance DeleteInstance delete

*Instance

acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

None None

Resource

The following table lists the resources defined by Open Search. Specify them in the Resource element of RAM policy statements to grant permissions for specific operations. They are uniquely identified by ARNs. Format: acs:{#ramcode}:{#regionId}:{#accountId}:{#resourceType}:

  • acs: The initialism of Alibaba Cloud service, which indicates the public cloud of Alibaba Cloud.

  • {#ramcode}: The code used in RAM to indicate an Alibaba Cloud service.

  • {#regionId}: The region ID. If the resource covers all regions, set it to an asterisk (*).

  • {#accountId}: The ID of the Alibaba Cloud account. If the resource covers all Alibaba Cloud accounts, set it to an asterisk (*).

  • {#resourceType}: The service-defined resource identifier. It supports a hierarchical structure, which is similar to a file path. If the statement covers global resources, set it to an asterisk (*).

Resource type

ARN

Instance
  • acs:searchengine:{#regionId}:{#accountId}:instance/{#instanceId}
  • acs:searchengine:{#regionId}:{#accountId}:instance/*
Folder
  • acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}
SqlInstance
  • acs:searchengine:{#regionId}:{#accountId}:instance/{#InstanceId}

Condition

Open Search does not define product-level condition keys. However, you can use Alibaba Cloud common condition keys for access control. For more information, see Common condition keys.

How to create custom RAM policies?

You can create custom policies and grant them to RAM users, RAM user groups, or RAM roles. For instructions, see: