【问题标题】:AWS Cloudformation - Elasticsearch Access Control Policies Service Error InvalidTypeExceptionAWS Cloudformation - Elasticsearch 访问控制策略服务错误 InvalidTypeException
【发布时间】:2020-10-06 19:44:56
【问题描述】:

我想通过定义 Access Policies 来限制对我在 aws 上的 elasticsearch 集群的访问,这将限制对 iam 用户的访问、特定的 lambda 函数和 appsync api。

我在 cloudformation 上的 elasticsearch 资源中定义了以下 access policies,但这失败并出现错误:Service: AWSElasticsearch; Status Code: 409; Error Code: InvalidTypeException;

如何修正我的政策以使其发挥作用?

"Type": "AWS::Elasticsearch::Domain",
        "Properties": {
            "AccessPolicies": {
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Effect": "Allow",
                        "Principal": {
                            "Service": [
                                {
                                    "Fn::Join": [
                                        "",
                                        [
                                            "arn:aws:lambda:",
                                            {"Ref": "AWS::Region"},
                                            ":",
                                            {"Ref": "AWS::AccountId"},
                                            ":function:",
                                            {"Ref": "DdEsLambdaFunctionName"},
                                            "-",
                                            {"Ref": "env"}
                                        ]
                                    ]
                                },
                                {
                                    "Fn::Join": [
                                        "",
                                        [
                                            {"Ref": "GraphQLAPI"},
                                            "/*"
                                        ]
                                    ]
                                }
                            ]
                        },
                        "Action": [
                            "es:ESHttp*"
                        ]
                    },
                    {
                        "Effect": "Allow",
                        "Principal": [
                            {
                                "AWS": {
                                    "Fn::Join": [
                                        "",
                                        [
                                            "arn:aws:iam::",
                                            {"Ref": "AWS::AccountId"},
                                            ":user/*"
                                        ]
                                    ]
                                }
                            }
                        ],
                        "Action": "*"
                    }
                ]
            },...}

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    不确定这是否是核心问题,但您的第一个 Principal 不正确。

    您指定了 Service,但您提供了 lambda ARN。 ARN 的类型为 AWS 主体,而不是 ServiceGraphQLAPI 可能也是一个 ARN,它又不是 Service 主体,而是 AWS 主体。

    【讨论】:

    • 不,同样的错误。我最初尝试使用“AWS”作为委托人
    • 原来 elasticsearch 访问策略只接受 iam 或 ipv4 地址类型的主体。 Lambda 和 appsync 不是可接受的类型
    猜你喜欢
    • 1970-01-01
    • 2017-11-12
    • 2022-08-22
    • 2021-02-15
    • 1970-01-01
    • 2023-04-05
    • 2019-08-22
    • 1970-01-01
    • 2016-01-17
    相关资源
    最近更新 更多