授予 Lambda 对 Opensearch 的访问权限 [IAM 和配置域级别访问策略] [重复]
Posted
技术标签:
【中文标题】授予 Lambda 对 Opensearch 的访问权限 [IAM 和配置域级别访问策略] [重复]【英文标题】:Give access Lambda to Opensearch [IAM & Configure domain level access policy] [duplicate] 【发布时间】:2022-01-22 04:55:13 【问题描述】:我需要您帮助我制定正确的政策。我正在使用 ACloud Guru AWS Sandbox,并且我正在尝试使用 elasticsearch lib 来在 lambda 上运行 python 代码。但是对于 Opensearch,只能使用“配置域级别访问策略”。我通过策略为我的家庭 IP 开放了访问权限:
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Principal":
"AWS": "*"
,
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:yyyyyyyyyyy:domain/test-es-1/*",
"Condition":
"IpAddress":
"aws:SourceIp": "xx.xx.xxx.xx/32"
]
它对我来说很好,现在我试图在 Lambda 上运行一些简单的代码并得到一个错误
"errorMessage": "AuthorizationException(403, '"Message":"用户:匿名无权执行:es:ESHttpPut"')","errorType": "AuthorizationException",
我决定打开区域 us-east-1 并添加部分:
"Effect": "Allow",
"Action": "es:*",
"Principal":
"AWS": "*"
,
"Resource": "arn:aws:es:us-east-1:yyyyyyyyyyy:domain/test-es-1/*",
"Condition":
"StringEquals":
"aws:RequestedRegion": "us-east-1"
但我无法保存策略,出现错误:
UpdateDomainConfig: "message":"对您的域应用限制性访问策略"
也许我的方向错误,有人可以帮助我解决问题或推动我朝着正确的方向前进。
提前谢谢你, BR 阿列克谢。
【问题讨论】:
这能回答你的问题吗? Deployment of servless app fails - Enable fine-grained access control or apply a restrictive access policy to your domain 【参考方案1】:从Deployment of servless app fails - Enable fine-grained access control or apply a restrictive access policy to your domain 中提取,AWS 似乎认为您的方法过于公开。请检查上一篇文章/答案中列出的替代方法。如果您想知道如何使某个方法适用于您的用例,请告诉我,我们可以深入研究!
【讨论】:
以上是关于授予 Lambda 对 Opensearch 的访问权限 [IAM 和配置域级别访问策略] [重复]的主要内容,如果未能解决你的问题,请参考以下文章
AWS OpenSearch 客户端错误:无法验证服务器是 Elasticsearch
Axios 对 Opensearch/Elasticsearch 的请求
如何授予 API Gateway 通过 CloudFormation 调用 lambda 函数的权限?