我有一个Internet弹性搜索端点。我只想在我的VPC's
实例中访问它,仅在我的两个EC2
中访问它。这是我尝试对VPC CIDR
块IP's
使用的策略,但是我无法从EC2
实例访问终结点。我的EC2
实例位于专用子网中,可通过NAT网关访问Internet。这是我的访问策略,不起作用
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:1XXXXXXXXXXX:domain/my-elasticsearch/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"xx.xx.xx.xx/24",
"xx.xx.xx.xx/24"
]
}
}
}
]
}
我还尝试过类似的操作,以仅允许我分配了IAM角色的EC2实例进行访问,
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::XXXXXXXXXXX:role/MyEC2Role"
]
},
"Action": [
"es:*"
],
"Resource": "arn:aws:es:us-east-1:XXXXXXXXXXX:domain/my-elasticsearch/*"
}
]
}
我在做什么错?还是有更好的方法来限制访问?
答案 0 :(得分:1)
由于您具有公共AWS Elasticsearch集群,因此无法使用具有私有IP的私有子网中的EC2实例。 尝试在您的AWS ES集群的访问策略中添加NAT的公共IP,看看是否可行。 另外,如果您有基于IAM的访问策略,请确保已按照此处所述签署对AWS ES的所有请求:https://aws.amazon.com/blogs/database/get-started-with-amazon-elasticsearch-service-an-easy-way-to-send-aws-sigv4-signed-requests/