第 4 版 (V4) 適用於 .NET 的 SDK 正在預覽!若要在預覽中查看此新版本的相關資訊,請參閱 適用於 .NET 的 AWS SDK (第 4 版預覽) 開發人員指南。
請注意,開發套件的 V4 處於預覽狀態,因此其內容可能會有所變更。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用共用 AWS 登入資料檔案
(請務必檢閱登入資料的重要警告和指引。)
為您的應用程式提供登入資料的一種方法是在共用 AWS 登入資料檔案中建立設定檔,然後將登入資料存放在這些設定檔中。此檔案可供其他 AWS SDKs使用。它也可以由 AWS CLI、 和適用於 Visual StudioAWS Tools for Windows PowerShell、JetBrains 和 VS 程式碼 AWS 的工具組使用。
警告
為避免安全風險,在開發專用軟體或使用真實資料時,請勿使用 IAM 使用者進行身分驗證。相反地,搭配使用聯合功能和身分提供者,例如 AWS IAM Identity Center。
注意
本主題中的資訊適用於您需要手動取得及管理短期或長期憑證的情況。有關短期和長期憑證的其他資訊,請參閱 AWS SDK 和工具參考指南中的其他驗證方法。
如需最佳安全實務,請使用 AWS IAM Identity Center,如 中所述設定 SDK 身分驗證。
一般資訊
根據預設,共用 AWS 登入資料檔案位於主.aws
目錄內的 目錄中,並命名為 credentials
;亦即 ~/.aws/credentials
(Linux 或 macOS) 或 %USERPROFILE%\.aws\credentials
(Windows)。如需有關替代位置的資訊,請參閱 AWS SDKs 和工具參考指南中的共用檔案的位置。另請參閱在應用程式中存取登入資料和設定檔。
共用的 AWS 登入資料檔案是純文字檔案,並遵循特定格式。如需 AWS 登入資料檔案格式的資訊,請參閱 AWS SDKs和工具參考指南中的登入資料檔案格式。
您可以透過多種方式管理共用 AWS 登入資料檔案中的設定檔。
-
使用任何文字編輯器來建立和更新共用的 AWS 登入資料檔案。
-
使用 適用於 .NET 的 SDK API 的 Amazon.Runtime.CredentialManagement 命名空間,如本主題稍後所示。
-
使用適用於 Visual Studio、JetBrains 和 VS Code 的 AWS Tools for PowerShell和 AWS 工具組命令和程序。 https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html
-
使用 AWS CLI 命令,例如
aws configure set aws_access_key_id
和aws configure set aws_secret_access_key
。
設定檔管理範例
下列各節顯示共用 AWS 登入資料檔案中的設定檔範例。部分範例顯示結果,可透過上述任何登入資料管理方法取得。其他範例示範如何使用特定方法。
預設設定檔
共用 AWS 的登入資料檔案幾乎一律會有名為預設值的設定檔。如果未定義其他設定檔,則 會在這裡 適用於 .NET 的 SDK 尋找登入資料。
[default]
設定檔通常如下所示。
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
以程式設計方式建立設定檔
此範例說明如何建立設定檔,並以程式設計方式將其儲存至共用的 AWS 登入資料檔案。它使用下列類別的 Amazon.Runtime.CredentialManagement 命名空間: CredentialProfileOptions、CredentialProfile 和 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
以程式設計方式更新現有的設定檔
此範例說明如何以程式設計方式更新先前建立的設定檔。它使用下列類別的 Amazon.Runtime.CredentialManagement 命名空間:CredentialProfile 和 SharedCredentialsFile。它也會使用 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 區域。