这有关 ElasticSearch 访问控制的 AWS 文档讨论了如何通过创建 ES 域资源策略并将资源设置为 ES 域 ARN,然后授予对 ES 域子资源的访问权限,同时防止更改域的配置/*
。例如例子
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::123456789012:user/test-user"
]
},
"Action": [
"es:*"
],
"Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*"
}
]
}
在此示例中,test-user
被授予对 ES 域子资源执行操作的权限,但没有授予对 ES 域配置本身执行操作的权限。
在配置使用 CloudFormation 的 AWS ES 域,可以使用访问策略属性。遗憾的是,没有 CloudFormation 资源AWS::Elasticsearch::DomainAccessPolicy
,而且似乎在 ES 域上设置资源策略的唯一方法是使用此属性。
如何利用《2019 年可持续发展议程》中建议的政策类型?访问控制文档如果现在有办法知道在该Resource
字段中使用的 ES 域 ARN,因为在定义访问策略时尚未创建 ES 域?
我尝试DomainArn
在访问策略的资源字段中引用 ES 域的属性,但可以理解的是,这不起作用,因为它会创建循环依赖。
到目前为止我想到的唯一解决方案就是等到 AWS 更新 CloudFormation 以包含AWS::Elasticsearch::DomainAccessPolicy
资源类型。
答案1
附加到 ES 域的访问策略仅授予对此特定 ElasticSearch 域的访问权限。您应该能够安全使用,"Resource": "*"
因为它仅影响您创建的 ES 域。