gpt4 book ai didi

amazon-web-services - 将多域访问策略添加到 AWS Elasticsearch Service(静态 IP 和 Lambda ARN)

转载 作者:行者123 更新时间:2023-11-29 02:50:13 25 4
gpt4 key购买 nike

设置 AWS Elasticsearch 后,我在静态 IP 服务器上安装了 Logstash 和 Kibana 代理,并在 ES 上添加了这个域访问策略,它工作正常:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"192.192.192.192"
]
}
}
}
]
}

现在我需要允许 Lambda 函数在 AWS ES 上执行 es:ESHttpDelete 操作,所以我使用现有角色 service-role/Elasticsearch 创建函数,然后复制来自 IAM 管理控制台的相关 ARN 将其添加到 AWS ES 访问策略,得出以下结果:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam:: 323137313233:role/service-role/Elasticsearch"
]
},
"Action": [
"es:*"
],
"Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*"
}
]
}

问题出在 ES 上,我应该为静态 IP 或 ARN 选择域访问策略,但不能同时选择两者。当我尝试手动合并它们而不是使用控制台时,它不起作用。我检查了 AWS 文档,但他们没有提及是否可能。

最佳答案

您可以在 Statement 数组中以 JSON 格式的策略添加多个策略语句。因此,您的最终政策将类似于:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"192.192.192.192"
]
}
}
},
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam:: 323137313233:role/service-role/Elasticsearch"
]
},
"Action": [
"es:*"
],
"Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*"
}
]
}

关于amazon-web-services - 将多域访问策略添加到 AWS Elasticsearch Service(静态 IP 和 Lambda ARN),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39266468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com