AWS 访问密钥 - AWS SDKs 和工具

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

AWS 访问密钥

警告

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

IAM 用户的 AWS 访问密钥可用作您的 AWS 凭证。AWS SDK 会自动使用这些 AWS 凭证签署向 AWS 发出的 API 请求,以便您的工作负载可以安全、便捷地访问您的 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 中的安全最佳实践

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

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 支持本主题中所述的功能和设置。所有部分例外情况均已注明。任何 JVM 系统属性设置都仅支持 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK。