使用共用AWS認證檔案 - AWS SDK for .NET

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

使用共用AWS認證檔案

請務必檢閱認證的重要警告和指引。)

為應用程式提供認證的一種方法是在共用AWS認證檔案中建立設定檔,然後將認證儲存在這些設定檔中。此檔案可供其他 AWS SDK 使用。它也可以由AWS CLIAWS Tools for Windows PowerShell、和AWS工具組用於 Visual StudioVS 程式碼JetBrains

警告

為避免安全風險,在開發專用軟體或使用真實資料時,請勿使用 IAM 使用者進行身分驗證。相反地,搭配使用聯合功能和身分提供者,例如 AWS IAM Identity Center

注意

本主題中的資訊適用於您需要手動取得及管理短期或長期憑證的情況。有關短期和長期憑證的其他資訊,請參閱 AWS SDK 和工具參考指南中的其他驗證方法

如需最佳安全實務,請依照 設定 SDK 驗證 中所述使用 AWS IAM Identity Center。

一般資訊

依預設,共用認AWS證檔案位於您主.aws目錄中的目錄中,並命名為credentials;亦即 ~/.aws/credentials (Linux 或 macOS) 或 %USERPROFILE%\.aws\credentials (Windows)。若要取得有關替代位置的資訊,請參閱 AWSSDK 和工具參考指南中共用檔案的位置。另請參閱存取應用程式中的認證和設定檔

共用AWS認證檔案是純文字檔案,並遵循特定格式。如需AWS認證檔案格式的相關資訊,請參閱 AWSSDK 和工具參考指南認證檔案的格式。

您可以透過多種方式管理共用AWS認證檔案中的設定檔。

設定檔管理範例

以下幾節顯示共用AWS認證檔案中的設定檔範例。某些範例會顯示結果,可透過先前所述的任何憑證管理方法取得結果。其他示例顯示了如何使用特定的方法。

預設設定檔

共用AWS認證檔案幾乎都會有一個名為 default 的設定檔。如果沒有定義其他設定檔,則會在這裡AWS SDK for .NET尋找認證。

[default]定檔通常如下所示。

[default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

透過程式建立設定檔

此範例說明如何建立設定檔,並以程式設計方式將其儲存至共用AWS認證檔案。它使用以下類亞馬遜。運行時。 CredentialManagement命名空間:CredentialProfileOptionsCredentialProfile、和SharedCredentialsFile

using Amazon.Runtime.CredentialManagement; ... // Do not include credentials in your code. WriteProfile("my_new_profile", SecurelyStoredKeyID, SecurelyStoredSecretAccessKey); ... void WriteProfile(string profileName, string keyId, string secret) { Console.WriteLine($"Create the [{profileName}] profile..."); var options = new CredentialProfileOptions { AccessKey = keyId, SecretKey = secret }; var profile = new CredentialProfile(profileName, options); var sharedFile = new SharedCredentialsFile(); sharedFile.RegisterProfile(profile); }
警告

這樣的代碼通常不應該在您的應用程序中。如果您將其包含在應用程式中,請採取適當的預防措施,以確保在程式碼、網路或甚至電腦記憶體中看不到純文字金鑰。

以下是此範例所建立的設定檔。

[my_new_profile] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

以編程方式更新現有配置

此範例說明如何以程式設計方式更新先前建立的設定檔。它使用以下類亞馬遜。運行時。 CredentialManagement命名空間:CredentialProfileSharedCredentialsFile。它還使用 Amazon 命名空間的RegionEndpoint類。

using Amazon.Runtime.CredentialManagement; ... AddRegion("my_new_profile", RegionEndpoint.USWest2); ... void AddRegion(string profileName, RegionEndpoint region) { var sharedFile = new SharedCredentialsFile(); CredentialProfile profile; if (sharedFile.TryGetProfile(profileName, out profile)) { profile.Region = region; sharedFile.RegisterProfile(profile); } }

以下是更新的設定檔。

[my_new_profile] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY region=us-west-2
注意

您還可以在其他位置和使用其他方法設置「AWS區域」。如需詳細資訊,請參閱 設定AWS區域