使用 SDK 存放區 (僅限視窗) - AWS SDK for .NET

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

使用 SDK 存放區 (僅限視窗)

(請務必查看重要警告和指引。)

在 Windows 上,SDK 存放區是另一個建立設定檔和儲存AWS SDK for .NET應用程式加密認證的地方。它位於%USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json. 您可以在開發期間使用 SDK Store 作為共用AWS認證檔案的替代方案

警告

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

注意

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

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

一般資訊

SDK 存放區提供下列優點:

SDK 存放區設定檔專屬於特定主機上的特定使用者。您無法複製它們給其他的主機或其他的使用者。這表示您無法針對其他主機或開發人員電腦重複使用開發機器上的 SDK Store 設定檔。這也表示您無法在生產應用程式中使用 SDK Store 設定檔。

您可以透過下列方式在 SDK 存放區中管理設定檔:

設定檔管理範例

下列範例說明如何以程式設計方式在 SDK Store 中建立和更新設定檔。

透過程式建立設定檔

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

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 netSdkStore = new NetSDKCredentialsFile(); netSdkStore.RegisterProfile(profile); }
警告

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

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

"[generated GUID]" : { "AWSAccessKey" : "01000000D08...[etc., encrypted access key ID]", "AWSSecretKey" : "01000000D08...[etc., encrypted secret access key]", "ProfileType" : "AWS", "DisplayName" : "my_new_profile", }

以編程方式更新現有配置

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

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

以下是更新的設定檔。

"[generated GUID]" : { "AWSAccessKey" : "01000000D08...[etc., encrypted access key ID]", "AWSSecretKey" : "01000000D08...[etc., encrypted secret access key]", "ProfileType" : "AWS", "DisplayName" : "my_new_profile", "Region" : "us-west-2" }
注意

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