ネットワークアクセスが 'VPC エンドポイント' に設定されている Amazon OpenSearch Serverless ダッシュボードのコレクションにアクセスできません。
簡単な説明
Amazon VPC エンドポイントと同じ Amazon Virtual Private Cloud (Amazon VPC) にあるリソースは、OpenSearch Serverless ダッシュボードにアクセスできます。または、VPC の VPN に接続してダッシュボードにアクセスすることもできます。
それでもダッシュボードにアクセスできない場合は、次のいずれかの問題が発生している可能性があります。
- リソースが VPC エンドポイントにアクセスできないため、接続がタイムアウトする。
- クライアントマシンが VPC の外部にあるか、アクセスポリシーがアクセスを拒否しているため、401 Unauthorized エラーが発生する。
- ダッシュボードへのアクセスが許可されていないため、HTTP Error 403 エラーが発生する。
解決策
接続のタイムアウト
ブラウザから OpenSearch Dashboards にアクセスしようとしたときに接続がタイムアウトした場合、リソースが VPC エンドポイントへのアクセスを許可されていない可能性があります。OpenSearch Serverless VPC エンドポイントに関連付けられているセキュリティグループのインバウンドルールに、ソースセキュリティグループまたは IP アドレスを追加する必要があります。
VPC エンドポイントの DNS ホストを解決する
次の手順を実行します。
-
OpenSearch Service コンソールを開き、VPC エンドポイント URL を取得します (例: https://c57qhobw71y128nmhkkc.ap-southeast-2.aoss.amazonaws.com)。
-
クライアントマシンでターミナルを開き、次のコマンドを実行します。
nslookup c57qhobw71y368nmhkkc.ap-southeast-2.aoss.amazonaws.com
出力には、次の例のように IP アドレスが一覧表示されます。
Non-authoritative answer:
Name: privatelink.a00.b11.iad.prod.aoss.searchservices.aws.dev
Addresses: 172.X1.Y1.123
172.X2.Y2.456
Aliases: 2yc453ixd67ue89fqsll.us-east-1.aoss.amazonaws.com
-
ポート 443 で Telnet テストを実行するには、次のコマンドを実行します。
telnet 172.X1.Y1.123 443
注: 172.X1.Y1.123 443 は、出力から取得した IP アドレスに置き換えます。
VPC エンドポイントに接続できた場合は、次の例のような出力が取得されます。
$ telnet 172.X1.Y1.123 443
Trying 172.X1.Y1.123...
Connected to 172.X1.Y1.123.
Escape character is '^]'.
Reachability Analyzer を使用して、EC2 が VPC エンドポイントに接続できるかどうかを確認する
Amazon Elastic Compute Cloud (Amazon EC2) を使用して VPC エンドポイントにアクセスする場合は、Reachability Analyzer を使用して接続問題をトラブルシューティングします。
次の手順を実行します。
- AWS Network Manager コンソールを開きます。
- ナビゲーションペインの [監視とトラブルシューティング] で、[Reachability Analyzer] を選択します。
- [パスの作成と分析] を選択します。
- [パスの作成と分析] ページで、次の情報を入力します。
[パスソース] の [ソースタイプ] で、[インスタンス] を選択します。次に、お使いの Amazon EC2 インスタンスを選択します。
[パス宛先] の [宛先タイプ] で、[VPC エンドポイント] を選択します。次に、コレクションの VPC エンドポイントを選択します。
[プロトコル] で [TCP] を選択します。
[パスの作成と分析] を選択します。
- [分析] タブで、到達可能性テストの結果を確認します。
401 Unauthorized エラー
使用しているクライアントマシンのどちらかにおいて、IP アドレスはセキュリティグループのインバウンドルールに含まれていますが、そのマシンが VPC の外部にあります。または、ネットワークアクセスポリシーによりアクセスが拒否されているため、コレクションにアクセスできません。
VPC エンドポイントの DNS ホストを解決する
次の手順を実行します。
-
クライアントマシンでターミナルを開いて次のコマンドを実行し、ホスト名がプライベートリンクに解決されるかどうかを確認します。
nslookup c57qhobw71y368nmhkkc.ap-southeast-2.aoss.amazonaws.com
出力には、次の例のように IP アドレスが一覧表示されます。
Non-authoritative answer:
Name: privatelink.a00.b11.iad.prod.aoss.searchservices.aws.dev
Addresses: 172.X1.Y1.123
172.X2.Y2.456
Aliases: 2yc453ixd67ue89fqsll.us-east-1.aoss.amazonaws.com
-
DNS がパブリックホスト名に解決される場合は、VPC、サブネット、セキュリティグループの設定を確認します。
DNS 解決の例:
Server: ip-A1-B-C2-D.ap-southeast-2.compute.internal
Address: 10.A.BC.D
Non-authoritative answer:
Name: example.sgw.syd.prod.aoss.searchservices.aws.dev
Addresses: 3.X1.YZ1.55
54.X2.YZ2.95
54.X3.YZ3.119
Aliases: c57qhobw71y368nmhkkc.ap-southeast-2.aoss.amazonaws.com
-
リゾルバーホストと IP アドレスの設定を確認して、リゾルバーがプロキシリゾルバーなどの予期しないものであるかどうかを判断します。設定が予期しないリゾルバーの場合、リゾルバーは内部で別の Amazon VPC リゾルバーを使用している可能性があります。
-
nslookup がプライベートリンクを解決しても 401 エラーが発生する場合は、HAR ファイルを作成してエラーをトラブルシューティングします。
HAR ファイルを作成する
ブラウザで問題を再現し、HAR ファイルを作成してエラーの原因を特定します。
HAR ファイルの例:
"response":
{
"status": 401,
"statusText": "Unauthorized",
"httpVersion": "HTTP/1.1",
"headers": [
{
"name": "content-length",
"value": "0"
},
{
"name": "date",
"value": "Thu, 30 Mar 2023 00:29:21 GMT"
},
{
"name": "server",
"value": "aoss-amazon"
},
{
"name": "x-aoss-response-hint",
"value": "X01:network-policy-deny"
},
{
"name": "x-request-id",
"value": "b1211888-1234-9e64-9999-aaxyzab1fd6"
}
],
...
上記の例では、X01:network-policy-deny ネットワークアクセスポリシーにより、ダッシュボードへのアクセスが拒否されています。この問題を解決するには、ネットワークポリシーの VPC エンドポイントがコレクションの VPC エンドポイントと一致するようにネットワークアクセスポリシーを更新します。
HTTP ERROR 403: このページの表示が許可されていません
HTTP ERROR 403 が返された場合、ユーザープロファイルはダッシュボードへのアクセスを許可されていません。ブラウザで問題を再現します。次に、HAR ファイルを作成し、ダッシュボードへのアクセスに必要なアクセス許可を判断します。
HAR ファイルの例:
"response":
{
"status": 403,
"statusText": "Forbidden",
"httpVersion": "HTTP/1.1",
"headers": [
{
"name": "content-length",
"value": "0"
},
{
"name": "date",
"value": "Mon, 17 Apr 2023 00:10:25 GMT"
},
{
"name": "server",
"value": "aoss-amazon-d"
},
{
"name": "x-aoss-response-hint",
"value": "X01:dashboards-authz-denied"
},
{
"name": "x-envoy-upstream-service-time",
"value": "19"
},
{
"name": "x-request-id",
"value": "b559fd8f-315e-9fe9-a9e8-6ff5791b765a"
}
...
AWS Identity and Access Management (IAM) アクセス許可を更新し、必要なアクセス許可を含めるようにします。
その他のトラブルシューティング手順
データプレーンポリシーの IAM アクセス許可を更新する
Amazon OpenSearch Serverless データプレーン API と OpenSearch ダッシュボードにブラウザからアクセスするために、IAM アクセス許可を更新します。アクセス許可ポリシーに aoss:APIAccessAll および aoss:DashboardsAccessAll IAM アクセス許可を追加する必要があります。
IAM ユーザーまたはグループの設定を更新する
コレクションにアタッチされているデータアクセスポリシーを更新し、IAM ユーザーまたはグループに適切なアクセス許可を含めます。次に、データアクセスポリシーアクセス許可を持つ IAM ユーザーまたはグループで AWS マネジメントコンソールにサインインします。OpenSearch ダッシュボードは、自動的に IAM 認証情報を使用して OpenSearch ダッシュボードにログインします。
SAML ユーザーまたはグループ設定を更新する
SAML ユーザーまたはグループの場合は、適切なデータアクセスポリシーアクセス許可を持つエンティティでサインインします。SAML プロバイダーの設定と一致するようにユーザーまたはグループを更新します。ユーザーまたはグループと SAML プロバイダー間のマッピングは大文字と小文字が区別され、一致する必要があります。実際のアサーションの内容をトラブルシューティングするには、SAML-tracer などのツールを使用できます。詳細については、「SAML フィールドの設定」を参照してください。
AWS マネジメントコンソールから OpenSearch ダッシュボードの URL を開かないでください。代わりに、新しいタブまたはウィンドウに URL を入力します。AWS マネジメントコンソールからのリンクを使用する場合、コンソールは IAM ユーザーの認証を試みます。
関連情報
Amazon VPC エンドポイントで OpenSearch Serverless コレクションをセットアップし、コレクションのダッシュボードにアクセスする方法を教えてください