

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

# SDK for PHP와 함께 사용할 사용자 지정 자격 증명 공급자 생성
<a name="creating-a-custom-provider"></a>

보안 인증 공급자는 호출될 때 `GuzzleHttp\Promise\PromiseInterface` 객체를 통해 이행되거나 `Aws\Credentials\CredentialsInterface`을 통해 거부되는 promise(`Aws\Exception\CredentialsException`)를 반환하는 함수일 뿐입니다.

공급자를 생성하기 위한 모범 사례는 실제 보안 인증 공급자를 생성하기 위해 호출되는 함수를 생성하는 것입니다. 예를 들어 다음은 `env` 공급자의 소스입니다(예시용으로 약간 수정됨). 이 소스는 실제 공급자 함수를 반환하는 함수라는 점에 주의하세요. 이 함수를 사용하여 보안 인증 공급자를 쉽게 생성하고 값으로 전달할 수 있습니다.

```
use GuzzleHttp\Promise;
use GuzzleHttp\Promise\RejectedPromise;

// This function CREATES a credential provider
public static function env()
{
    // This function IS the credential provider
    return function () {
        // Use credentials from environment variables, if available
        $key = getenv(self::ENV_KEY);
        $secret = getenv(self::ENV_SECRET);
        if ($key && $secret) {
            return Create::promise_for(
                new Credentials($key, $secret, getenv(self::ENV_SESSION))
            );
        }

        $msg = 'Could not find environment variable '
            . 'credentials in ' . self::ENV_KEY . '/' . self::ENV_SECRET;
        return new RejectedPromise(new CredentialsException($msg));
    };
}
```