在 CloudFormation 中检测到存储桶的 S3 存储桶策略不正确

Adr*_*ier 6 amazon-s3 amazon-web-services aws-cloudformation

我在通过 Cloudformation 实现 CloudTrail 时遇到了问题,当我尝试启动模型时,由于抛出了存储桶错误,检测到了不正确的 S3 存储桶策略。

这是 BucketPolicy 的配置:

"LogBucketPolicy": {
        "Type": "AWS::S3::BucketPolicy",
        "Properties": {
            "Bucket": {
                "Ref": "LogBucket"
            },
            "PolicyDocument": {
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Sid": "AWSCloudTrailAclCheck",
                        "Effect": "Allow",
                        "Principal": {
                            "Service": "cloudtrail.amazonaws.com"
                        },
                        "Action": "s3:GetBucketAcl",
                        "Resource": {
                            "Fn::Join": [
                                "",
                                [
                                    "arn:aws:s3:::",
                                    {
                                        "Ref": "LogBucket"
                                    }
                                ]
                            ]
                        }
                    },
                    {
                        "Sid": "AWSCloudTrailWrite",
                        "Effect": "Allow",
                        "Principal": {
                            "Service": "cloudtrail.amazonaws.com"
                        },
                        "Action": "s3:PutObject",
                        "Resource": {
                            "Fn::Join": [
                                "",
                                [
                                    "arn:aws:s3:::",
                                    {
                                        "Ref": "LogBucket"
                                    },
                                    "/AWSLogs/139339407673/*"
                                ]
                            ]
                        },
                        "Condition": {
                            "StringEquals": {
                                "s3:x-amz-acl": "bucket-owner-full-control"
                            }
                        }
                    }
                ]
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我已经从 AWS 示例中复制了模板,但如果我在实施中犯了错误,请告诉我。

编辑:错误不是由存储桶策略引发的,而是由 CloudTrail 引发的。这是bucket的配置:

"Trail": {
        "Type": "AWS::CloudTrail::Trail",
        "Properties": {
            "SnsTopicName": {
                "Fn::GetAtt": [
                    "Topic",
                    "TopicName"
                ]
            },
            "IsLogging": true,
            "S3BucketName": {
                "Ref": "LogBucket"
            }
        },
        "DependsOn": [
            "LogBucket"
        ]
    }
Run Code Online (Sandbox Code Playgroud)

Adr*_*ier 4

正如 Krishna 提到的,错误来自于我没有放置 BucketPolicy 的依赖项。完成此操作后,堆栈就已部署,没有任何问题。