本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
login 適用於 PHP 的 SDK 中的 提供者
Aws\Credentials\CredentialProvider::login 會嘗試載入瀏覽器型登入工作階段所設定的登入資料,這些登入工作階段是由 CLI AWS 等工具所協助。身分驗證之後, AWS 會產生跨 AWS SDKs臨時登入資料。
透過此程序,您可以使用在初始帳戶設定期間建立的根登入資料、IAM 使用者或身分提供者的聯合身分進行身分驗證,而適用於 PHP 的 AWS SDK 會自動為您管理臨時登入資料。這種方法無需在本機存放長期登入資料,可增強安全性。
當您執行 aws login命令時,您可以從作用中主控台工作階段中選取 ,或透過瀏覽器型身分驗證流程登入,這會自動產生臨時登入資料。適用於 PHP 的 AWS SDK 會使用登入服務自動重新整理這些登入資料,最長可達 12 小時。
登入提供者會根據提供的設定檔,嘗試載入先前提及的登入工作階段工作流程所產生的存取字符。如果呼叫提供者時未提供任何設定檔,它會先檢查AWS_PROFILE環境變數來嘗試解析設定檔,然後再返回設定檔 default。程式碼內組態可以傳遞給提供者,其中會尋找用於重新整理登入資料之登入服務用戶端region的值。如果組態陣列中未提供任何區域,提供者會檢查AWS_REGION環境變數來嘗試解析區域,然後在解析的設定檔中設定區域值。如果找不到區域,提供者將傳回拒絕承諾,其中包含如何設定區域的指示。
提供者稱為預設鏈結的一部分,可以直接呼叫。
use Aws\Credentials\CredentialProvider; use Aws\S3\S3Client; $provider = CredentialProvider::login(<profile_name>, ['region' => <region>]); // Cache the results in a memoize function to avoid loading and parsing // the ini file on every API operation $provider = CredentialProvider::memoize($provider); $client = new S3Client([ 'region' => 'us-west-2', 'credentials' => $provider ]);
根據預設,如果您想要使用的服務用戶端上未提供登入資料組態,則會呼叫此提供者做為defaultProvider()登入資料鏈結的一部分。在此案例中,服務用戶端的區域會自動傳遞給login()供應商。此外,在此案例中,傳遞給登入供應商的設定檔值將先檢查AWS_PROFILE環境變數,然後再返回設定檔 來解析default。