Alibaba Cloud Elasticsearch によって提供されるシステムポリシーが要件を満たしていない場合は、カスタムポリシーを作成できます。カスタムポリシーを使用すると、システムポリシーよりもきめ細かい権限管理が可能になります。このトピックでは、カスタムポリシーの作成方法とポリシーの例について説明します。
背景情報
次の表に、Alibaba Cloud Elasticsearch によって提供されるシステムポリシーを示します。
システムポリシー | 説明 |
AliyunElasticsearchReadOnlyAccess | Elasticsearch クラスターまたは Logstash クラスターに対する読み取り専用権限を付与します。このポリシーは、読み取り専用ユーザーにアタッチできます。 |
AliyunElasticsearchFullAccess | Elasticsearch クラスター、Logstash クラスター、または Beats シッパーに対する管理権限を付与します。このポリシーは、管理者にアタッチできます。 |
上記のポリシーには、Elasticsearch クラスター、Logstash クラスター、または Beats シッパーに対する権限のみが含まれています。ポリシーには、CloudMonitor またはタグに対する権限は含まれていません。 CloudMonitor またはタグに対する権限を付与する場合は、関連するカスタムポリシーを作成してアタッチする必要があります。詳細については、特定のクラスターに対する操作権限のポリシーをご参照ください。
前提条件
ポリシーの構造と構文を理解している必要があります。詳細については、ポリシーの構造と構文をご参照ください。
注意事項
カスタムポリシーはアカウントレベルでのみ有効になり、リソースグループレベルでは有効になりません。コンソールに RAM ユーザーに対して特定のクラスターのみを表示する場合は、リソースグループを使用して、クラスターに対する関連する権限を RAM ユーザーに付与できます。詳細については、リソースグループを使用してクラスターに対する権限を付与するをご参照ください。
手順
詳細については、JSON タブでカスタムポリシーを作成するをご参照ください。ビジネス要件に基づいてポリシードキュメントを入力できます。また、プロンプトに従って既存のシステムポリシーをインポートし、ポリシーを変更して、変更したポリシーをカスタムポリシーとして使用することもできます。
例:
Alibaba Cloud アカウントに属する仮想プライベートクラウド(VPC)にアクセスする権限
"elasticsearch:DescribeVpcs","elasticsearch:DescribeVSwitches" // VPC と vSwitch を取得するための権限 { "Version": "1", "Statement": [ { "Action": [ "elasticsearch:DescribeVpcs", "elasticsearch:DescribeVSwitches" ], "Resource": "*", "Effect": "Allow" } ] }注文の支払い権限
{ // 注文の支払い権限 "Version": "1", "Statement": [ { "Action": [ "bss:PayOrder" ], "Resource": "*", "Effect": "Allow" } ] }
詳細については、ポリシーの例をご参照ください。
ポリシーの例
このセクションで提供されているサンプルコードを使用する前に、次の情報を実際の情報に置き換える必要があります。
<yourAccountId>: Alibaba Cloud アカウント ID に置き換えます。ワイルドカード(
*)はサポートされていません。Alibaba Cloud アカウント ID を取得するには、次の操作を実行します。Alibaba Cloud 管理コンソールにログオンし、右上隅のプロフィール画像にポインターを移動します。その後、[alibaba Cloud アカウント ID] を表示できます。<yourInstanceId>: 権限を付与する Elasticsearch クラスターの ID に置き換えます。ワイルドカード(
*)はサポートされていません。 ID の取得方法の詳細については、クラスターの基本情報を表示するをご参照ください。
管理者向けのポリシー
この例では、<yourAccountId> で示される Alibaba Cloud アカウントの RAM ユーザーに、すべての Elasticsearch クラスターに対するすべての操作権限が付与されます。
{ // 国際リージョンおよびパートナー向けの管理者ポリシー
"Statement": [
{ // Elasticsearch に対するすべての操作権限を付与
"Action": [
"elasticsearch:*"
],
"Effect": "Allow",
"Resource": "*"
},
{ // CloudMonitor に対するすべての操作権限を付与
"Action": [
"cms:*"
],
"Effect": "Allow",
"Resource": "*"
},
{ // 注文の支払い権限を付与
"Action": "bss:PayOrder",
"Effect": "Allow",
"Resource": "*"
},
{ // サービスリンクロールを作成するための権限を付与
"Action": "ram:CreateServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": [
"collector.elasticsearch.aliyuncs.com"
]
}
}
}
],
"Version": "1"
}特定のクラスターに対する操作権限のポリシー
この例では、<yourAccountId> で示される Alibaba Cloud アカウントの RAM ユーザーに、次の権限が付与されます。
特定のクラスターに対するすべての Elasticsearch 関連操作を実行する権限
クラスターを表示する権限
クラスターに追加されているすべてのタグを表示する権限
シッパーを表示する権限
Beats、Advanced Monitoring and Alerting、Tag など、一部のサービスを呼び出すために使用される外部インターフェースは、Elasticsearch コンソールのクラスター管理ページに統合されています。したがって、特定のクラスターに対する権限を付与する場合は、次のサンプルポリシードキュメントを参照する必要があります。
{ // 国際リージョンおよびパートナー向けの特定のクラスターに対する操作権限のポリシー
"Statement": [
{ // 特定のクラスターに対するすべての Elasticsearch 操作権限を付与
"Action": [
"elasticsearch:*"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/<yourInstanceId>"
},
{ // CloudMonitor に対する権限を付与
"Action": [
"cms:DescribeActiveMetricRuleList", // CloudMonitor が有効になっているサービスを照会する権限
"cms:ListAlarm", // すべてまたは特定のアラートルールを照会する権限
"cms:QueryMetricList" // 一定期間内の特定のサービスのインスタンスまたはクラスターの監視データを照会する権限
],
"Effect": "Allow",
"Resource": "*"
},
{ // クラスターに追加されているすべてのタグを表示する権限を付与
"Action": [
"elasticsearch:ListTags"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:tags/*"
},
{ // Elasticsearch クラスターと共有 OSS リポジトリを照会する権限を付与
"Action": [
"elasticsearch:ListInstance", // Elasticsearch クラスターを照会する権限
"elasticsearch:ListSnapshotReposByInstanceId" // 共有 OSS リポジトリを照会する権限
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/*"
},
{ // Logstash クラスターを照会する権限を付与
"Action": [
"elasticsearch:ListLogstash"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:logstashes/*"
},
{ // Beats シッパーを照会する権限を付与
"Action": [
"elasticsearch:ListCollectors"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:collectors/*"
}
],
"Version": "1"
}Action | 説明 |
| CloudMonitor に対する権限。
|
| 注文の支払い権限。 RAM ユーザーにこの権限が付与されると、RAM ユーザーとしてリソースの購入注文の支払いができます。 |
| Alibaba Cloud アカウントに属する VPC と vSwitch にアクセスする権限。 RAM ユーザーにこれらの権限が付与されると、RAM ユーザーとしてリソースを購入する際に、Alibaba Cloud アカウントに属する VPC と vSwitch を選択できます。 重要 RAM ユーザーにリソースの購入を承認する場合は、Action 要素に |
| Elasticsearch クラスターに対するすべての操作権限。 RAM ユーザーにこれらの権限が付与されると、RAM ユーザーとしてすべてまたは特定のクラスターに対する操作を実行できます。 重要
|
| Elasticsearch クラスターに追加されているすべてのタグを照会する権限。 RAM ユーザーにこの権限が付与されると、RAM ユーザーとして Elasticsearch クラスターに追加されているすべてのタグを表示できます。 |
|
|
| Beats シッパーを照会する権限。 RAM ユーザーにこの権限が付与されると、RAM ユーザーとして Elasticsearch コンソールで作成されたすべての Beats シッパーを表示できます。 |
| Logstash クラスターを照会する権限。 RAM ユーザーにこの権限が付与されると、RAM ユーザーとして [Logstash クラスター] ページで関連リージョンのすべての Logstash クラスターを表示できます。 |
Effect | 説明 |
Allow | Action 要素で指定された操作を実行するために RAM ユーザーを使用できることを示します。 |
Deny | Action 要素で指定された操作を実行するために RAM ユーザーを使用できないことを示します。 |
Resource | 説明 |
* | すべてのクラスターを示します。 |
<yourInstanceId> | 特定のクラスターを示します。 ID は、権限を付与するクラスターの ID に置き換える必要があります。 ID の取得方法の詳細については、クラスターの基本情報を表示するをご参照ください。 |
API 操作のポリシー
次の表に、API 操作を呼び出す権限を付与するために使用するポリシーの Resource 要素と Action 要素に指定する必要があるオブジェクトを示します。
メソッド | URI | Resource | Action |
GET | /instances | instances/* | ListInstance |
POST | /instances | instances/* | CreateInstance |
GET | /instances/instanceId | instances/instanceId | DescribeInstance |
DELETE | /instances/instanceId | instances/instanceId | DeleteInstance |
POST | /instances/instanceId/actions/restart | instances/instanceId | RestartInstance |
PUT | /instances/instanceId | instances/instanceId | UpdateInstance |
次のステップ
カスタムポリシーを作成したら、Alibaba Cloud アカウントを使用して、RAM コンソールまたは RAM SDK を使用して、ポリシーを RAM ユーザーにアタッチします。詳細については、RAM ユーザーに権限を付与するをご参照ください。