【问题标题】:Unable to add Fine grain access for Elasticsearch service for Cloudformation无法为 Cloudformation 的 Elasticsearch 服务添加细粒度访问
【发布时间】:2020-07-06 08:57:36
【问题描述】:

我正在使用Elasticsearch 服务创建CloudFormation 堆栈,但是对于AdvancedSecurityOptions 它失败了,它与aws es create-elasticsearch-domain 完美配合

我的JSON模板sn-p如下:

...
"AdvancedOptions": {
    "rest.action.multi.allow_explicit_index": true
},
"AdvancedSecurityOptions": {
    "Enabled": true,
    "InternalUserDatabaseEnabled": false,
    "MasterUserOptions": {
    "MasterUserARN": "arn:aws:iam::1234567890:role/role_name"
    }
},
"DomainName": {
    "Ref": "ESDomainName"
}
...

我无法让这段代码正常工作,非常感谢任何与细粒度访问控制相关的帮助。

【问题讨论】:

    标签: json amazon-web-services elasticsearch amazon-cloudformation aws-elasticsearch


    【解决方案1】:

    继续上面的 DNakevski@ 回答,对于 FGAC,我们需要确保 CFN 模板中的以下三个设置设置为 true,因为它们用作 pre-requisites

    • EncryptionAtRestOptions
    • NodeToNodeEncryptionOptions 和
    • HTTPS。

    另外,CFN模板中FGAC的重要参数是AdvancedSecurityOptions,需要设置为Enabled: true

    AmazonES/Opendistro-for-ES 为 FGAC 提供了两种安全方式。一种是通过使用 IAM 用户作为主用户,另一种是通过基本身份验证。

    • 如果您需要采用 IAM 方式,请将 InternalUserDatabaseEnabled 设置为 false 并且在 MasterUserOptions 字段下只有参数 *MasterUserARN: "IAM User ARN" .

    • 如果您需要采用基本身份验证(用户名和密码)方法,请将 InternalUserDatabaseEnabled 设置为 true 并设置 MasterUserName: "any-name" 和 MasterUserPassword: "xxx"* 请至少有一个小写、一个大写、一个数字和一个特殊字符作为密码,否则 CFN 模板将回滚。但是,在事件下的 CFN 控制台上很容易看到失败消息。

    我有一个简单的工作 CFN yaml here 做同样的事情以防万一。

    【讨论】:

      【解决方案2】:

      我不确定线程​​是否包含过时的信息,但根据link 上的官方 AWS 文档,应该可以使用 AdvancedSecurityOptions 进行细粒度访问控制。它甚至在页面顶部声明它是用于 FGAC。

      【讨论】:

        【解决方案3】:

        AdvancedSecurityOptions 是作为 Fine Grained Access Control 的一部分添加到 recently 的 Amazon Elasticsearch 服务的最新成员。目前只能通过控制台、CLI 和 API 使用。

        【讨论】:

        • 感谢您的快速回复。但是,我必须将此选项添加为我的 cloudformation 堆栈的一部分,所以有什么方法或解决方法可以使用 cloudformation 实现这一点?
        • 谢谢!我会在几个小时后回复你结果。
        • 这是非常矛盾的,根据update-es-domain-config 上的文档,这应该是可能的。无论如何,如果需要 advanced-security-options,我将收回我的替代解决方案,看起来我们现在无法使用 cloudformation。
        • 我同意,我将尝试对此进行更多研究,以获得获得AdvancedSecurityOptions的最佳方法。
        • 您可以对云形成路线图上的问题进行投票github.com/aws-cloudformation/…