View a markdown version of this page

SDK 应用商店(仅限 Windows) - 适用于 .NET 的 AWS SDK (V4)

的第 4 版 (V4) 适用于 .NET 的 AWS SDK 已经发布!

有关重大更改和迁移应用程序的信息,请参阅迁移主题。

Orange button with text "Click here for details".

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SDK 应用商店(仅限 Windows)

(请务必查看重要的警告和指南。)

在 Windows 上,SDK 商店是另一个为 适用于 .NET 的 AWS SDK 应用程序创建配置文件和存储加密凭据的地方。它位于 %USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json。在开发过程中,您可以使用 SDK Store 作为共享 AWS 凭证文件的替代方案。

警告

为了避免安全风险,在开发专用软件或处理真实数据时,请勿使用 IAM 用户进行身份验证,而是使用与身份提供者的联合身份验证,例如 AWS IAM Identity Center。

注意

本主题中的信息适用于需要手动获取和管理短期或长期凭证的情况。有关短期和长期凭证的更多信息,请参阅《AWS 开发工具包和工具参考指南》中的其他身份验证方式。

要获得最佳安全实践 AWS IAM Identity Center,请按中所述使用使用进行身份验证 AWS。

一般信息

SDK Store 具有以下优势:

SDK Store 配置文件针对特定主机上的特定用户。无法将这些配置文件复制到其他主机或其他用户。这表示,您无法在其它主机或开发人员计算机上重用您的开发计算机上的 SDK Store 配置文件。这同时也表示,您不能在生产应用程序中使用 SDK Store 配置文件。

您可通过多种方式管理 SDK Store 中的配置文件。

配置文件管理示例

以下示例说明如何在 SDK Store 中以编程方式创建和更新配置文件。

以编程方式创建配置文件

本示例向您展示了如何以编程方式创建配置文件并将其保存到 SDK Store。它使用Amazon.Runtime.CredentialManagement命名空间的以下类:CredentialProfileOptionsCredentialProfile、和NetSDKCredentialsFile。

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", }

以编程方式更新现有配置文件

本示例向您展示了如何以编程方式更新之前创建的配置文件。它使用Amazon.Runtime.CredentialManagement命名空间的以下类:CredentialProfile和NetSDKCredentialsFile。它还使用亚马逊命名空间的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 区域。有关更多信息,请参阅 为设置 AWS 区域 适用于 .NET 的 AWS SDK。

您的应用程序如何使用 SDK 商店中的配置文件

  • 自动解析:在 Windows 上,在解析基于配置文件的凭据时,SDK 会首先检查 SDK 应用商店。通过AWSConfigs.AWSProfileName或AWS_PROFILE环境变量设置配置文件名称,或依赖[default]配置文件。有关更多信息,请参阅 凭证和配置文件解析。

  • 代码中的显式访问:CredentialProfileStoreChain用于加载配置文件并将其证书传递给服务客户端。有关更多信息,请参阅 从 SDK 商店或共享 AWS 凭证文件获取凭证。