Tôi đang nghiên cứu tạo AWS của nhóm và phân phối bằng cách sử dụng tập lệnh. Tôi đã tạo một tập lệnh và chạy tập lệnh mẫu ngăn xếp trong bảng điều khiển tạo đám mây AWS.AWS - Kịch bản tạo đám mây Kịch bản để tạo thùng S3 và Phân phối
Tôi đang tạo bucketpolicy cho thùng S3 bằng cách sử dụng tập lệnh và ID chuẩn. Khi tôi tạo chính sách nhóm, tôi muốn gán chính sách đó cho "OriginAccessIdentity" động trong tập lệnh. Tôi muốn thêm id được tạo từ chính sách nhóm vào thuộc tính "OriginAccessIdentity".
Làm thế nào để đạt được chức năng này?
Script:
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "AWS CloudFormation Template S3_With_CloudFront_Distribution",
"Parameters" : {
"bucketname" : {
"Type" : "String",
"Description" : "test"
},
"cannonicalid" : {
"Type" : "String",
"Description" : "234213523145314534523452345234523452345"
}
},
"Conditions" : {
"CreateProdResources" : {"Fn::Equals" : [{"Ref" : "EnvType"}, "dev"]}
},
"Resources" : {
"testbucket" : {
"Type" : "AWS::S3::Bucket",
"Properties" : {
"BucketName" : { "Ref" : "bucketname" },
"WebsiteConfiguration" : {
"IndexDocument" : "index.html"
}
}
},
"mybucketpolicy" : {
"Type" : "AWS::S3::BucketPolicy",
"Properties" : {
"PolicyDocument" : {
"Id" : "MyPolicy",
"Statement" : [ {
"Sid" : "Grant a CloudFront Origin Identity access to support private content",
"Action" : [ "s3:GetObject" ],
"Effect" : "Allow",
"Resource" : { "Fn::Join" : [
"", [ "arn:aws:s3:::", { "Ref" : "testbucket" } , "/*" ]
] },
"Principal" : {
"CanonicalUser":{ "Ref" : "cannonicalid" }
}
} ]
},
"Bucket" : { "Ref" : "testbucket" }
}
},
"testdistribution" : {
"Type" : "AWS::CloudFront::Distribution",
"Properties" : {
"DistributionConfig" : {
"Origins" : [ {
"Id" : "S3Origin",
"DomainName" : { "Fn::GetAtt" : [ "testbucket", "DomainName" ] },
"S3OriginConfig" : {
"OriginAccessIdentity" : "How to configure the id dynamically here"
}
}
],
"Enabled" : "true",
"Comment" : "",
"DefaultRootObject" : "index.html",
"Aliases" : [ "test.com" ],
"CacheBehaviors" : [ {
"TargetOriginId" : "S3Origin",
"ForwardedValues" : {
"QueryString" : "false"
},
"ViewerProtocolPolicy" : "allow-all",
"MinTTL" : "1",
"PathPattern" : "resources/*.json"
}
],
"DefaultCacheBehavior" : {
"TargetOriginId" : "S3Origin",
"ForwardedValues" : {
"QueryString" : "false"
},
"ViewerProtocolPolicy" : "allow-all",
"MinTTL" : "1"
}
}
}
}
},
"Outputs" : {
"DistributionId" : {
"Description" : "CloudFront Distribution Id",
"Value" : { "Ref" : "testdistribution" }
},
"DistributionName" : {
"Description" : "URL to access the CloudFront distribution",
"Value" : { "Fn::Join" : [ "", ["http://", {"Fn::GetAtt" : ["testdistribution", "DomainName"]} ]]}
},
"S3OriginDNSName" : {
"Description" : "Name of S3 bucket to hold website content.",
"Value" : { "Fn::GetAtt" : [ "testbucket", "DomainName"] }
}
}
}
Sử dụng kịch bản của nó không khuyến khích để tạo một người dùng OAI trong việc hình thành đám mây , lý do có thể mất ít thời gian để tạo người dùng trên đám mây. Vì vậy, chúng tôi đang tạo người dùng OAI bằng cách sử dụng mã .NET, sau đó sử dụng người dùng OAI trong tập lệnh. Vui lòng cho tôi biết nếu có giải pháp nào khác tốt hơn để tạo người dùng OAI. –
tham chiếu url để tạo OAI bằng mã .NET. http://irfanshirur.blogspot.in/2014/01/create-oai-and-canonical-user-using-net.html –