的版本 4 (V4) 适用于 .NET 的 SDK 正在预览中!要在预览版中查看有关此新版本的信息,请参阅 适用于 .NET 的 AWS SDK (版本 4 预览版)开发者指南。
请注意,SDK 的 V4 处于预览版,因此其内容可能会发生变化。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用共享 AWS 凭据文件
(请务必查看有关凭证的重要警告和指南。)
为应用程序提供凭证的一种方法是在共享 AWS 凭证文件中创建配置文件,然后将凭证存储在这些配置文件中。这个文件可以被另一个人使用 AWS SDKs。V isual Studio AWS Tools for Windows PowerShell、JetBrains、和 VS Code 的 AWS 工具包也可以使用它。AWS CLI
警告
为了避免安全风险,在开发专用软件或处理真实数据时,请勿使用 IAM 用户进行身份验证,而是使用与身份提供者的联合身份验证,例如 AWS IAM Identity Center。
注意
本主题中的信息适用于需要手动获取和管理短期或长期凭证的情况。有关短期和长期凭证的更多信息,请参阅AWS SDKs 和工具参考指南中的其他身份验证方式。
要了解最佳安全实践,请使用 AWS IAM Identity Center,如中所述配置开发工具包身份验证。
一般信息
默认情况下,共享 AWS 凭据文件位于您的主.aws
目录中的目录中,其名称为credentials
:~/.aws/credentials
(Linux 或 macOS)或%USERPROFILE%\.aws\credentials
(Windows)。有关其他位置的信息,请参阅《工具参考指南》AWS SDKs 和《工具参考指南》中的共享文件位置。另请参阅访问应用程序中的凭证和配置文件。
共享 AWS 凭证文件是一个纯文本文件,遵循某种格式。有关 AWS 凭证文件格式的信息,请参阅《AWS SDKs 和工具参考指南》中的凭证文件格式。
您可以通过多种方式管理共享 AWS 凭据文件中的配置文件。
-
使用任何文本编辑器创建和更新共享 AWS 凭据文件。
-
使用 Amazon.Runtime。 CredentialManagement 适用于 .NET 的 SDK API 的命名空间,如本主题后面所示。
-
使用适用于 V isual Studio AWS Tools for PowerShell和 VS Code 的 AWS 工具包的命令和过程。JetBrains
-
使用 AWS CLI 命令;例如
aws configure set aws_access_key_id
和aws configure set aws_secret_access_key
。
配置文件管理示例
以下各节显示共享 AWS 凭据文件中的配置文件示例。一些示例展示了结果,可以通过前面描述的任何凭证管理方法获得。其它示例显展示了如何使用特定方法。
默认配置文件
共享 AWS 凭据文件几乎总是会有一个名为 defa ult 的配置文件。如果未定义其他配置文件,则在此处 适用于 .NET 的 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命名空间: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 区域。