簡體   English   中英

AWS Cloudformation IAM策略與資源

[英]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這樣的東西? 無論哪種方式,我都不確定在“資源”之后輸入什么。

謝謝!

您可以將RefFn :: JoinFn :: Sub一起使用

例如:

"Parameters" : {
    "BucketName" : {
        "Type" : "String",
        "Description" : "S3 Bucket name."
    }
}

RefFn :: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM