Elasticsearch コンソールでオブジェクトストレージサービス(OSS)に保存されているプラグインまたは辞書ファイルをアップロードする場合、ファイルの OSS URL を使用してファイルをアップロードできます。このプロセスは、Alibaba Cloud Elasticsearch の標準サービスロールによって異なります。このロールは、Elasticsearch が OSS URL にアクセスしてファイルをロードすることを承認します。
概要
標準サービスロールとは、信頼エンティティが Alibaba Cloud サービスである RAM ロールです。標準サービスロールは、Alibaba Cloud サービス間のアクセスを承認するために使用されます。詳細については、「RAM ロールの概要」をご参照ください。
辞書ファイルの OSS URL を使用して辞書をアップロードするときに標準サービスロールが存在しない場合は、標準サービスロールを作成し、必要なポリシーをロールにアタッチする必要があります。このようにして、Elasticsearch はこのロールを引き受けて OSS URL 内のファイルにアクセスし、ファイルに基づいて辞書を更新できます。ファイルを保存する OSS バケットの読み取り権限をパブリック読み取りに変更する必要はもうありません。これにより、データセキュリティが確保されます。
次の説明は、ロールに関する詳細情報を提供します。
信頼できるサービス名: elasticsearch.aliyuncs.com
ロール名: AliyunElasticsearchAccessingOSSRole
ポリシー名: AliyunElasticsearchAccessingOSSRolePolicy
ポリシードキュメント:
{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetObjectMetadata", "oss:GetObjectMeta" ], "Resource": "*", "Effect": "Allow" } ] }
標準サービスロールの削除
[RAM コンソール] で標準サービスロールを削除できます。詳細については、「RAM ロールの削除」をご参照ください。
標準サービスロールが削除されると、ロールに依存する機能は使用できなくなります。注意して進めてください。
標準サービスロールの権限を制限する例
カスタム RAM ポリシーを作成し、ポリシーでよりきめ細かい権限を定義し、そのポリシーを標準サービスロールにアタッチして、ロールの権限を制限できます。
バケットにタグを追加します。
バケットにタグを追加し、タグに基づいてバケットの権限を管理できます。詳細については、「バケットタグの管理」をご参照ください。
[OSS コンソール] にログインします。
左側のナビゲーションペインで、バケットリスト をクリックします。[バケット] ページで、目的のバケットを見つけてクリックします。
左側のナビゲーションツリーで、 を選択します。
バケットタグ ページで、タグの作成 をクリックします。
バケットにタグを追加します。
カスタム RAM ポリシーを作成します。詳細については、「カスタムポリシーの作成」トピックの「JSON タブでカスタムポリシーを作成する」セクションをご参照ください。
ポリシーでは、Resource 要素でバケットを定義するか、Condition 要素でタグを指定できます。次のコードは例を示しています。
{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetObjectMetadata", "oss:GetObjectMeta" ], "Resource": [ "acs:oss:*:193248xxxxxxx:*" // バケットARNを指定 ], "Effect": "Allow", "Condition": { "StingEquals": { // StringEqualsが正しいです "oss:BuckteTag/key1":"value1" // oss:BucketTagが正しいです } } } ] }
AliyunElasticsearchAccessingOSSRole ロールにカスタム RAM ポリシーをアタッチします。
FAQ
Q: UpdateDict、UpdateHotIkDicts、UpdateSynonymsDicts、UpdateAliwsDict などの API オペレーションを呼び出すときに、ElasticsearchNoPermissionForCurrentBucket
エラーコードが返されるのはなぜですか?
A: V7.16、V8.5、V8.9 などの Elasticsearch クラスタのクラウドネイティブ制御アーキテクチャにデプロイされた Elasticsearch クラスタの場合、Elasticsearch の標準サービスロールのみを使用して、クラスタが OSS に保存されている辞書ファイルを読み取れるようにすることができます。クラスタはパブリック読み取りバケットにアクセスできません。[認証ページ] で認証を完了する必要があります。標準サービスロールは、OSS ベースのシノニム辞書の更新、IK 辞書の標準更新とローリング更新、および analysis-aliws プラグインの辞書更新などのシナリオで必要です。