Vin*_*nny 5 amazon-web-services aws-cloudformation
我想要做的是创建一个 IAM 策略,该策略仅允许访问某个 S3 存储桶,并且我想将该 S3 存储桶作为参数传递。
根据 AWS 的文档,IAM 策略 CloudFormation 模板如下所示:
"RolePolicies": {
"Type": "AWS::IAM::Policy",
"Properties": {
"PolicyName": "root",
"PolicyDocument": {
"Version" : "2012-10-17",
"Statement": [ {
"Effect": "Allow",
"Action": "*",
"Resource": "*"
} ]
},
Run Code Online (Sandbox Code Playgroud)
问题是,如何使“Resource”成为参数?该参数应该是 S3 存储桶的 arn(例如 arn:aws:s3:::s3-bucket-name)。我是简单地输入一个字符串类型参数并输入整个 arn 还是类似于 AWS::S3::Bucket 类型?不管怎样,我不确定在“资源”之后要输入什么。
谢谢!
您可以将Ref与Fn::Join或Fn::Sub 一起使用
例如:
"Parameters" : {
"BucketName" : {
"Type" : "String",
"Description" : "S3 Bucket name."
}
}
Run Code Online (Sandbox Code Playgroud)
使用Ref和Fn::Join
...
"Resource": { "Fn::Join" : [ "", [ "arn:aws:s3:::", { "Ref" : "BucketName"} ] ] }
...
Run Code Online (Sandbox Code Playgroud)
使用Fn::Sub:
...
"Resource": { "Fn::Sub": [ "arn:aws:s3:::${BucketName}" ] }
...
Run Code Online (Sandbox Code Playgroud)
有关模板参数的更多信息请参见此处
| 归档时间: |
|
| 查看次数: |
2528 次 |
| 最近记录: |