MFA認証が必要なAWSアカウントに対してWEB用SDKのS3Clientでアクセスする方法です。
AWSリソース間でのアクセスはRoleでの権限設定が推奨されていますが、例えばローカル開発環境からテストでS3にアクセスするとき、AWS_SESSION_TOKENの設定が必要になります。
対策はaws_session_tokenを配列に指定してオブジェクトを生成するだけです。
$s3 = new S3Client([
'aws_access_key' => env('AWS_ACCESS_KEY'),
'aws_secret_key' => env('AWS_SECRET_ACCESS_KEY'),
'aws_session_token' => env('AWS_SESSION_TOKEN'),
'region' => env('AWS_DEFAULT_REGION'),
'version' => '2006-03-01'
]);
session tokenの取得はcliから。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/authenticate-mfa-cli/