Ale*_*erF 6 amazon-s3 amazon-iam elastic-beanstalk
我正在关注有关在将新实例部署到 Elastic beanstalk 时从 s3 获取证书的文档。说明非常简单:在下面创建一个配置文件,app-root/.ebextensions
内容如下:
Resources:
AWSEBAutoScalingGroup:
Metadata:
AWS::CloudFormation::Authentication:
S3Auth:
type: "s3"
buckets: ["elasticbeanstalk-us-west-2-123456789012"]
roleName:
"Fn::GetOptionSetting":
Namespace: "aws:autoscaling:launchconfiguration"
OptionName: "IamInstanceProfile"
DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
# Private key
/etc/pki/tls/certs/server.key:
mode: "000400"
owner: root
group: root
authentication: "S3Auth"
source: https://s3-us-west-2.amazonaws.com/elasticbeanstalk-us-west-2-123456789012/server.key
Run Code Online (Sandbox Code Playgroud)
其中链接指向您的证书/密钥/其他内容上的位置。
但是,当我部署应用程序包(zip)时,构建失败,并[Errno 404] HTTP Error 404...
提示在指定位置找不到我的文件,这与文件位于精确指定位置的事实相反,因为我可以从命令行(相同)当然是地区)。aws s3 cp s3://<pasted-link-to-file> .
另外,从表面上看,这似乎不是权限问题,因为如果是的话,我预计会出现“拒绝访问”之类的信息;存储桶策略授予以下操作aws-elasticbeanstalk-ec2-role
:
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions",
"s3:GetObject",
"s3:GetObjectVersion"
]
Run Code Online (Sandbox Code Playgroud)
aws-elasticbeanstalk-ec2-role
我还在IAM 中附加了完整的 s3 访问策略。
但事实上,我可以从 cli 访问这些文件,但aws-elasticbeanstalk-ec2-role
找不到它们,这表明 a) 我的设置可能有问题:s3 上的文件、s3 权限、配置.ebextensions
或 b) 有关此事的 aws 文档完全不正常。
通过明确指定解决了这个问题:
roleName: "aws-elasticbeanstalk-ec2-role"
Run Code Online (Sandbox Code Playgroud)
代替:
roleName:
"Fn::GetOptionSetting":
Namespace: "aws:autoscaling:launchconfiguration"
OptionName: "IamInstanceProfile"
DefaultValue: "aws-elasticbeanstalk-ec2-role"
Run Code Online (Sandbox Code Playgroud)
在.ebextensions/my_conf.config
。
这可能是因为配置文件密钥和 S3 策略引用“roleName”而不是“IamInstanceProfile”。
归档时间: |
|
查看次数: |
2396 次 |
最近记录: |