スキップしてコンテンツを表示

VPC エンドポイントを使用して Amazon EC2 インスタンスから Amazon S3 バケットにアクセスする方法を教えてください。

所要時間2分
0

仮想プライベートクラウド (VPC) エンドポイントを使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから Amazon Simple Storage Service (Amazon S3) バケットへのプライベート接続を行いたいです。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

EC2 インスタンスから S3 バケットに安全にアクセスするために VPC エンドポイントを設定する

インターフェイスエンドポイントまたはゲートウェイエンドポイントを使用すると、インターネットゲートウェイや NAT デバイスを使用せずに Amazon S3 にアクセスできます。詳細については、「Amazon S3 での VPC エンドポイント戦略を選択する」を参照してください。

S3 ゲートウェイエンドポイントの作成、設定方法については、「ゲートウェイエンドポイントの作成」を参照してください。

S3 インターフェイスエンドポイントを作成する方法については、「VPC エンドポイントの作成」を参照してください。インターフェイスエンドポイントを使用して S3 バケットに接続する場合、endpoint url パラメータを AWS CLI または AWS SDK 環境で渡す必要があります。HTTP(S) 経由で接続する場合は、ホスト名にはインターフェイスエンドポイント URL を使用する必要があります。詳細については、「S3 インターフェイスエンドポイントからバケット、アクセスポイント、Amazon S3 Control API 操作にアクセスする」を参照してください。

S3 バケットエンドポイントへのインターフェイスエンドポイント の URL 例

your-resource-name.vpce-0e25b8cdd720f900e-argc85vg.s3.region.vpce.amazonaws.com

注: your-resource-name を実際のリソース名に、region を使用する AWS リージョンに置き換えます。

S3 バケットへの接続を確認するには、AWS CLI コマンド ls を実行します。

aws s3 ls s3://doc-example-bucket --endpoint-url https://bucket.vpce-0e25b8cdd720f900e-argc85vg.s3.region.vpce.amazonaws.com

注: doc-example-bucket を実際のバケット名に、region を使用するリージョンに置き換えます。

パブリックアクセスを制限し、IAM ロールを使用して S3 バケットアクセスを保護する

バケットが VPC エンドポイントを起点として接続していない場合、「Access denied」エラーが発生します。S3 バケットへの接続には VPC プライベート接続を必須とするには、次の AWS Identity and Access Management (IAM) バケットポリシーをアタッチします。

{
"Version": "2012-10-17",
   "Id": "DenyNonVPCeAccess",
   "Statement": [
     {
"Sid": "Access-to-specific-VPCE-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::doc-example-bucket",
                    "arn:aws:s3:::doc-example-bucket/*"],
       "Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-1a2b3c4d"
         }
       }
     }
   ]
}

注: doc-example-bucket は、実際のバケット名に置き換えます。

VPC エンドポイントでの、EC2 インスタンスと S3 バケット間の接続に関する問題のトラブルシューティング

VPC エンドポイントが接続タイムアウトエラーを返す場合は、Reachability Analyzer を使用して接続パスを分析します。詳細については、「Reachability Analyzer の開始方法」を参照してください。

VPC インターフェイスエンドポイントを使用する際、URL で正しいエンドポイントリソースを渡していることを確認してください。インターフェイスエンドポイントセキュリティグループがポート 443 でのインバウンドトラフィックを許可していることを確認します。

403 Access Denied エラーのトラブルシューティング

VPC エンドポイントポリシーに同時に複数の変更を加えると、403「Access Denied」エラーが発生する場合があります。

VPC エンドポイントポリシーへの変更が反映されるまでには、1 ~ 2 分かかる場合があります。ポリシーが更新されるまで待ってから、追加の変更を行ったり、アクセスをテストしたりしてください。

関連情報

バケットポリシーを使用して VPC エンドポイントからのアクセスを制御する

Amazon S3 トラフィックがゲートウェイ Amazon VPC エンドポイントを経由しているか、インターフェイス Amazon VPC エンドポイントを経由しているかを判断する方法を教えてください

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

関連するコンテンツ