You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以只读权限在OpenSearch中成功清除Scroll上下文?

OpenSearch Scroll API 只读权限下清理滚动上下文的权限问题

问题详情

我需要通过Scroll API以只读权限从OpenSearch索引获取文档,先后尝试给角色配置以下权限:

indices:data/read/scroll/clear
indices:data/read/scroll
read

以及仅配置:

read

目前能正常获取目标文档,但执行滚动上下文清理操作时触发403权限错误,不想因未清理资源产生警告。使用版本:opensearch-py==2.2.0

执行代码

调用清理滚动上下文的Python代码:

self.client.clear_scroll(scroll_id=scroll_ids_str)

OpenSearch SDK底层发起的请求逻辑:

return self.transport.perform_request(
            "DELETE", "/_search/scroll", params=params, headers=headers, body=body
        )

权限错误信息

AuthorizationException(403, 'security_exception', {'error': {'root_cause': [
  {'type': 'security_exception', 'reason': 'no permissions for [indices:data/read/scroll/clear] and User [name=arn:aws:iam::<AWSID>:user/<NAME>, backend_roles=[], requestedTenant=null]'}], 
 'type': 'security_exception', 'reason': 'no permissions for [indices:data/read/scroll/clear] and User [name=arn:aws:iam::<AWSID>:user/<NAME>, backend_roles=[], requestedTenant=null]'}, 'status': 403})

解决方法

  • 明确权限的索引覆盖范围:indices:data/read/scroll/clear权限需要指定正确的索引模式,若要清理全局滚动上下文,需配置为indices:data/read/scroll/clear:*;若仅针对特定索引,可设置为indices:data/read/scroll/clear:your-target-index-*,避免权限范围过窄。
  • 确认权限生效状态:权限配置完成后,确保角色已正确关联到目标用户,部分环境需手动触发OpenSearch安全插件的权限刷新,保证新权限生效。
  • AWS托管OpenSearch额外配置:如果使用AWS托管服务,除了OpenSearch内部角色权限,还需在IAM策略中添加允许es:ESHttpDelete动作访问/_search/scroll资源的规则,示例策略:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "es:ESHttpDelete",
                "Resource": "arn:aws:es:<你的区域>:<AWS账号ID>:domain/<你的域名>/_search/scroll"
            }
        ]
    }
    

内容的提问来源于stack exchange,提问作者Rgkpdx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:25:55