如何使用 CloudFormation 配置 AWS ElasticSearch 访问策略?

如何使用 CloudFormation 配置 AWS ElasticSearch 访问策略?

有关 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 域。

相关内容