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.