

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Proveedor `assumeRoleWithWebIdentityCredentialProvider` en el SDK para PHP
<a name="assume-role-with-web-identity-provider"></a>

 `Aws\Credentials\CredentialProvider::assumeRoleWithWebIdentityCredentialProvider` intenta cargar las credenciales al asumir un rol. Si las variables de entorno `AWS_ROLE_ARN` y `AWS_WEB_IDENTITY_TOKEN_FILE` están presentes, el proveedor intentará asumir el rol especificado en `AWS_ROLE_ARN` utilizando el token en un disco en la ruta completa especificada en `AWS_WEB_IDENTITY_TOKEN_FILE`. Si se emplean las variables de entorno, el proveedor intentará establecer la sesión desde la variable de entorno `AWS_ROLE_SESSION_NAME`.

Si las variables de entorno no están establecidas, el proveedor utilizará el perfil predeterminado o el establecido como `AWS_PROFILE`. El proveedor lee los perfiles de `~/.aws/credentials` y `~/.aws/config` de forma predeterminada y puede leer desde los perfiles especificados en la opción de configuración `filename`. El proveedor asumirá el rol en el `role_arn` del perfil al leer un token desde la ruta completa establecida en el `web_identity_token_file`. El `role_session_name` se utilizará si está establecido en el perfil.

El proveedor se denomina como parte de la cadena predeterminada y se le puede llamar directamente.

```
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
]);
```

De forma predeterminada, este proveedor de credenciales heredará la región configurada, que utilizará StsClient para asumir la función. Opcionalmente, se StsClient puede proporcionar una versión completa. Las credenciales deben configurarse como `false` en las que se proporcionan StsClient.

```
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
]);
```