

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS SDK for PHP 버전 3으로 Amazon OpenSearch Service 검색 요청에 서명
<a name="service_es-data-plane"></a>

Amazon OpenSearch Service는 인기 있는 오픈 소스 검색 및 분석 엔진인 Amazon OpenSearch Service를 손쉽게 배포, 운영, 확장할 수 있는 관리형 서비스입니다. OpenSearch Service를 사용하면 Amazon OpenSearch Service로 직접 액세스할 수 있습니다. 따라서 개발자는 친숙한 도구뿐 아니라 확실한 보안 옵션을 사용할 수 있습니다. 많은 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 SDK for PHP 버전 3을 AWS 사용하여 로 인증](credentials.md)에 설명된 대로 AWS 보안 인증을 구성합니다. 그 다음 [AWS SDK for PHP 버전 3 설치](getting-started_installation.md)에 설명된 AWS SDK for PHP를 가져옵니다.

## OpenSearch Service 요청 서명
<a name="signing-an-es-request"></a>

OpenSearch 서비스는 [Signature 버전 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)를 사용합니다. 따라서 서비스의 서명 이름(이 경우 `es`)과 OpenSearch Service 도메인의 AWS 리전에 대해 요청에 서명해야 합니다. OpenSearch 서비스가 지원하는 지역의 전체 목록은 Amazon Web Services 일반 참조의 [AWS 리전 및 엔드포인트 페이지](https://docs.aws.amazon.com/general/latest/gr/rande.html)에서 찾을 수 있습니다. 하지만 이번 예제에서는 `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);
```