【发布时间】:2018-03-11 12:47:25
【问题描述】:
我有一个简单的 cloudformation,它创建了一个附有策略的存储桶。这是我的云形成代码:
---
AWSTemplateFormatVersion: '2010-09-09'
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: testforcfn
DeletionPolicy: Retain
BucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
PolicyDocument:
Id: MyPolicy
Version: '2012-10-17'
Statement:
- Sid: PublicReadForGetBucketObjects
Effect: Allow
Principal: "*"
Action: s3:GetObject
Resource:
Fn::Join:
- ''
- - 'arn:aws:s3:::'
- Ref: S3Bucket
- "/*"
Bucket:
Ref: S3Bucket
Outputs:
S3Info:
Value:
Ref: S3Bucket
一切正常,但是,在主体的存储桶策略中,我需要“AWS”:“”,而不是“”。因此,这里的更多解释是我想要的存储桶策略:
{
"Version": "2012-10-17",
"Id": "Policy1506624486110",
"Statement": [{
"Sid": "Stmt1506624421375",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::testforcfn/*"
}]
}
所以这部分是我想在我的 cloudformation 代码中包含的部分:
"Principal": {
"AWS": "*"
}
当我在 cloudformation 中执行此操作时出现错误:
Principal: "AWS:*"
知道如何解决这个问题吗?
【问题讨论】:
-
您看到了什么错误?仅供参考“校长”:“”相当于“校长”:{“AWS”:“”}。
-
实际上我删除了堆栈并忘记捕获确切的错误,但基本上它说其中一个资源未能创建并且没有任何特定的位我确定这是因为这个: Principal: "AWS:* ” 因为当我这样做时它有效:校长:“*”
标签: amazon-web-services amazon-cloudformation aws-opsworks