Aws\Credentials\CredentialProvider::defaultProvider はデフォルトの認証情報プロバイダです。このプロバイダは、クライアントの作成時に credentials オプションを指定しなかった場合に使用されます。このプロバイダは、環境変数、.ini ファイル (.aws/credentials ファイルから .aws/config ファイルの順)、インスタンスプロファイル (EcsCredentials から Ec2 メタデータの順) の順で認証情報のロードを試行します。
で、IAMロールにS3権限を付与してEC2に割り当てて(さらにDockerコンテナでコネコネする)場合はこんな書き方。
use Aws\Credentials\CredentialProvider;
use Aws\S3\S3Client;
// Use the default credential provider
$provider = CredentialProvider::defaultProvider();
// Pass the provider to the client
$client = new S3Client([
'region' => 'us-west-2',
'version' => '2006-03-01',
'credentials' => $provider
]);
認証情報プロバイダの使用 - AWS SDK for PHP
AWS SDK for PHP バージョン 3 の基本的な使用パターン - AWS SDK for PHP
aws-sdk-php/credentials.rst at master · aws/aws-sdk-php · GitHub
書き方間違えると以下エラーが出がち。
Error retrieving credentials from the instance profile metadata server.