View a markdown version of this page

使用共享 AWS 凭据文件 - 适用于 .NET 的 AWS SDK (V4)

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

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

Orange button with text "Click here for details".

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

使用共享 AWS 凭据文件

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

为应用程序提供凭证的一种方法是在共享 AWS 凭证文件中创建配置文件,然后将凭证存储在这些配置文件中。这个文件可以被另一个人使用 AWS SDKs。V isual Studio AWS Tools for Windows PowerShellJetBrains、和 VS Code 的 AWS 工具包也可以使用它。AWS CLI

警告

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

注意

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

要了解最佳安全实践,请使用 AWS IAM Identity Center,如中所述使用进行身份验证 AWS

一般信息

默认情况下,共享 AWS 凭据文件位于您的主.aws目录中的目录中,其名称为credentials~/.aws/credentials(Linux 或 macOS)或%USERPROFILE%\.aws\credentials(Windows)。有关其他位置的信息,请参阅《工具参考指南AWS SDKs 和《工具参考指南》中的共享文件位置。另请参阅 访问应用程序中的凭证和配置文件

共享 AWS 凭证文件是一个纯文本文件,遵循某种格式。有关 AWS 凭证文件格式的信息,请参阅AWS SDKs 和工具参考指南》中的凭证文件格式

您可以通过多种方式管理共享 AWS 凭据文件中的配置文件。

配置文件管理示例

以下各节显示共享 AWS 凭据文件中的配置文件示例。一些示例展示了结果,可以通过前面描述的任何凭证管理方法获得。其它示例显展示了如何使用特定方法。

默认配置文件

共享 AWS 凭据文件几乎总是会有一个名为 defa ult 的配置文件。如果未定义其他配置文件,则在此处 适用于 .NET 的 AWS SDK 查找凭据。

[default] 配置文件通常如下所示。

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

以编程方式创建配置文件

此示例向您展示如何创建配置文件并以编程方式将其保存到共享 AWS 凭据文件中。它使用 Amazon.Runtime 的以下类。 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

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

本示例向您展示了如何以编程方式更新之前创建的配置文件。它使用 Amazon.Runtime 的以下类。 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 区域 适用于 .NET 的 AWS SDK