У меня в моем .ebextensions
папка:
00-myconfig.config
Resources:
AWSEBAutoScalingGroup:
Metadata:
AWS::CloudFormation::Authentication:
S3Access:
type: S3
roleName: aws-elasticbeanstalk-ec2-role
buckets: my-bucket
files:
"/tmp/ca-bundle.zip":
mode: "000755"
owner: root
group: root
source: https://s3-ap-southeast-2.amazonaws.com/my-bucket/ca/ca-bundle.zip
authentication: S3Access
Согласно нескольким ответам, это способ предоставить доступ к ведру S3 для aws-elasticbeanstalk-ec2-role
роль.
Но я продолжаю получать ошибку 403 в /var/log/eb-activity.log
[2015-08-26T01:27:03.544Z] INFO [22320] - [Application update/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Activity execution failed, because: Failed to retrieve https://s3-ap-southeast-2.amazonaws.com/my-bucket/ca/ca-bundle.zip: HTTP Error 403 : <?xml version="1.0" encoding="UTF-8"?> (ElasticBeanstalk::ExternalInvocationError)
Если я вручную добавлю политику доступа S3 в aws-elasticbeanstalk-ec2-role
role все работает, поэтому я знаю, что у меня нет орфографических ошибок в URL-адресах или чем-либо еще, экземпляр EC2 определенно находится в правильной роли.
Что случилось?
PS. Я попробовал files
раздел с настройкой «аутентификации» или без нее.
Я понял это и чувствую себя немного глупо из-за того, что не понял это раньше.
Итак, для всех, кто использует AWS::CloudFormation::Authentication
путь, решение, конечно же:
Убедитесь, что ваша политика BUCKET разрешает вашу роль aws-elasticbeanstalk-ec2-role. DOH !!
Это должно выглядеть примерно так:
{
"Id": "Policy1111Blah",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1440Blah",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": [
"arn:aws:iam::11111111111:role/aws-elasticbeanstalk-ec2-role"
]
}
}
]
}
Вы можете получить ARN с консоли IAM.
Инструкции в ваших файлах конфигурации .ebextensions только сообщают инструментам развертывания EB, что использовать для аутентификации, но ваша исходная корзина (если она, очевидно, является частной) должна разрешать доступ этому основному лицу !!!