【发布时间】:2017-07-15 10:42:34
【问题描述】:
由于以下 S3 存储桶策略,我的 Cloudformation 堆栈失败并不断回滚。引用的 S3 存储桶是一个单独的存储桶,用于 CloudTrail 日志(我读到这样的事情是使用 CloudTrail 时的最佳实践)。在 cloudFormation 过程中,存储桶与堆栈的其余部分一起创建:[stackname]-cloudtraillogs-[randomstring]
我尝试不使用任何函数来指定存储桶,但这似乎不起作用。我的猜测是因为它然后去寻找一个存储桶'cloudtraillogs'并且找不到任何具有该名称的存储桶。使用带有引用的 Fn::Join 可能会解决这个问题(?),但是 CloudFormation 在评估存储桶策略时会给出“未知字段 Fn::Join”。
谁能发现我在这里可能做错了什么?
存储桶策略
{
"Resources": {
"policycloudtraillogs": {
"Type": "AWS::S3::BucketPolicy",
"Properties": {
"Bucket": {
"Ref": "cloudtraillogs"
},
"PolicyDocument": {
"Statement": [
{
"Sid": "AWSCloudTrailAclCheck20160224",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": {
"Fn::Join": [
"",
[
"arn:aws:s3:::",
{
"Ref": "cloudtraillogs"
},
"/*"
]
]
},
{
"Sid": "AWSCloudTrailWrite20160224",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": {
"Fn::Join": [
"",
[
"arn:aws:s3:::",
{
"Ref": "cloudtraillogs"
},
"/AWSLogs/myAccountID/*"
]
]
},
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
}
}
}
}
【问题讨论】:
标签: amazon-s3 amazon-cloudformation