概要
AWSのEC2を使ってアプリケーションを動かしており、そのアプリケーションがS3(クラウドストレージ)にファイルを保存する必要があります。
条件は以下の通り。
条件
-
パブリックインターネットを使わないこと
- インターネットを経由せず、AWS内のプライベートネットワークだけでデータをやり取りする。
- インターネットを経由せず、AWS内のプライベートネットワークだけでデータをやり取りする。
-
特定のS3バケットだけにアクセス制限
- アプリケーションが使えるS3バケットを限定し、それ以外にはアクセスさせない。
解決方法
この条件を満たすために、以下の手順を実行する必要があります。
-
VPCエンドポイントを作成する
- VPCエンドポイントを使うと、インターネットを経由せずにS3と通信できます。
- VPCエンドポイントを使うと、インターネットを経由せずにS3と通信できます。
-
エンドポイントポリシーを設定する
- このポリシーで、どのS3バケットにアクセスを許可するかを指定します。
- このポリシーで、どのS3バケットにアクセスを許可するかを指定します。
-
IAMロールを設定する
- EC2にIAMロールを割り当て、S3へのアクセスを管理します。
- EC2にIAMロールを割り当て、S3へのアクセスを管理します。
-
S3バケットポリシーを設定する
- バケット側でもアクセス制御を行い、指定された条件以外のアクセスを拒否します。
ポイント
- AWSの「プライベートネットワークを使う仕組み(VPCエンドポイント)」を利用することで、セキュリティを高めています。
- 「誰がどのS3バケットにアクセスできるか」を、複数の仕組み(IAMロール、ポリシー)で厳密に管理します。
フロー図
フロー図で表すと以下になります。