Amazon s3 创建失败的Bucketpolicy-未知字段Fn::Join
由于以下S3桶策略,我的Cloudformation堆栈失败并不断回滚。引用的S3 bucket是一个单独的bucket,用于CloudTrail日志(正如我所读到的,使用CloudTrail时,这样做是最佳实践)。在cloudFormation过程中,bucket与堆栈的其余部分一起创建:[stackname]-cloudtraillogs-[randomstring] 我试着不使用任何函数来指定bucket,但这似乎不起作用。我的猜测是因为它然后去寻找一个bucket‘cloudtraillogs’,却找不到任何具有该名称的bucket。使用带有引用的Fn::Join可能会解决这个问题(?),但当评估bucket策略时,CloudFormation会给出“未知字段Fn::Join” 有谁能发现我可能做错了什么 巴克特政策Amazon s3 创建失败的Bucketpolicy-未知字段Fn::Join,amazon-s3,amazon-cloudformation,Amazon S3,Amazon Cloudformation,由于以下S3桶策略,我的Cloudformation堆栈失败并不断回滚。引用的S3 bucket是一个单独的bucket,用于CloudTrail日志(正如我所读到的,使用CloudTrail时,这样做是最佳实践)。在cloudFormation过程中,bucket与堆栈的其余部分一起创建:[stackname]-cloudtraillogs-[randomstring] 我试着不使用任何函数来指定bucket,但这似乎不起作用。我的猜测是因为它然后去寻找一个bucket‘cloudtraill
{
"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"
}
}
}
]
}
}
}
}
}
您的模板似乎不是有效的JSON。您的第一个策略语句(
AWSCloudTrailAclCheck20160224
)缺少其资源
对象的结束括号}