

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

# SDK for PHP의 `assumeRoleWithWebIdentityCredentialProvider` 공급자
<a name="assume-role-with-web-identity-provider"></a>

 `Aws\Credentials\CredentialProvider::assumeRoleWithWebIdentityCredentialProvider`는 역할을 위임하여 보안 인증 로드를 시도합니다. 환경 변수 `AWS_ROLE_ARN` 및 `AWS_WEB_IDENTITY_TOKEN_FILE`이 존재할 경우, 공급자는 `AWS_WEB_IDENTITY_TOKEN_FILE`에 지정된 전체 경로에서 디스크의 토큰을 사용하여 `AWS_ROLE_ARN`에서 지정된 역할 위임을 시도합니다. 환경 변수를 사용할 경우, 공급자는 `AWS_ROLE_SESSION_NAME` 환경 변수로부터 세션 설정을 시도합니다.

환경 변수가 설정되어 있지 않다면, 공급자는 기본 프로필 또는 `AWS_PROFILE`으로 설정된 값을 사용합니다. 공급자는 기본적으로 `~/.aws/credentials` 및 `~/.aws/config`에서 프로필을 읽으며, `filename` 컨피그 옵션에서 지정된 프로필을 읽어 들일 수 있습니다. 공급자는 프로필의 `role_arn`에서 역할을 위임하며, `web_identity_token_file`에서 설정된 전체 경로로부터 토큰을 읽습니다. `role_session_name`은 프로필에 설정되어 있는 경우 사용할 수 있습니다.

공급자는 기본 공급망의 한 부분으로서 호출되지만 직접 호출될 수도 있습니다.

```
use Aws\Credentials\CredentialProvider;
use Aws\S3\S3Client;

$provider = CredentialProvider::assumeRoleWithWebIdentityCredentialProvider();
// Cache the results in a memoize function to avoid loading and parsing
// the ini file on every API operation
$provider = CredentialProvider::memoize($provider);

$client = new S3Client([
    'region'      => 'us-west-2',
    'version'     => '2006-03-01',
    'credentials' => $provider
]);
```

기본적으로 이 보안 인증 공급자는 StsClient에서 역할을 위임하기 위해 사용하는 구성된 리전을 상속합니다. 선택적으로 전체 StsClient를 제공할 수 있습니다. 보안 인증은 제공된 모든 StsClient에서 `false`로 설정해야 합니다.

```
use Aws\Credentials\CredentialProvider;
use Aws\S3\S3Client;
use Aws\Sts\StsClient;

$stsClient = new StsClient([
    'region'      => 'us-west-2',
    'version'     => 'latest',
    'credentials' => false
])

$provider = CredentialProvider::assumeRoleWithWebIdentityCredentialProvider([
    'stsClient' => $stsClient
]);
// Cache the results in a memoize function to avoid loading and parsing
// the ini file on every API operation
$provider = CredentialProvider::memoize($provider);

$client = new S3Client([
    'region'      => 'us-west-2',
    'version'     => '2006-03-01',
    'credentials' => $provider
]);
```