Elastic Beanstalk インスタンスで実行中のアプリケーションから Amazon S3 バケットにアクセスするにはどうすればよいですか?

最終更新日: 2022 年 10 月 21 日

AWS Elastic Beanstalk インスタンスで実行中のアプリケーションから Amazon Simple Storage Service (Amazon S3) バケットにアクセスしたいと考えています。

簡単な説明

Elastic Beanstalk から S3 バケットにアクセスするには、AWS Identity and Access Management (IAM) インスタンスプロファイルが、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにアタッチされていることを確認します。インスタンスには、Amazon S3 に対する正しいアクセス許可が必要です。次に、S3 バケットポリシーに、インスタンスプロファイルにアタッチされたロールへのアクセスを拒否するポリシーがないことを確認します。

解決方法

インスタンスプロファイルのアクセス許可を検証する

  1. Elastic Beanstalk コンソールを開きます。
  2. 環境を選択します。
  3. ナビゲーションメニューから [Configuration] を選択します。
  4. Configuration overview セクションの [Category] 列の [Security] で、[Modify] を選択します。
  5. IAM instance profile メニューで、インスタンスプロファイルの名前を書き留めます。
  6. IAM コンソールを開きます。
  7. ナビゲーションペインで、[Roles] をクリックします。
  8. 検索ボックスに、ステップ 5 のインスタンスプロファイルの名前を入力します。
  9. ステップ 8 のロールに、アクセスするバケット用の必要な Amazon S3 許可があることを確認します。詳細については、「Amazon S3 での Identity and Access Management」と「Amazon S3 のアクション、リソース、条件キー」を参照してください。

S3 バケットの許可を検証する

  1. Amazon S3 コンソールを開きます。
  2. バケットのリストから、変更したいバケットポリシーを持つバケットを選択します。
  3. [Permissions] タブをクリックします。
  4. [Bucket Policy] を選択します。
  5. "Effect": "Deny" ステートメントを検索します。
  6. バケットポリシーで、ロールへの IAM インスタンスプロファイルのアクセスを拒否している "Effect": "Deny" ステートメントを編集または削除します。詳細については、「Amazon S3 コンソールを使用したバケットポリシーの追加」を参照してください。
    注: 最小特権の原則のセキュリティ上のベストプラクティスに沿って、必要な拒否ステートメントを削除しないように注意してください。詳細については、「Amazon S3 のセキュリティ」を参照してください。

S3 バケットへのアクセス

これで S3 バケットにアクセスし、S3 バケットを使用して次のタスクを実行できるようになりました。