2013-03-08 69 views
2

希望這是一個快速簡單的問題。以下是在bucket的cfn模板中設置bucketpolicy的示例。如何在cfn模板的bucketpolicy中指定多個桶?

"mybucketpolicy" : { 
    "Type" : "AWS::S3::BucketPolicy", 
    "Properties" : { 
     "PolicyDocument" : { 
     "Id" : "MyPolicy", 
     "Statement" : [ { 
      "Sid" : "ReadAccess", 
      "Action" : [ "s3:GetObject" ], 
      "Effect" : "Allow", 
      "Resource" : { "Fn::Join" : [ 
        "", [ "arn:aws:s3:::", { "Ref" : "mybucket" } , "/*" ] 
       ] }, 
      "Principal" : { 
       "AWS" : { "Fn::GetAtt" : [ "mygroup", "Arn" ] } 
      } 
     } ] 
     }, 
     "Bucket" : { "Ref" : "mybucket" } 
     } 
    } 
} 

如果我想將策略應用到另一個桶中,除了mybucket,我會怎麼做呢?

我必須: 1.創建一個全新的bucketpolicy可以說'mybucketpolicy2'這將是非常類似於上述? 2.只需添加一個項目到上面的'Statement'數組中並使用新的bucket名稱?如果是,那麼這將與上面的「桶」鍵衝突,不會嗎? 3.其他方式?

任何幫助,非常感謝。

--su

PS:我也問過在AWS上CFN論壇同樣的問題,但我已經認識到,我得到的答案更快的SO比AWS論壇。

回答

2

您無法將AWS :: S3 :: BucketPolicy資源附加到多個存儲桶。要將策略附加到多個資源,您將需要使用IAM資源。資源AWS::IAM::Policy用於通過IAM管理定義策略並將其應用於各種資源。在我看來,IAM接口比舊式的策略資源更加強大和靈活(但更爲複雜)。您不僅可以將單個策略應用於多個存儲桶,還可以將多個策略(語句)應用於多個存儲桶並分配給多個IAM用戶/組/角色。

您可以使用IAM組或用戶來授予對特定策略的訪問權限,這些組或用戶可以使用例如以下方式在您的CloudFormation模板中創建。 AWS :: IAM :: Group資源。

適應這個片段,以您的需求:

"GetS3ContentPolicy" : { 
    "Type" : "AWS::IAM::Policy", 
    "Properties" : { 
    "PolicyName" : "S3ContentPolicy", 
    "PolicyDocument" : { 
     "Statement" : [ { 
     "Effect" : "Allow", 
     "Action" : [ 
      "s3:ListBucket" 
     ], 
     "Resource" : [ 
      { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "PubS3Bucket" } ] ] }, 
      { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "SecretS3Bucket" } ] ] } 
     ] 
     }, 
     { 
     "Effect" : "Allow", 
     "Action" : [ 
      "s3:GetObject", 
      "s3:GetObjectVersion" 
     ], 
     "Resource" : [ 
      { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "PubS3Bucket" }, "/*" ] ] }, 
      { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "SecretS3Bucket" }, "/*" ] ] } 
     ] 
     } ] 
    }, 
    "Groups" : [ 
     { "Ref" : "ManagementInstancesGroup" }, 
     { "Ref" : "WebInstancesGroup" } 
    ] 
    } 
}, 
相關問題