ゲートウェイの Amazon Virtual Private Cloud (Amazon VPC) エンドポイントの接続に関する問題をトラブルシューティングしたいと考えています。
ゲートウェイ VPC エンドポイントを使用すると、Amazon VPC から Amazon Simple Storage Service (Amazon S3) と Amazon DynamoDB にプライベートに接続できます。ゲートウェイ VPC エンドポイントの接続の問題は、接続を許可するネットワークアクセスまたはセキュリティルールが原因である可能性があります。
接続に関する問題をトラブルシューティングするには、Reachability Analyzer を使用します。さらに、以下の設定を確認します:
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Reachability Analyzer を使用して、ソースとゲートウェイエンドポイント間の接続の問題をトラブルシューティングします。詳細については、「Amazon VPC Reachability Analyzer を使用して Amazon VPC リソースの接続に関する問題をトラブルシューティングするにはどうすればよいですか?」をご覧ください。
ゲートウェイエンドポイントは、作成されたリージョンでのみ使用できます。Amazon S3 バケットまたは DynamoDB テーブルと同じリージョンにゲートウェイエンドポイントを作成してください。バケットのリージョンを確認するには、get-bucket-location AWS CLI コマンドを実行します。
SDK を使用してゲートウェイエンドポイントからサービスにアクセスする場合は、リージョンを確認してください。また、リージョンがサービスリソースと同じ場所に設定されていることを確認してください。例えば、Boto3 には Config オブジェクトを使用し、AWS CLI には aws configure を使用します。
**注:**リクエストが誤った地域に送信されると、タイムアウトになったり、インターネット経由でサービスにアクセスしたりする可能性があります。これは、ソースサブネットに設定されているルートテーブルによって異なります。
Amazon VPC の DNS 設定を確認します。Amazon VPC で DNS 解決を有効化する必要があります。独自の DNS サーバーを使用する場合は、AWS サービスへの DNS リクエストが、AWS が保持する IP アドレスに解決されることを確認してください。
ルートテーブルの設定を確認します。ゲートウェイ VPC エンドポイントを使用する Amazon S3 と DynamoDB へのルートがあることを確認します。
Amazon S3 と DynamoDB への接続を開始するソースに関連付けられているセキュリティグループを確認します。使用可能なアウトバウンドルールが Amazon S3 または DynamoDB へのトラフィックを許可していることを確認します。セキュリティグループにデフォルトのアウトバウンドルールよりも厳しいルールがある場合は、次のいずれかを確認します。
特定のリージョンの Amazon S3 と DynamoDB のパブリック IP CIDR を表示するには、AWS CLI の describe-prefix-lists コマンドを実行します。example-Region は、使用しているリージョンに置き換えてください。
aws ec2 describe-prefix-lists --region <example-Region>
サブネットネットワーク ACL は、リージョン内の Amazon S3 または DynamoDB サービス CIDR へのインバウンドおよびアウトバウンドの TCP 接続を許可する必要があります。ネットワーク ACL ルールをチェックして、以下を確認します:
**注:**デフォルトでは、ネットワーク ACL はすべてのインバウンドとアウトバウンドの IPv4 および IPv6 トラフィックを許可します。ネットワーク ACL ルールでトラフィックが制限されている場合は、ゲートウェイエンドポイントが作成されたサービスの CIDR ブロックを指定します。サービス IP アドレスが変更された場合の通知を設定し、スクリプトを使用してネットワーク ACL ルールを自動的に更新することをお勧めします。詳細については、「Amazon S3 の IP アドレスの変更を確認するために通知を受けるにはどうすればよいですか ?」を参照してください。
Amazon VPC エンドポイントポリシーを確認します。カスタムエンドポイントポリシーを使用する場合は、エンドポイントに関連付けられているポリシーが、サービスに対してアクションを実行するためのアクセスを許可していることを確認してください。デフォルトのエンドポイントポリシーでは、サービスへのフルアクセスが許可されます。詳細については、「Control access to VPC endpoints using endpoint policies」を参照してください。
Amazon S3 バケットポリシーを確認し、バケットポリシーがゲートウェイ Amazon VPC エンドポイントと Amazon VPC からのアクセスを許可していることを確認します。詳細については、「Control access using bucket policies」を参照してください。
**注:**バケットポリシーでは、Amazon VPC 内のインスタンスに関連付けられている特定のパブリック IP アドレスまたは Elastic IP アドレスからのアクセスのみを制限できます。また、インスタンスに関連付けられているプライベート IP アドレスに基づいてアクセスを制限できます。詳細については、「特定の IP アドレスに基づくアクセス管理」を参照してください。
プロキシサーバーを使用する場合は、サーバー経由の Amazon VPC 接続が許可されていることを確認します。Amazon S3 にプロキシサーバーを使用しない場合は、次のコマンドを実行して、バケットにアクセスするときにプロキシサーバーをバイパスします。example-Region は、使用しているリージョンに置き換えてください。
export no_proxy = mybucket.s3.<example-Region>.amazonaws.com
IAM ポリシーを確認し、IAM ユーザーまたはロールの関連ユーザーに Amazon S3 へのアクセスに必要な権限があることを確認します。詳細については、「How to restrict Amazon S3 bucket access to a specific IAM role」と「ユーザーポリシーを使用したバケットへのアクセスの制御」を参照してください。
トラフィックがゲートウェイエンドポイントまたはインターフェイスエンドポイントを経由しているかどうかを確認するには、「Amazon S3 のトラフィックが、ゲートウェイ VPC エンドポイントまたはインターフェイス VPC エンドポイントを通過しているのを確認するにはどうすればよいですか?」を参照してください。
AWS リソースのアクセス管理