プラグインまたは辞書のソースファイルを Object Storage Service (OSS) に保存している場合、Elasticsearch (ES) コンソールで OSS アドレスを指定してアップロードできます。この操作を行うには、サービスロールを通じて、指定された OSS パスへのアクセス権を ES に付与する必要があります。
ES サービスロールの概要
サービスロールは、Alibaba Cloud サービスを信頼されたエンティティとする、Resource Access Management (RAM) ロールの一種です。異なる Alibaba Cloud サービス間のアクセスを許可するために設計されています。詳細については、「RAM ロールの概要」をご参照ください。
コンソールで OSS パスを指定して辞書を更新する際、必要な権限を持つロールが存在しない場合、サービスロールの作成を承認する必要があります。ES はこのロールを引き受けて、指定された OSS パスにあるファイルにアクセスし、ES インスタンス内の辞書を更新します。この際、OSS バケットをパブリック読み取りに設定する必要はありません。
このロールの詳細は次のとおりです。
-
サービス名:elasticsearch.aliyuncs.com
-
ロール名:AliyunElasticsearchAccessingOSSRole
-
アクセスポリシー名:AliyunElasticsearchAccessingOSSRolePolicy
-
ロールポリシードキュメント
{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetObjectMetadata", "oss:GetObjectMeta" ], "Resource": "*", "Effect": "Allow" } ] }
サービスロールの削除
サービスロールを削除するには、Resource Access Management (RAM) コンソールにアクセスしてください。詳細については、「RAM ロールの削除」をご参照ください。
サービスロールを削除すると、このロールに依存する機能が正しく動作しなくなります。慎重に実行してください。
例:サービスロール権限の制限
サービスロールがアクセスできる範囲を制限するには、次のように承認ポリシーをカスタマイズします。
-
バケットタグの設定
バケットタグを使用して、OSS バケットの権限を管理します。詳細については、「バケットタグの管理」をご参照ください。
OSSコンソールにログインします。
左側のナビゲーションウィンドウで、バケット をクリックします。 [バケット] ページで、目的のバケットを見つけてクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
バケットタグ ページで、タグの作成 をクリックします。
-
バケットタグを設定します。
タグキーを[Elasticsearch]に、タグ値を[test]に設定し、[設定]をクリックします。
-
RAM ポリシーを作成します。詳細については、「スクリプトモードでカスタムポリシーを作成する」をご参照ください。
Resource要素を変更して特定のバケットへのアクセスを制限するか、Condition要素を変更して特定のタグを持つバケットへのアクセスを制限します。例:{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetObjectMetadata", "oss:GetObjectMeta" ], "Resource": [ "acs:oss:*:193248xxxxxxx:*" ], "Effect": "Allow", "Condition": { "StringEquals": { "oss:BucketTag/Elasticsearch":"test" } } } ] } -
[AliyunElasticsearchAccessingOSSRole] の権限を編集し、前の手順で作成したカスタムポリシーを追加できます。
よくある質問
Q:UpdateDict、UpdateHotIkDicts、UpdateSynonymsDicts、または UpdateAliwsDict などの OpenAPI リクエストを実行すると、エラーコード ElasticsearchNoPermissionForCurrentBucket が表示されるのはなぜですか。
A:クラウドネイティブコントロールインスタンス (バージョン 7.16、8.5、8.9) は、Alibaba Cloud サービスロールを使用してのみ、OSS から辞書ファイルを読み取ることができます。パブリック読み取りの OSS アドレスへの直接アクセスはサポートされていません。承認ページにアクセスして、必要な権限を付与してください。これは、シノニムの更新、IK 辞書のコールド/ホットアップデート、および ali-ws 辞書の OSS からの更新に適用されます。