繁体   English   中英

AWS Cloudformation - Elasticsearch 访问控制策略服务错误 InvalidTypeException

[英]AWS Cloudformation - Elasticsearch Access Control Policies Service Error InvalidTypeException

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

我在 cloudformation 上的 elasticsearch 资源中定义了以下access policies ,但失败并出现错误: Service: AWSElasticsearch; Status Code: 409; Error Code: InvalidTypeException; 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": "*"
                    }
                ]
            },...}

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

您指定了Service但您提供了 lambda ARN。 ARN 属于AWS委托人类型,而不是Service类型。 可能GraphQLAPI也是一个 ARN,它也不是Service委托人,而是AWS委托人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM