

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 适用于 PHP 的 Amazon SDK 版本 3 中的内置凭证提供商
<a name="built-in-providers-in-the-sdk"></a>

SDK 提供了多个内置凭证提供程序，您可以单独使用这些提供程序，也可以在[自定义凭证提供程序链](chaining-providers.md)中结合使用。

当您在创建服务客户端期间指定凭证提供程序时，SDK 会尝试仅使用指定的凭证提供程序来加载凭证。它不使用[默认凭证提供程序链](guide_credentials_default_chain.md)。如果您知道服务客户端需要使用 `instanceProfile` 提供程序，可通过在服务客户端构造函数中指定 `instanceProfile` 提供程序来绕过默认链：

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

$provider = CredentialProvider::instanceProfile();
// Be sure to memoize the credentials
$memoizedProvider = CredentialProvider::memoize($provider);

$client = new S3Client([
    'region'      => 'us-west-2',
    'credentials' => $memoizedProvider  // The default credential provider chain is not used.
]);
```

**重要**  
每次执行 API 操作时均会调用凭证提供程序。如果加载凭证是一项代价高昂的任务（例如从磁盘或网络资源加载）或者凭证未由提供程序缓存，请考虑将您的凭证提供程序包装在 `Aws\Credentials\CredentialProvider::memoize` 函数中。系统会自动记住开发工具包使用的默认凭证提供程序。

**Topics**
+ [适用于 PHP 的 SDK 中的 `login` 提供程序](login-provider.md)
+ [适用于 PHP 的 SDK 中的 `assumeRole` 提供程序](assumerole-provider.md)
+ [适用于 PHP 的 SDK 中的 `sso` 提供程序](sso-provider.md)
+ [适用于 PHP 的 SDK 中的 `defaultProvider` 提供程序](defaultprovider-provider.md)
+ [适用于 PHP 的 SDK 中的 `ecsCredentials` 提供程序](ecscredentials-provider.md)
+ [适用于 PHP 的 SDK 中的 `env` 提供程序](env-provider.md)
+ [适用于 PHP 的 SDK 中的 `assumeRoleWithWebIdentityCredentialProvider` 提供程序](assume-role-with-web-identity-provider.md)
+ [适用于 PHP 的 SDK 中的 `ini` 提供程序](ini-provider.md)
+ [适用于 PHP 的 SDK 中的 `process` 提供程序](process-provider.md)
+ [适用于 PHP 的 SDK 中的 `instanceProfile` 提供程序](instanceprofile-provider.md)