【发布时间】:2020-08-27 11:32:38
【问题描述】:
我正在使用本地 AWS 凭证成功访问 AWS ElasticSearch 服务。但是,当从 lambda 尝试时,我得到以下信息:
用户: arn:aws:sts::XXXXXXXXXX:assumed-role/dudeman-workouts-dev-graphqlLambdaServiceRoleXXXXXX-XXXXXXXXX/dudeman-workouts-dev-graphqlLambdaXXXXXXXXX-XXXXXXXXXX 无权执行:es:ESHttpPost
这让我很困惑,因为 lambda 承担的角色具有以下内联策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:XXXXXXXXXXXX:domain/general-elasticsearch",
"Effect": "Allow"
}
]
}
这是关于集群本身的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXXX:root"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:XXXXXXXXXXX:domain/general-elasticsearch/*"
}
]
}
政策模拟器说一切都很好:
【问题讨论】:
-
ES集群上的策略是什么样的?
-
@jordanm 添加到问题的底部。我去了域 > 操作 > 修改访问策略。我希望这就是你想要的。
-
尝试通过policysim.aws.amazon.com运行角色,不是万能的,但可以排除一些明显的陷阱
-
@OleksiiDonohathanx,我附上了结果。
-
这可能是 SCP(AWS 组织政策)的结果,如果您的账户在组织中,请检查
标签: amazon-web-services elasticsearch aws-lambda amazon-iam aws-cdk