Resource Access Management (RAM) は Alibaba Cloud によって提供される、ユーザーのアイデンティティとリソースの権限を管理するためのサービスです。RAM を使用すると、Alibaba Cloud アカウント (root ユーザー) のキーを他のユーザーと共有することを回避でき、ユーザーに必要最小限の権限を付与できます。RAM ではポリシーを使用して権限付与を定義します。このトピックでは、RAM ポリシーの一般的な構造と、 Intelligent Open Search (OpenSearch) のポリシーステートメントを構成する要素である「アクション (Action)」「リソース (Resource)」および「条件 (Condition) 」について説明します。 Intelligent Open Search (OpenSearch) は、RAM コード (RamCode) が searchengine で、 Resource-level での権限付与がサポートされています。
一般的なポリシー構造
RAM ポリシーは、一般的に以下のような JSON 構造で構成されます。
{
"Version": "1",
"Statement": [
{
"Effect": "<Effect>",
"Action": "<Action>",
"Resource": "<Resource>",
"Condition": {
"<Condition_operator>": {
"<Condition_key>": [
"<Condition_value>"
]
}
}
}
]
} ポリシーのフィールドに関する説明:
Version:ポリシーのバージョン番号。現在のポリシーバージョンは 1 です。
Statement:
Effect:「許可するか、拒否するか」という、最終的な結果を定義します。有効な値:Allow (許可) または Deny (拒否)。
Action:「何をすることができるか、できないか」を定義する、リソースへの具体的な操作を指します。
Resource:「何に対して操作を行うか」を定義する、操作の具体的な対象です。対象となるリソースは、ARN (Alibaba Cloud Resource Name) を使用して指定できます。
Condition:「どのような状況下でポリシーが適用されるか」という、権限が有効になるための付加的な制約条件を定義します。このフィールドは任意です。
Condition operator:条件の演算子。条件キーの値とリクエスト値をどのように比較するかを定義する「比較方法」です。条件演算子は、条件のタイプによって異なります。
Condition_key:条件のキー。ポリシーの条件が満たされているかを判断するために、リクエストから参照・チェックされる特定の属性を指します。
Condition_value:条件の値。条件キーから取得されたリクエスト値と比較するための、具体的な「基準値」です。
アクション (Action)
下表に、Intelligent Open Search (OpenSearch) で定義されたアクションを示します。以下で各列名について説明します。
アクション:特定のリソースに対して実行可能な操作。ポリシー構文では
Action要素として指定します。API:アクションを具体的に実行するための API。
アクセスレベル:各 API に対して事前定義されているアクセスの種類。有効な値:create、list、get、update、delete。
リソースタイプ:アクションが作用するリソースの種類。リソースレベルでの権限をサポートするかどうかを示すことができます。ポリシーの有効性を確保するため、アクションの対象として適切なリソースを指定する必要があります。
リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーの
Resource要素で対応する ARN を指定してください。リソースレベルの権限を持たない API の場合、「すべてのリソース」と表示され、ポリシーの
Resource要素でアスタリスク (*) でマークされます。
条件キー:サービスによって定義された条件のキー。このキーにより、きめ細やかなアクセス制御が可能になります。この制御は、アクション単体に適用することも、特定のリソースに対するアクションに適用することもできます。Alibaba Cloud は、サービス固有の条件キーに加えて、すべての RAM 統合サービスに適用可能な一連の共通条件キーを提供しています。詳細については、「共通条件キー」をご参照ください。
依存アクション:ある特定のアクションを実行するために、前提として実行が必要となる他のアクション。依存アクションの権限も RAM ユーザーまたは RAM ロールに付与する必要があります。
|
アクション |
API |
アクセスレベル |
リソースタイプ |
条件キー |
依存アクション |
| searchengine:GetDataSourceDeploy | GetDataSourceDeploy | get |
*Instance
|
なし | なし |
| searchengine:CreateConfigFile | CreateConfigFile |
*Instance
|
なし | なし | |
| searchengine:CreateFolder | CreateFolder | create |
*Folder
|
なし | なし |
| searchengine:UpdateSqlInstanceContent | UpdateSqlInstanceContent | update |
*Instance
|
なし | なし |
| searchengine:ModifyPassword | ModifyPassword | update |
*Instance
|
なし | なし |
| searchengine:GetNodeConfig | GetNodeConfig | get |
*Instance
|
なし | なし |
| searchengine:DeleteModel | DeleteModel | delete |
*Instance
|
なし | なし |
| searchengine:ListInstanceSpecs | ListInstanceSpecs | get |
*Instance
|
なし | なし |
| searchengine:ListLogs | ListLogs | list |
*Instance
|
なし | なし |
| searchengine:ModifySearcherReplica | ModifySearcherReplica | update |
*Instance
|
なし | なし |
| searchengine:ForceSwitch | ForceSwitch |
*Instance
|
なし | なし | |
| searchengine:ListDateSourceGenerations | ListDateSourceGenerations | list |
*Instance
|
なし | なし |
| searchengine:DeleteAdvanceConfig | DeleteAdvanceConfig |
*Instance
|
なし | なし | |
| searchengine:ListAdvanceConfigs | ListAdvanceConfigs | list |
*Instance
|
なし | なし |
| searchengine:GetAdvanceConfigFile | GetAdvanceConfigFile | get |
*Instance
|
なし | なし |
| searchengine:DeleteTable | DeleteTable | delete |
*Instance
|
なし | なし |
| searchengine:ModifyDataSourceDeploy | ModifyDataSourceDeploy | update |
*Instance
|
なし | なし |
| searchengine:ModifyAlias | ModifyAlias | update |
*Instance
|
なし | なし |
| searchengine:DeleteConfigDir | DeleteConfigDir |
*Instance
|
なし | なし | |
| searchengine:GetIndex | GetIndex | get |
*Instance
|
なし | なし |
| searchengine:ListDataSources | ListDataSources | list |
*Instance
|
なし | なし |
| searchengine:DeleteIndexVersion | DeleteIndexVersion |
*Instance
|
なし | なし | |
| searchengine:TagResources | TagResources | update |
*All resources
|
なし | なし |
| searchengine:RenameFolder | RenameFolder | update |
*Folder
|
なし | なし |
| searchengine:ModifyAdvanceConfig | ModifyAdvanceConfig | update |
*Instance
|
なし | なし |
| searchengine:GetInstance | GetInstance | get |
*Instance
|
なし | なし |
| searchengine:GetIndexOnlineStrategy | GetIndexOnlineStrategy | get |
*Instance
|
なし | なし |
| searchengine:ListAdvanceConfigDir | ListAdvanceConfigDir | list |
*Instance
|
なし | なし |
| searchengine:ModifyModel | ModifyModel | update |
*Instance
|
なし | なし |
| searchengine:DeletePublicUrl | DeletePublicUrl | delete |
*Instance
|
なし | なし |
| searchengine:GetClusterRunTimeInfo | GetClusterRunTimeInfo | get |
*Instance
|
なし | なし |
| searchengine:StartIndex | StartIndex | update |
*Instance
|
なし | なし |
| searchengine:DeleteIndex | DeleteIndex |
*Instance
|
なし | なし | |
| searchengine:GetTable | GetTable | get |
*Instance
|
なし | なし |
| searchengine:ModifyFile | ModifyFile |
*Instance
|
なし | なし | |
| searchengine:ModifyIndex | ModifyIndex | update |
*Instance
|
なし | なし |
| searchengine:GetDeployGraph | GetDeployGraph | get |
*Instance
|
なし | なし |
| searchengine:CreateModel | CreateModel | create |
*Instance
|
なし | なし |
| searchengine:UpdateSqlInstanceName | UpdateSqlInstanceName | update |
*SqlInstance
|
なし | なし |
| searchengine:ListDataSourceTasks | ListDataSourceTasks | list |
*Instance
|
なし | なし |
| searchengine:StopTask | StopTask |
*Instance
|
なし | なし | |
| searchengine:GetIndexVersion | GetIndexVersion | get |
*Instance
|
なし | なし |
| searchengine:ModifyOnlineConfig | ModifyOnlineConfig |
*Instance
|
なし | なし | |
| searchengine:UpdateInstance | UpdateInstance | update |
*Instance
|
なし | なし |
| searchengine:GetTableGeneration | GetTableGeneration | get |
*Instance
|
なし | なし |
| searchengine:ModifyClusterOfflineConfig | ModifyClusterOfflineConfig | update |
*Instance
|
なし | なし |
| searchengine:CreateTable | CreateTable | create |
*Instance
|
なし | なし |
| searchengine:ListOnlineConfigs | ListOnlineConfigs | list |
*Instance
|
なし | なし |
| searchengine:ListRestQueryResult | ListRestQueryResult | list |
*Instance
|
なし | なし |
| searchengine:ModifyIndexVersion | ModifyIndexVersion |
*Instance
|
なし | なし | |
| searchengine:DeleteFolder | DeleteFolder | delete |
*Folder
|
なし | なし |
| searchengine:ModifyNodeConfig | ModifyNodeConfig |
*Instance
|
なし | なし | |
| searchengine:DeleteAlias | DeleteAlias | delete |
*Instance
|
なし | なし |
| searchengine:ListInstances | ListInstances | get |
*Instance
|
なし | なし |
| searchengine:ListClusters | ListClusters | list |
*Instance
|
なし | なし |
| searchengine:DeleteSqlInstance | DeleteSqlInstance | delete |
*SqlInstance
|
なし | なし |
| searchengine:ListIndexes | ListIndexes | list |
*Instance
|
なし | なし |
| searchengine:ListPausePolicys | ListPausePolicys | list |
*Instance
|
なし | なし |
| searchengine:PublishAdvanceConfig | PublishAdvanceConfig | update |
*Instance
|
なし | なし |
| searchengine:DeleteDataSource | DeleteDataSource |
*Instance
|
なし | なし | |
| searchengine:Reindex | Reindex | update |
*Instance
|
なし | なし |
| searchengine:CreateSqlInstance | CreateSqlInstance | create |
*Instance
|
なし | なし |
| searchengine:ListTableGenerations | ListTableGenerations | list |
*Instance
|
なし | なし |
| searchengine:GetCluster | GetCluster | get |
*Instance
|
なし | なし |
| searchengine:ModifyAdvanceConfigFile | ModifyAdvanceConfigFile |
*Instance
|
なし | なし | |
| searchengine:ListAliases | ListAliases | list |
*Instance
|
なし | なし |
| searchengine:ListVectorQueryResult | ListVectorQueryResult | list |
*Instance
|
なし | なし |
| searchengine:ListTables | ListTables | list |
*Instance
|
なし | なし |
| searchengine:ListSchemas | ListSchemas | list |
*Instance
|
なし | なし |
| searchengine:RemoveCluster | RemoveCluster |
*Instance
|
なし | なし | |
| searchengine:CreateAlias | CreateAlias | create |
*Instance
|
なし | なし |
| searchengine:UpdateSqlInstanceParams | UpdateSqlInstanceParams | update |
*Instance
|
なし | なし |
| searchengine:ListQueryResult | ListQueryResult | get |
*Instance
|
なし | なし |
| searchengine:TransformPlan | TransformPlan | create |
*All resources
|
なし | なし |
| searchengine:BuildIndex | BuildIndex | update |
*Instance
|
なし | なし |
| searchengine:CreateDataSource | CreateDataSource | create |
*Instance
|
なし | なし |
| searchengine:ModifyClusterOnlineConfig | ModifyClusterOnlineConfig |
*Instance
|
なし | なし | |
| searchengine:ModifyTable | ModifyTable | update |
*Instance
|
なし | なし |
| searchengine:CreateCluster | CreateCluster | create |
*Instance
|
なし | なし |
| searchengine:ListTagResources | ListTagResources | list |
*All resources
|
なし | なし |
| searchengine:ListIndexRecoverRecords | ListIndexRecoverRecords | list |
*Instance
|
なし | なし |
| searchengine:ListClusterTasks | ListClusterTasks | list |
*Instance
|
なし | なし |
| searchengine:DebugModel | DebugModel | get |
*Instance
|
なし | なし |
| searchengine:RecoverIndex | RecoverIndex | update |
*Instance
|
なし | なし |
| searchengine:DeleteConfigFile | DeleteConfigFile |
*Instance
|
なし | なし | |
| searchengine:ListClusterNames | ListClusterNames | list |
*Instance
|
なし | なし |
| searchengine:UntagResources | UntagResources | delete |
*All resources
|
なし | なし |
| searchengine:PublishIndexVersion | PublishIndexVersion |
*Instance
|
なし | なし | |
| searchengine:ListDatabases | ListDatabases | list |
*Instance
|
なし | なし |
| searchengine:ModifyIndexPartition | ModifyIndexPartition |
*Instance
|
なし | なし | |
| searchengine:ListDataSourceSchemas | ListDataSourceSchemas | list |
*Instance
|
なし | なし |
| searchengine:CreateInstance | CreateInstance | create |
*Instance
|
なし | なし |
| searchengine:ModifyClusterDesc | ModifyClusterDesc |
*Instance
|
なし | なし | |
| searchengine:ListTasks | ListTasks | none |
*Instance
|
なし | なし |
| searchengine:ExecuteSqlInstance | ExecuteSqlInstance | create |
*Instance
|
なし | なし |
| searchengine:GetSqlInstance | GetSqlInstance | get |
*Instance
|
なし | なし |
| searchengine:CreatePublicUrl | CreatePublicUrl | create |
*Instance
|
なし | なし |
| searchengine:GetModel | GetModel | get |
*Instance
|
なし | なし |
| searchengine:ModifyPublicUrlIpList | ModifyPublicUrlIpList | update |
*Instance
|
なし | なし |
| searchengine:GetDataSource | GetDataSource | get |
*Instance
|
なし | なし |
| searchengine:GetAdvanceConfig | GetAdvanceConfig | get |
*Instance
|
なし | なし |
| searchengine:CloneSqlInstance | CloneSqlInstance | create |
*Instance
|
なし | なし |
| searchengine:GetFile | GetFile | get |
*Instance
|
なし | なし |
| searchengine:PushDocuments | PushDocuments |
*Instance
|
なし | なし | |
| searchengine:ListModels | ListModels | list |
*Instance
|
なし | なし |
| searchengine:GetDatabaseSchema | GetDatabaseSchema | get |
*Instance
|
なし | なし |
| searchengine:ModifyPausePolicy | ModifyPausePolicy | update |
*Instance
|
なし | なし |
| searchengine:StopIndex | StopIndex | update |
*Instance
|
なし | なし |
| searchengine:ModifyIndexOnlineStrategy | ModifyIndexOnlineStrategy |
*Instance
|
なし | なし | |
| searchengine:CreateIndex | CreateIndex | create |
*Instance
|
なし | なし |
| searchengine:ListPostQueryResult | ListPostQueryResult | list |
*Instance
|
なし | なし |
| searchengine:ChangeResourceGroup | ChangeResourceGroup | update |
*Instance
|
なし | なし |
| searchengine:CreateConfigDir | CreateConfigDir |
*Instance
|
なし | なし | |
| searchengine:DeleteInstance | DeleteInstance | delete |
*Instance
|
なし | なし |
リソース (Resource)
下表に、Intelligent Open Search (OpenSearch) で定義されたリソースを示します。ポリシーステートメントのResource要素で指定することで、特定のアクションの適用対象を設定できます。各リソースは対応する ARN を持ち、一意的に識別されます。ARN はacs:{#ramcode}:{#regionId}:{#accountId}:{#resourceType}形式で、構成要素は以下のとおりです。
acs:Alibaba Cloud Service の頭文字で、Alibaba Cloud のパブリッククラウドを指します。{#ramcode}:RAM における具体的な Alibaba Cloud サービスの識別コード。{#regionId}:リージョン ID。アスタリスク (*) に設定した場合、リソースがすべてのリージョンに適用することを示します。{#accountId}:Alibaba Cloud アカウントの ID。アスタリスク (*) に設定した場合、リソースがすべての Alibaba Cloud アカウントに適用することを示します。{#resourceType}:具体的な Alibaba Cloud サービスによって定義されたリソースの識別子で、ファイルパスに似た階層構造をサポートしています。アスタリスク (*) に設定した場合、ステートメントがすべてのリソースに適用することを示します。
リソースタイプ |
ARN |
| Instance |
|
| Folder |
|
| SqlInstance |
|
条件 (Condition)
Intelligent Open Search (OpenSearch) では、プロダクトレベルの条件キーは定義されていません。その代わりに、Alibaba Cloud 共通条件キーを使用してアクセスを制御できます。詳細については、「共通条件キー」をご参照ください。
カスタム RAM ポリシーの作成方法
カスタムポリシーを作成し、RAM ユーザー、RAM ユーザーグループ、または RAM ロールに付与できます。詳細については、以下をご参照ください。