4

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 ファイルを公開せずにこれを機能させる方法はありますか? ロール権限の設定が間違っていますか? または、これを達成するための他の方法はありますか?

4

2 に答える 2

1

私は非常によく似た状況に遭遇し、それを解決する方法を見つけました。詳細については、エラスティック ビーンズトークが S3 ファイルを取得している間に許可が拒否されました。

Resources私が見つけた解決策は、構成ファイルに認証情報を含むセクションを追加することです。最終的な .ebextensions 設定ファイルは次のようになります

files:
  "/target/file/path" :
    source: https://s3-us-west-1.amazonaws.com/_MyBucket_/_MyFolder_/_MyFile.txt
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Access:
          type: S3
          roleName: aws-elasticbeanstalk-ec2-role
          buckets: _MyBucket
于 2014-10-16T06:29:32.410 に答える