[英]AWS Cloudformation IAM Policy with Resource
我想做的是創建一個IAM策略,該策略僅授予對特定S3存儲桶的訪問權限,而我想將該S3存儲桶作為參數傳遞。
從AWS文檔中,IAM策略CloudFormation模板如下所示:
"RolePolicies": {
"Type": "AWS::IAM::Policy",
"Properties": {
"PolicyName": "root",
"PolicyDocument": {
"Version" : "2012-10-17",
"Statement": [ {
"Effect": "Allow",
"Action": "*",
"Resource": "*"
} ]
},
問題是,如何使“資源”成為參數? 該參數應為S3存儲桶的arn(例如arn:aws:s3 ::: s3-bucket-name)。 我會簡單地輸入一個字符串類型參數並輸入整個arn還是像AWS :: S3 :: Bucket type這樣的東西? 無論哪種方式,我都不確定在“資源”之后輸入什么。
謝謝!
您可以將Ref與Fn :: Join或Fn :: Sub一起使用
例如:
"Parameters" : {
"BucketName" : {
"Type" : "String",
"Description" : "S3 Bucket name."
}
}
與Ref和Fn :: Join
...
"Resource": { "Fn::Join" : [ "", [ "arn:aws:s3:::", { "Ref" : "BucketName"} ] ] }
...
與Fn :: Sub :
...
"Resource": { "Fn::Sub": [ "arn:aws:s3:::${BucketName}" ] }
...
有關模板參數的更多信息,請點擊此處
晚會晚了。
如果您的存儲桶在“資源”中聲明 ,如下所示:
...
Resources:
MyBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: my-bucket-name
...
...然后您可以使用Fn :: GetAtt輕松引用它的ARN:
Resource:
Fn::GetAtt: [ MyBucket, "Arn" ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.