使用第 3 適用於 PHP 的 AWS SDK 版登入資料提供者 - 適用於 PHP 的 AWS SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用第 3 適用於 PHP 的 AWS SDK 版登入資料提供者

如需 AWS SDKs 可用登入資料機制的參考資訊,請參閱 AWS SDKs和工具參考指南中的登入資料和存取權

重要

為了安全起見,強烈建議不要使用根帳戶進行 AWS 存取。如需最新的安全建議,請務必參閱《IAM 使用者指南》中的 IAM 中的安全最佳實務

第 3 適用於 PHP 的 AWS SDK 版中登入資料提供者的角色是為開發套件的 AWS 服務 用戶端提供登入資料。SDK 會使用其來源的登入資料,透過密碼編譯方式簽署每個請求來驗證服務。登入資料通常由存取金鑰組成:存取金鑰 ID 和私密存取金鑰。

當您使用臨時登入資料時,例如當您設定 IAM Identity Center 身分驗證或設定執行時間以擔任 IAM 角色時,工作階段字符會新增至存取金鑰,以提供對 AWS 資源的限時存取。

第 3 適用於 PHP 的 AWS SDK 版中的登入資料提供者是什麼?

登入資料供應商是一個函數,會傳回一個 GuzzleHttp\Promise\PromiseInterface,其中包含 Aws\Credentials\CredentialsInterface 執行個體,或被退回並包含 Aws\Exception\CredentialsException開發套件提供登入資料提供者函數的數個實作,或者您可以實作自己的自訂邏輯來建立登入資料或最佳化登入資料載入。

登入資料供應商會傳送至 credentials 用戶端建構函式選項。登入資料供應商為非同步,會在每次叫用 API 操作時,強制其進行延遲評估。因此,將登入資料提供者函數傳遞到軟體開發套件用戶端建構函數,不會立即驗證登入資料。如果登入資料提供者未傳回登入資料物件,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 ]);