ゲートウェイの Amazon Virtual Private Cloud (Amazon VPC) エンドポイントの接続に関する問題をトラブルシューティングしたいと考えています。
ゲートウェイ VPC エンドポイントの接続に関する問題は、接続を許可するネットワークアクセスまたはセキュリティルールが原因である可能性があります。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Reachability Analyzer を使用して、ソースとゲートウェイエンドポイント間の接続の問題をトラブルシューティングします。詳細については、 「Amazon VPC Reachability Analyzer を使用して Amazon VPC リソースの接続に関する問題をトラブルシューティングする方法を教えてください」をご参照ください。
ゲートウェイエンドポイントは、作成したリージョンでのみ使用できます。ゲートウェイエンドポイントは、Amazon Simple Storage Service (Amazon S3) バケットまたは Amazon DynamoDB テーブルと同じリージョンに作成する必要があります。バケットのリージョンを確認するには、get-bucket-location AWS CLI コマンドを実行します。
SDK を使用してゲートウェイエンドポイントからサービスにアクセスするときには、リージョンをサービスリソースと同じ場所に設定します。Boto3 には Config object を使用し、AWS CLI には aws configure を使用します。
注: リクエストを誤った地域に送信すると、タイムアウトになったり、インターネット経由でのサービスにアクセスを許可したりする原因となる場合があります。これは、ソースサブネットに設定されているルートテーブルによって異なります。
VPC の DNS 属性を更新して 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 コマンドを実行します。
aws ec2 describe-prefix-lists --region example-Region
注: example-Region は、お使いのリージョンに置き換えます。
サブネットのネットワークアクセスコントロールリスト (ネットワーク ACL) は、リージョン内の Amazon S3 または DynamoDB サービス CIDR へのインバウンドおよびアウトバウンドの TCP 接続を許可する必要があります。
次のことを行うネットワーク ACL ルールを追加します。
注: デフォルトでは、ネットワーク ACL はすべてのインバウンドとアウトバウンドの IPv4 および IPv6 トラフィックを許可します。ネットワーク ACL ルールでトラフィックが制限されている場合は、ゲートウェイエンドポイントを作成したサービスの CIDR ブロックを指定します。サービス IP アドレスが変更された場合の通知を設定し、スクリプトを使用してネットワーク ACL ルールを自動的に更新するのがベストプラクティスです。詳細については、「Amazon S3 が IP アドレスを変更したときに通知を受け取る方法を教えてください」を参照してください。
VPC エンドポイントポリシーを確認し、カスタムポリシーかデフォルトポリシーかを判断します。カスタムエンドポイントポリシーでは、サービスに対してアクションを実行するためのアクセスを許可する必要があります。デフォルトのエンドポイントポリシーでは、サービスへのアクセスが完全に許可されます。詳細については、「エンドポイントポリシーを使用して VPC エンドポイントへのアクセスを制御する」を参照してください。
Amazon S3 バケットポリシーを確認し、ポリシーがゲートウェイ VPC エンドポイントと VPC からのアクセスを許可していることを確認します。詳細については、「バケットポリシーで VPC エンドポイントからのアクセスを制御する」を参照してください。
注: バケットポリシーでは、VPC 内のインスタンスに関連付けられている特定のパブリック IP アドレスまたは Elastic IP アドレスからのアクセスのみを制限できます。ポリシーは、インスタンスに関連付けられているプライベート IP アドレスに基づいてアクセスを制限できます。詳細については、「Amazon S3 バケットポリシーの例」を参照してください。
プロキシサーバーを使用する場合は、そのサーバー経由の VPC 接続が許可されていることを確認します。Amazon S3 にプロキシサーバーを使用しない場合は、次のコマンドを実行して、バケットにアクセスするときにプロキシサーバーをバイパスします。
export no_proxy = s3.example-Region.amazonaws.com
AWS Identity and Access Management (IAM) ポリシーを確認し、IAM ユーザーまたはロールの関連ユーザーに Amazon S3 へのアクセスに必要なアクセス許可があることを確認します。詳細については、「Amazon S3 バケットのアクセスを特定の IAM ロールに制限する方法」と「ユーザーポリシーを使用してバケットへのアクセスを制御する」を参照してください。
トラフィックがゲートウェイエンドポイントまたはインターフェイスエンドポイントを経由しているかどうかを確認するには、「Amazon S3 のトラフィックが、ゲートウェイ Amazon VPC エンドポイントを経由しているか、インターフェイス Amazon VPC エンドポイントを経由しているかを確認する方法を教えてください」を参照してください。
AWS リソースのアクセス管理