インターフェイス VPC エンドポイントを使用して S3 バケットに接続できないのはなぜですか?

最終更新日: 2022 年 3 月 31 日

インターフェイス Amazon 仮想プライベートクラウド (Amazon VPC) エンドポイントを使用して Amazon Simple Storage Service (Amazon S3) バケットに接続できません。どうすれば解決できますか。

簡単な説明

この問題を解決するには、以下を確認してください。

  • インターフェイス VPC エンドポイントと S3 バケットに関連付けられているポリシーを確認します。
  • ネットワークが S3 エンドポイントに接続できることを確認する
  • DNS が S3 エンドポイントの IP アドレスを解決できることを確認する

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

解決方法

インターフェイス VPC エンドポイントと S3 バケットに関連付けられているポリシーを確認する

デフォルトでは、S3 バケットにはバケットの作成時にポリシーが関連付けられていません。作成時に S3 インターフェイスエンドポイントに関連付けられたポリシーでは、デフォルトで S3 バケットに対するすべてのアクションが許可されます。エンドポイントに関連付けられているポリシーを表示する方法については、「インターフェイスエンドポイントを表示する」を参照してください。

ネットワークが S3 エンドポイントに接続できることを確認する

ソースとデスティネーションの間の接続をチェックします。例えば、ネットワークアクセスコントロールリスト (ACL) と S3 インターフェイスエンドポイントに関連付けられているセキュリティグループをチェックして、インターフェイスエンドポイントへのトラフィックが許可されていることを確認します。

次の telnet コマンドを使用して、AWS リソース間、またはオンプレミスホストと S3 エンドポイントとの接続をテストします。次のコマンドで、S3_interface_endpoint_DNS を S3 インターフェイスエンドポイントの DNS に置き換えます。

telnet bucket.S3_interface_endpoint_DNS 443
Trying a.b.x.y...
Connected to bucket.vpce-0a1b2c3d4e5f6g-m7o5iqbh.s3.us-east-2.vpce.amazonaws.com

また、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのテストを使用して Telnet 接続をテストすることもできます。ソース (オンプレミスホストまたは別のインスタンス) からのエンドポイントがあるサブネットで接続をテストし、ソースから送信先の AWS リソースへのレイヤー 3 接続が存在することを確認します。S3 インターフェイスエンドポイントに関連付けられているものと同じセキュリティグループをテストインスタンスで使用していることを確認します。この接続をテストすると、問題がセキュリティグループにあるのか、ネットワーク ACL にあるのかを判断するのに役立ちます。

DNS が S3 エンドポイントを解決できることを確認する

送信元からインターフェイスエンドポイント DNS を解決できることを確認します。このために、 nslookup dig などのツールを使用できます。次の例ではdig を使用します。次のコマンドで、S3_interface_endpoint_DNS を S3 インターフェイスエンドポイントの DNS に置き換えます。

dig *s3_interface_endpoint_DNS@local_nameserver

注意:Amazon が提供する DNS サーバーは VPC CIDR の .2 IP アドレスです。オンプレミスホストは、/etc/resolv.conf ファイルにリストされているホストのローカルネームサーバーです。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?