amazon-web-services - CloudFormation CloudTrail S3 策略错误 - 检测到存储桶的 S3 存储桶策略不正确

标签 amazon-web-services amazon-s3 aws-cloudformation amazon-cloudtrail

提前致谢!

我整个周末都被困在这个问题上。我正在尝试在 cloudformation 中创建 cloudtrail 服务,但在运行时收到此错误 - 检测到存储桶的 S3 存储桶策略不正确:s3bucket-xxxxxx

这是我的代码;

"s3bucket-xxxxxx": {
    "Type": "AWS::S3::Bucket",
    "Properties": {
        "AccessControl": "Private",
        "VersioningConfiguration": {
            "Status": "Suspended"
        }
    },
    "Metadata": {
        "AWS::CloudFormation::Designer": {
            "id": "XXXX"
        }
    }
},
"s3policytraillogs": {
    "Type": "AWS::S3::BucketPolicy",
    "Properties": {
        "Bucket": {
            "Ref": "s3bucket-xxxxxx"
        },
        "PolicyDocument": {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Sid": "AWSCloudTrailAclCheck20150319",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "cloudtrail.amazonaws.com"
                    },
                    "Action": "s3:GetBucketAcl",
                    "Resource": "arn:aws:s3:::s3bucket-xxxxxx"
                },
                {
                    "Sid": "AWSCloudTrailWrite20150319",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "cloudtrail.amazonaws.com"
                    },
                    "Action": "s3:PutObject",
                    "Resource":  "arn:aws:s3:::s3bucket-xxxxxx/AWSLogs/XXXXXXXX/*",
                    "Condition": {
                        "StringEquals": {
                            "s3:x-amz-acl": "bucket-owner-full-control"
                        }
                    }
                }
            ]
        }
    },
    "Metadata": {
        "AWS::CloudFormation::Designer": {
            "id": "XXXX"
        }
    }
},
"trailtraillogs": {
    "Type": "AWS::CloudTrail::Trail",
    "Properties": {
        "IncludeGlobalServiceEvents": true,
        "IsLogging": "true",
        "S3BucketName": {
            "Ref": "s3bucket-xxxxxx"
        }
    },
    "Metadata": {
        "AWS::CloudFormation::Designer": {
            "id": "XXXX"
        }
    }
}

最佳答案

要解决此问题,需要使用引用将资源连接到存储桶

                    "Resource": [{
                      "Fn::Join": [ "", [
                          "arn:aws:s3:::", {
                            "Ref": "s3traillogs"
                          }, "/AWSLogs/XXXXXXXXXXX/*"
                        ]
                      ]
                    }],

关于amazon-web-services - CloudFormation CloudTrail S3 策略错误 - 检测到存储桶的 S3 存储桶策略不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43980042/

相关文章:

amazon-web-services - 如何解决此错误 - 属性 {/DistributionConfig/Aliases} 的值与类型 {Array} 不匹配

amazon-web-services - 将输入参数从一个 Step Function 传递到另一个 Step Function

amazon-web-services - 模板属性无效 [ElasticacheCluster]

amazon-web-services - "Error while running apache2ctl graceful"让我们在 AWS Lightsail Bitnami 上加密

java - Amazon S3 存储桶访问以编程方式由第三方拥有

linux - AWS RHEL7 丢失的包

amazon-web-services - AWS S3 对象公共(public) URL 困境

java - 在 AWS S3 中使用预签名 url 下载对象(文件)不起作用

amazon-web-services - 如何在 AWS Elastic Beanstalk 上安装音频波形程序

node.js - 从另一种方法调用 api 网关方法的最佳做法是什么?