

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDK for PHP バージョン 3 認証情報プロバイダーの使用
<a name="guide_credentials"></a>

 AWS SDKs、「 SDK [およびツールリファレンスガイド」の「認証情報とアクセス](https://docs.aws.amazon.com/sdkref/latest/guide/access.html)」を参照してください。 *AWS SDKs *

**重要**  
セキュリティのため、ルートアカウントを AWS アクセスに**使用しない**ことを*強くお勧め*します。最新のセキュリティ推奨事項については、必ず *IAM ユーザーガイド*の「[IAM におけるセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

 AWS SDK for PHP バージョン 3 の認証情報プロバイダーの役割は、認証情報を調達して SDK の AWS のサービス クライアントに提供することです。SDK は取得した認証情報を使用して、各リクエストに暗号によって署名することでサービスへの認証を行います。認証情報は通常、アクセスキー、つまりアクセスキー ID とシークレットアクセスキーの組み合わせで構成されます。

[IAM Identity Center 認証を設定](credentials.md#use-idc-for-auth)したり、[IAM ロールを引き受け](assumerole-provider.md)るようにランタイムを設定したりするなど、一時的な認証情報を使用すると、セッショントークンがアクセスキーに追加され、 AWS リソースへの時間制限付きアクセスが提供されます。

## AWS SDK for PHP バージョン 3 の認証情報プロバイダーとは
<a name="cred-provider-defn-php"></a>

認証情報プロバイダは、`GuzzleHttp\Promise\PromiseInterface` インスタンスで満たすかまたは `Aws\Credentials\CredentialsInterface` で拒否した `Aws\Exception\CredentialsException` を返す関数です。[SDK には複数の認証情報プロバイダ関数の実装が用意](built-in-providers-in-the-sdk.md)されており、独自の認証情報を作成したり、認証情報の読み込みを最適化したりするために[カスタムロジックを実装](creating-a-custom-provider.md)することもできます。

認証情報プロバイダは、クライアントコンストラクタの `credentials` オプションで渡されます。認証情報プロバイダは非同期であり、API オペレーションが呼び出されるたびに遅延して評価されるようになっています。そのため、認証情報プロバイダ関数を SDK のクライアントコンストラクタに渡しても、その認証情報はすぐには検証されません。認証情報プロバイダから認証情報オブジェクトが返されない場合、API オペレーションは `Aws\Exception\CredentialsException` で拒否されます。

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

// Use the ECS credential provider. 
$provider = CredentialProvider::ecsCredentials();
// Be sure to memoize the credentials.
$memoizedProvider = CredentialProvider::memoize($provider);

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