AWS 访问密钥 - AWS 软件开发工具包和工具

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

AWS 访问密钥

警告

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

AWS IAM 用户的访问密钥可用作您的 AWS 证书。 AWS SDK 会自动使用这些 AWS 凭据签署 API 请求 AWS,以便您的工作负载可以安全、方便地访问您的 AWS 资源和数据。建议始终使用aws_session_token,这样凭证才是临时的,过期后不再有效。不建议使用长期证书。

注意

如果无法刷新这些临时证书, AWS 则 AWS 可能会延长证书的有效期,这样您的工作负载就不会受到影响。

共享 AWS credentials文件是存储凭据信息的推荐位置,因为它安全地位于应用程序源目录之外,并且与共享config文件的 SDK 特定设置是分开的。

要了解有关 AWS 证书和使用访问密钥的更多信息,请参阅 IAM 用户指南中的AWS 安全证书和管理 IAM 用户的访问密钥。

使用以下方法配置此功能:

aws_access_key_id-共享 AWS config文件设置
aws_access_key_id-共享 AWS credentials文件设置(推荐方法)
AWS_ACCESS_KEY_ID - 环境变量
aws.accessKeyId-JVM 系统属性:仅限 Java/Kotlin

指定作为证书一部分用于对用户进行身份验证的 AWS 访问密钥。

aws_secret_access_key-共享 AWS config文件设置
aws_secret_access_key-共享 AWS credentials文件设置(推荐方法)
AWS_SECRET_ACCESS_KEY - 环境变量
aws.secretAccessKey-JVM 系统属性:仅限 Java/Kotlin

指定用作验证用户身份的凭证一部分的 AWS 密钥。

aws_session_token-共享 AWS config文件设置
aws_session_token-共享 AWS credentials文件设置(推荐方法)
AWS_SESSION_TOKEN - 环境变量
aws.sessionToken-JVM 系统属性:仅限 Java/Kotlin

指定一个 AWS 会话令牌,该令牌用作对用户进行身份验证的凭证的一部分。您会收到此值作为成功请求承担角色所返回的临时凭证的一部分。只有在手动指定临时安全凭证时才需要会话令牌。但是,我们建议您始终使用临时安全凭证代替长期凭证。有关安全建议,请参阅 IAM 中的安全最佳实践

有关如何获取这些值的说明,请参阅 使用短期凭证进行身份验证

configcredentials文件中设置这些必需值的示例:

[default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

Linux/macOS 通过命令行设置环境变量的示例:

export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

Windows 通过命令行设置环境变量的示例:

setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY setx AWS_SESSION_TOKEN AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

与 AWS SDK 的兼容性

以下 SDK 支持本主题中所述的功能和设置。所有部分例外情况均已注明。 AWS SDK for Java 和 AWS SDK for Kotlin 唯一支持任何 JVM 系统属性设置。

SDK 支持 备注或更多信息
AWS CLI v2
适用于 C++ 的 SDK 不支持共享的config文件。
适用于 Go V2 (1.x) 的 SDK
适用于 Go 1.x(V1)的 SDK 要使用共享 config 文件设置,必须开启从配置文件加载的功能;请参阅会话
适用于 Java 2.x 的 SDK
适用于 Java 1.x 的 SDK
适用于 JavaScript 3.x 的软件开发工具包
适用于 JavaScript 2.x 的 SDK
适用于 Kotlin 的 SDK
适用于 .NET 3.x 的 SDK 不支持环境变量。
适用于 PHP 3.x 的 SDK
适用于 Python (Boto3) 的 SDK
适用于 Ruby 3.x 的 SDK
适用于 Rust 的 SDK
用于 PowerShell 不支持环境变量。