EC3 IAMロールにS3バケットへの読み取りアクセスを付与する
AWS Elastic Beanstalk Railsアプリがあり、S3バケットからいくつかのファイルをプルするようにconfigスクリプトで構成しています。アプリケーションを起動すると、ログに次のエラーが表示され続けます(セキュリティのためにバケット名が変更されています)。 Failed to retrieve https://s3.amazonaws.com/my.bucket/bootstrap.sh: HTTP Error 403 : <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message> 設定ファイル: packages: yum: git: [] files: /opt/elasticbeanstalk/hooks/appdeploy/pre/01a_bootstrap.sh: mode: "00755" owner: root group: root source: https://s3.amazonaws.com/my.bucket/bootstrap.sh Elastic Beanstalk環境は、aws-elasticbeanstalk-ec2-roleインスタンスの役割としてIAMの役割で設定されています。この役割には次のポリシーがあります。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::my.bucket/*" } …