

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDK for PHP バージョン 3 を使用して Amazon OpenSearch サービスの検索リクエストに署名する
<a name="service_es-data-plane"></a>

Amazon OpenSearch Serviceは、一般的なオープンソースの検索および分析エンジンである Amazon OpenSearch Service のデプロイ、運用、およびスケーリングを容易にするマネージドサービスです。OpenSearch サービスは Amazon OpenSearch サービス API への直接アクセスを提供します。つまり、開発者は使い慣れたツール、および堅牢なセキュリティオプションを使用できます。Amazon OpenSearch Service のクライアントの多くでリクエスト署名がサポートされていますが、サポートされていないクライアントを使用している場合に、AWS SDK for PHP の組み込み認証情報プロバイダと署名者を使用して任意の PSR-7 リクエストに署名できます。

以下の例では、次の方法を示しています。
+ [SignatureV4](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Signature.SignatureV4.html#_signRequest) を使用して、AWS 署名プロトコルでリクエストに署名します。

AWS SDK for PHP 用のすべてのサンプルコードは [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code) で入手できます。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、AWS の認証情報を設定します ([AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md) を参照)。AWS SDK for PHP からのインポート ([AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md) を参照)。

## OpenSearch Service リクエストの署名
<a name="signing-an-es-request"></a>

OpenSearch Service は、[Signature バージョン 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) を使用します。つまり、サービスの署名 (この場合は `es`) と OpenSearch Service ドメインの リージョンに対するリクエストに署名する必要があります。OpenSearch Service でサポートされているリージョンの一覧については、AWS の「Amazon Web Services 全般のリファレンスAWS のリージョンとエンドポイント」を参照してください。ただし、次の例では、`us-west-2` リージョンにある OpenSearch Service ドメインに対するリクエストに署名します。

必要な認証情報を指定するには、SDK のデフォルトプロバイダーチェーンを使用するか、「[AWS SDK for PHP バージョン 3 の認証情報](guide_credentials.md)」に記載されている任意の形式の認証情報を使用することができます。また、[PSR-7 リクエスト](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Psr.Http.Message.RequestInterface.html) (次のコードでは、`$psr7Request` という名前を想定) も必要になります。

```
// Pull credentials from the default provider chain
$provider = Aws\Credentials\CredentialProvider::defaultProvider();
$credentials = call_user_func($provider)->wait();

// Create a signer with the service's signing name and Region
$signer = new Aws\Signature\SignatureV4('es', 'us-west-2');

// Sign your request
$signedRequest = $signer->signRequest($psr7Request, $credentials);
```