カスタムポリシーを使用すると、組み込みのシステムポリシーよりもきめ細かな権限コントロールが可能になります。 特定のクラスターへのアクセスを許可する場合、CloudMonitor やタグの権限を含める場合、または RAM ユーザーが API レベルで実行できる操作を制限する場合に使用します。
カスタムポリシーを使用する状況
以下のシステムポリシーは、一般的な権限付与シナリオをカバーしています。 これらがお客様のニーズに合わない場合は、カスタムポリシーを作成してください。
| システムポリシー | 許可される権限 | 対象 |
|---|---|---|
AliyunElasticsearchReadOnlyAccess | Elasticsearch または Logstash クラスターへの読み取り専用アクセス | 読み取り専用ユーザー |
AliyunElasticsearchFullAccess | Elasticsearch クラスター、Logstash クラスター、および Beats シッパーへの完全な管理アクセス | 管理者 |
システムポリシーには、CloudMonitor またはタグの権限は含まれません。 これらの権限を付与するには、カスタムポリシーを作成して別途アタッチする必要があります。
カスタムポリシーはアカウントレベルでのみ適用され、リソースグループレベルでは適用されません。 コンソールで RAM ユーザーに特定のクラスターのみを表示するには、リソースグループを使用して関連するクラスター権限を付与します。 詳細については、「リソースグループを使用した特定クラスターへの権限付与」をご参照ください。
前提条件
開始する前に、以下を確認してください。
ポリシーの構造と構文を十分に理解していること。 詳細については、「ポリシーの構造と構文」をご参照ください。
クイックリファレンス:ポリシー例の選択
| シナリオ | ポリシーの例 |
|---|---|
| RAM ユーザーにすべての Elasticsearch クラスターへの完全な管理者アクセスを許可する | 管理者向けのポリシー |
| RAM ユーザーに特定のクラスターへのアクセス権を付与する (CloudMonitor とタグの権限を含む) | 特定クラスターの操作権限に関するポリシー |
| RAM ユーザーに特定の Elasticsearch API オペレーションを呼び出す権限を付与する | API オペレーションに関するポリシー |
カスタムポリシーの作成
「JSON タブでのカスタムポリシーの作成」の手順に従い、要件に基づいてポリシードキュメントを入力します。 既存のシステムポリシーをインポートして、それを基に変更することもできます。
例: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 が表示されます |
<yourInstanceId> | アクセスを許可する Elasticsearch クラスターの ID | 「クラスターの基本情報の表示 |
管理者向けのポリシー
アカウント <yourAccountId> 配下にあるすべての Elasticsearch クラスターに対する完全な操作権限を RAM ユーザーに付与します。
{
"Statement": [
{
"Action": [
"elasticsearch:*"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/<yourInstanceId>"
},
{
"Action": [
"cms:DescribeActiveMetricRuleList",
"cms:ListAlarm",
"cms:QueryMetricList"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"elasticsearch:ListTags"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:tags/*"
},
{
"Action": [
"elasticsearch:ListInstance",
"elasticsearch:ListSnapshotReposByInstanceId"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/*"
},
{
"Action": [
"elasticsearch:ListLogstash"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:logstashes/*"
},
{
"Action": [
"elasticsearch:ListCollectors"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:collectors/*"
}
],
"Version": "1"
}特定クラスターの操作権限に関するポリシー
アカウント <yourAccountId> 配下で、RAM ユーザーに以下の権限を付与します。
クラスター
<yourInstanceId>に対するすべての Elasticsearch 操作CloudMonitor の権限 (Elasticsearch コンソールのクラスター管理ページに高度なモニタリングとアラート、CloudMonitor、およびタグのインターフェイスが埋め込まれているため必須)
すべてのクラスターを表示する権限
クラスター上のすべてのタグを表示する権限
Beats シッパーを表示する権限
{
"Statement": [
{
"Action": [
"elasticsearch:*"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/<yourInstanceId>"
},
{
"Action": [
"cms:DescribeActiveMetricRuleList",
"cms:ListAlarm",
"cms:QueryMetricList"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"elasticsearch:ListTags"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:tags/*"
},
{
"Action": [
"elasticsearch:ListInstance",
"elasticsearch:ListSnapshotReposByInstanceId"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/*"
},
{
"Action": [
"elasticsearch:ListLogstash"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:logstashes/*"
},
{
"Action": [
"elasticsearch:ListCollectors"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:collectors/*"
}
],
"Version": "1"
}API オペレーションに関するポリシー
以下の表は、Elasticsearch 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 |
ポリシー要素のリファレンス
ポリシードキュメントを作成またはレビューする際に、このリファレンスを使用してください。
Action
ポリシーが許可または拒否する操作を指定します。
| Action | 説明 |
|---|---|
elasticsearch:* | すべての Elasticsearch 操作。 高度なモニタリングとアラート、CloudMonitor、またはタグの権限は含まれません。これらは別途指定する必要があります。 |
elasticsearch:ListInstance | Elasticsearch クラスターのクエリ。 |
elasticsearch:ListSnapshotReposByInstanceId | 共有 Object Storage Service (OSS) リポジトリのクエリ。 |
elasticsearch:ListTags | Elasticsearch クラスター上のすべてのタグのクエリ。 |
elasticsearch:ListCollectors | Beats シッパーのクエリ。 |
elasticsearch:ListLogstash | Logstash クラスターのクエリ。 |
elasticsearch:DescribeVpcs、 elasticsearch:DescribeVSwitches | Alibaba Cloud アカウントに属する VPC と vSwitch へのアクセス。 RAM ユーザーがリソース購入時に VPC または vSwitch を選択する必要がある場合に必須です。 |
cms:DescribeActiveMetricRuleList | アカウント内で CloudMonitor が有効化されているサービスのクエリ。 |
cms:ListAlarm | すべてまたは特定のアラートルールのクエリ。 |
cms:QueryMetricList | 特定のサービスのインスタンスまたはクラスターのモニタリングデータを一定期間分照会する。 |
bss:PayOrder | 注文の支払い。 RAM ユーザーにリソースの購入を許可する場合に必須です。これがないと、チェックアウト時にシステムが権限不足エラーを返します。 |
Effect
ポリシーステートメントが指定された操作を許可するか拒否するかを決定します。
| 値 | 説明 |
|---|---|
Allow | RAM ユーザーは Action 要素内の操作を実行できます。 |
Deny | RAM ユーザーは Action 要素内の操作を実行できません。 |
Resource
ポリシーが適用されるリソースを指定します。 サポートされている権限付与オブジェクトの完全なリストについては、「権限付与でサポートされている Elasticsearch オブジェクト」をご参照ください。
| 値 | 説明 |
|---|---|
* | すべてのクラスター。 |
<yourInstanceId> | 特定のクラスター。 実際のクラスター ID に置き換えてください。 「クラスターの基本情報の表示」をご参照ください。 |
次のステップ
カスタムポリシーを作成した後、RAM コンソールまたは RAM SDK を使用して RAM ユーザーにアタッチします。 詳細については、「RAM ユーザーへの権限付与」をご参照ください。