Elastic Beanstalk アプリケーション構成ファイルで「source」パラメーターを構成しようとしています。関連するソースは、新しい S3 バケットにアップロードした bz2 ファイルです。例として、作成されるバケットの名前は「abc」、ファイル名は「mysource.tar.bz2」です。構成ファイルの関連する行は次のようになります。
source:
/usr/bin/mysource: https://s3-us-west-2.amazonaws.com/abc/mysource.tar.bz2
コードをデプロイしようとするとエラーが発生し、ログを確認すると、このファイルに対して「AccessDenied」と表示されます。
AWS IAM コンソールで Amazon EC2 の信頼関係を持つインスタンス プロファイル (ロール) を作成し、必要なバケットへのアクセスを設定しました。
ロールの権限は次のようになります。
{
"Statement": [
{
"Sid": "Stmt13674962346",
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::abc/*"
]
}
]
}
Resource を * に設定しようとさえしました:
"Resource": "*"
しかし、それでもAccessDeniedエラーが発生します。
s3 ファイル 'mysource.tar.bz2' を公開してアクセス許可を変更すると、機能します。
では、S3 ファイルを公開せずにこれを機能させる方法はありますか? ロール権限の設定が間違っていますか? または、これを達成するための他の方法はありますか?