Amazon S3 バケットへのアクセス権を Amazon EC2 インスタンスに付与するにはどうすればよいですか?

所要時間2分
0

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから Amazon シンプルストレージサービス (Amazon S3) バケットにアクセスできません。EC2 インスタンスから S3 バケットへの読み取り/書き込みアクセスを有効にするにはどうすればよいですか?

簡単な説明

EC2 インスタンスから S3 バケットに接続するには、以下を実行する必要があります。

1.Amazon S3 へのアクセスを許可する AWS Identity and Access Management (IAM) プロファイルロールを作成します。

2.    IAM インスタンスプロファイルをインスタンスにアタッチします。

3.    S3 バケットの権限を検証します。

4.    EC2 インスタンスから Amazon S3 へのネットワーク接続を検証します。

5.    S3 バケットへのアクセスを検証します。

解決策

Amazon S3 へのアクセスを許可する IAM インスタンスプロファイルを作成する

1.    IAM コンソールを開きます。

2.    [ロール] を選択し、**[ロールの作成]**を選択します。

3.    [AWS サービス] を選択し、**[ユースケース]**で **[EC2]**を選択します。

**注:**信頼されたエンティティとして EC2 を選択した状態でコンソールから IAM ロールを作成すると、ロール名と同じ名前の IAM インスタンスプロファイルが自動的に作成されます。ただし、ロールが AWS コマンドラインインターフェイス (AWS CLI) または API を使用して作成された場合、インスタンスプロファイルは自動的に作成されません。詳細については、「IAM ロールを作成しましたが、インスタンスを起動してもロールがドロップダウンリストに表示されませんどうすればよいですか?」を参照してください。

4.    **[次へ: 権限]**を選択します。

5.    S3 バケットにアクセスするために必要最低限の権限を付与するカスタムポリシーを作成します。カスタムポリシーを作成する手順については、「Writing IAM policies: how to grant access to an Amazon S3 bucket」と「Amazon S3 での Identity and Access Management」を参照してください。

**注:**必要最低限の権限でポリシーを作成することは、セキュリティ上のベストプラクティスです。ただし、EC2 にすべての Amazon S3 バケットへのアクセスを許可するには、AmazonS3ReadOnlyAccess または AmazonS3FullAccess マネージド IAM ポリシーを使用してください。

6.    **[次へ: タグ]**をクリックし、[**次へ: 確認]**を選択します。

7.   [ロール名] に入力し、**[ロールの作成]**を選択します。

IAM インスタンスプロファイルを EC2 インスタンスにアタッチする

1.    Amazon EC2 コンソールを開きます。

2.**[インスタンス]**を選択します。

3.    IAM ロールをアタッチするインスタンスを選択します。

4.    [アクション] タブを選択し、[セキュリティ]、**[IAM ロールを変更]**の順に選択します。

5.    先ほど作成した IAM ロールを選択し、[保存] を選択します。IAM ロールは EC2 インスタンスに割り当てられます。

S3 バケットの権限を検証する

1.    Amazon S3 コンソールを開きます。

2.    ポリシーを検証する S3 バケットを選択します。

3.    **[アクセス権限]**を選択します。

  1. **[バケットポリシー]**を選択します。

5.    「効果: 拒否」のあるステートメントを検索します。

6.    バケットポリシーで、バケットへの IAM インスタンス プロファイルのアクセスを拒否している効果: 拒否ステートメントを編集または削除します。ポリシーの編集手順については、「IAM ポリシーの編集」を参照してください。

EC2 インスタンスから Amazon S3 へのネットワーク接続を検証する

EC2 インスタンスが S3 エンドポイントに接続するには、インスタンスが次のいずれかである必要があります。

  • パブリック IP アドレスと、インターネットゲートウェイを指すデフォルトルートを持つルートテーブルエントリを持つ EC2 インスタンス
  • NAT ゲートウェイを経由するデフォルトルートを持つプライベート EC2 インスタンス
  • ゲートウェイ VPC エンドポイントを使用して Amazon S3 に接続できるプライベート EC2 インスタンス

プライベート EC2 インスタンスと S3 バケット間の接続に関するトラブルシューティングについては、「ゲートウェイの Amazon VPC エンドポイントの接続に関する問題をトラブルシューティングするにはどうすればよいですか?」を参照してください。

S3 バケットへのアクセスを確認する

1.    EC2 インスタンスに AWS CLI をインストールします

注: AWS CLI コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

2.    次のコマンドを実行して、S3 バケットへのアクセスを確認します。DOC-EXAMPLE-BUCKET は S3 バケットの名前に置き換えます。

aws s3 ls s3://DOC-EXAMPLE-BUCKET

**注:**AWS Key Management Service (AWS KMS) キーで暗号化された S3 オブジェクトには、以下で付与された kms: 復号権限が必要です。

  • インスタンスにアタッチされている IAM ロール。
  • KMS キーポリシー。

これらの権限が付与されていない場合、S3 オブジェクトをコピーまたはダウンロードすることはできません。詳細については、「Amazon S3 から KMS で暗号化されたオブジェクトをダウンロードする際に、AWS KMS キーを指定する必要がありますか?」を参照してください。


関連情報

ゲートウェイの Amazon VPC エンドポイントの接続に関する問題をトラブルシューティングするにはどうすればよいですか?

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ