在外掛程式、詞典等上傳情境中,如果您的原始檔案在OSS中,您可以按照控制台引導使用提供OSS地址的方式完成檔案的上傳。該過程依賴普通服務角色,需要您授權Elasticsearch(簡稱ES)平台訪問您提供的OSS路徑的許可權,從而載入您需要上傳的檔案。
ES普通服務角色介紹
普通服務角色(Service Role)是一種可信實體為阿里雲服務的RAM角色,旨在解決跨雲端服務的授權訪問問題。更多資訊,請參見RAM角色概覽。
在您根據控制台指引,使用提供OSS路徑的方式更新詞典時,如果不存在具有執行任務許可權的角色,需要您主動授權,確認建立普通服務角色。ES通過扮演該角色訪問您提供的OSS路徑中的檔案,更新ES執行個體中相應類型的詞典,且無需您再將OSS Bucket的讀許可權修改為公用讀取,資料安全更有保障。
該角色的相關說明如下:
授權服務名稱:elasticsearch.aliyuncs.com
角色名稱:AliyunElasticsearchAccessingOSSRole
角色權限原則名稱:AliyunElasticsearchAccessingOSSRolePolicy
角色權限原則內容
{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetObjectMetadata", "oss:GetObjectMeta" ], "Resource": "*", "Effect": "Allow" } ] }
刪除普通服務角色
普通服務角色您可以在RAM控制台手動刪除。具體操作,請參見刪除RAM角色。
刪除普通服務角色後,依賴該角色的對應功能將無法正常使用,請謹慎刪除。
服務角色許可權收斂樣本
普通服務角色的授權策略,還可進行二次幹預和收斂。
設定Bucket標籤
利用Bucket標籤來管理OSS儲存空間的許可權。更多資訊,請參見管理儲存空間標籤。
登入OSS管理主控台。
單擊Bucket 列表,然後單擊目標Bucket名稱。
在左側導覽列,選擇 。
在Bucket 標籤頁面,單擊建立標籤。
設定Bucket標籤
建立RAM策略。具體操作,請參見通過指令碼編輯模式建立自訂權限原則。
可限制Bucket(修改Resource),或者指定標籤下的Bucket(修改Condition)訪問。指令碼樣本如下:
{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetObjectMetadata", "oss:GetObjectMeta" ], "Resource": [ "acs:oss:*:193248xxxxxxx:*" ], "Effect": "Allow", "Condition": { "StingEquals": { "oss:BuckteTag/key1":"value1" } } } ] }
編輯 AliyunElasticsearchAccessingOSSRole 許可權,新增上一步建立的自訂策略。
常見問題
Q:使用UpdateDict、UpdateHotIkDicts、UpdateSynonymsDicts、UpdateAliwsDict等OpenAPI請求出現錯誤碼ElasticsearchNoPermissionForCurrentBucket
?
A:雲原生管控執行個體(如7.16、8.5、8.9等版本執行個體),僅支援通過阿里雲普通服務角色授權實現讀取OSS內的詞典檔案功能,不支援直接存取公用讀取的OSS地址,請及時進入授權頁完成授權。影響的情境包括以OSS方式更新同義字、IK詞典冷更新和熱更新、aliws詞庫更新等。