我正在尝试在我的 cloudformation 脚本中检索文件。如果我将文件公开,那么它工作正常。如果文件是私有文件,则 cfn 脚本会失败,但 /var/log/ 中会出现 404 错误。尝试通过 wget 检索文件会导致相应的 403 错误。
如何从 S3 检索私人文件?
我的文件子句看起来像:
"files" : {
"/etc/httpd/conf/httpd.conf" : {
"source" : "https://s3.amazonaws.com/myConfigBucket/httpd.conf"
}
},
我添加了一个身份验证子句和适当的参数:
"Parameters" : {
"BucketRole" : {
"Description" : "S3 role for access to bucket",
"Type" : "String",
"Default" : "S3Access",
"ConstraintDescription" : "Must be a valid IAM Role"
}
}
"AWS::CloudFormation::Authentication": {
"default" : {
"type": "s3",
"buckets": [ "myConfigBucket" ],
"roleName": { "Ref" : "BucketRole" }
}
},
我的 IAM 角色如下所示:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": "*"
}
]
}