Amazon 访问密钥
警告
为了避免安全风险,在开发专用软件或处理真实数据时,请勿使用 IAM 用户进行身份验证,而是使用与身份提供者的联合身份验证,例如 Amazon IAM Identity Center。
IAM 用户的 Amazon 访问密钥可用作您的 Amazon 凭证。Amazon SDK 会自动使用这些 Amazon 凭证签署向 Amazon 发出的 API 请求,以便您的工作负载可以安全、便捷地访问您的 Amazon 资源和数据。建议始终使用aws_session_token,这样凭证才是临时的,过期后不再有效。不建议使用长期凭证。
注意
如果 Amazon 无法刷新这些临时凭证,Amazon 可能会延长凭证的有效期,这样您的工作负载就不会受到影响。
共享 Amazon credentials文件是存储凭证信息的推荐位置,因为它安全地位于应用程序源目录之外,并且与共享的config文件的 SDK 特定设置是分开的。
要了解有关 Amazon 凭证和使用访问密钥的更多信息,请参阅 IAM 用户指南中的Amazon 安全凭证和管理 IAM 用户的访问密钥。
使用以下方法配置此功能:
aws_access_key_id- 共享 Amazonconfig文件设置aws_access_key_id- 共享 Amazoncredentials文件设置(推荐方法)AWS_ACCESS_KEY_ID- 环境变量aws.accessKeyId:JVM 系统属性,仅适用于 Java/Kotlin-
指定用作凭证一部分的对用户进行身份验证的 Amazon 访问密钥。
aws_secret_access_key- 共享 Amazonconfig文件设置aws_secret_access_key- 共享 Amazoncredentials文件设置(推荐方法)AWS_SECRET_ACCESS_KEY- 环境变量aws.secretAccessKey:JVM 系统属性,仅适用于 Java/Kotlin-
指定用作凭证一部分的对用户进行身份验证的 Amazon 私有密钥。
aws_session_token- 共享 Amazonconfig文件设置aws_session_token- 共享 Amazoncredentials文件设置(推荐方法)AWS_SESSION_TOKEN- 环境变量aws.sessionToken:JVM 系统属性,仅适用于 Java/Kotlin-
指定用作凭证一部分的 Amazon 会话令牌,以对用户进行身份验证。您会收到此值作为成功请求承担角色所返回的临时凭证的一部分。只有在手动指定临时安全凭证时才需要会话令牌。但是,我们建议您始终使用临时安全凭证代替长期凭证。有关安全建议,请参阅 IAM 中的安全最佳实践。
有关如何获取这些值的说明,请参阅 使用短期凭证进行 Amazon SDK 和工具的身份验证。
在config或credentials文件中设置这些必需值的示例:
[default] aws_access_key_id =AKIAIOSFODNN7EXAMPLEaws_secret_access_key =wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYaws_session_token =AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
Linux/macOS 通过命令行设置环境变量的示例:
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLEexport AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYexport AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
Windows 通过命令行设置环境变量的示例:
setx AWS_ACCESS_KEY_IDAKIAIOSFODNN7EXAMPLEsetx AWS_SECRET_ACCESS_KEYwJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYsetx AWS_SESSION_TOKENAQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
Amazon SDK 和工具支持
以下 SDK 支持本主题中所述的功能和设置。所有部分例外情况均已注明。任何 JVM 系统属性设置都仅支持 适用于 Java 的 Amazon SDK 和 适用于 Kotlin 的 Amazon SDK。
| SDK | 支持 | 备注或更多信息 |
|---|---|---|
| Amazon 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 的 SDK | 是 | |
| 适用于 JavaScript 2.x 的 SDK | 是 | |
| 适用于 Kotlin 的 SDK | 是 | |
| 适用于 .NET 4.x 的 SDK | 是 | |
| 适用于 .NET 3.x 的 SDK | 是 | |
| 适用于 PHP 3.x 的 SDK | 是 | |
| 适用于 Python (Boto3) 的 SDK |
是 | |
| 适用于 Ruby 3.x 的 SDK | 是 | |
| 适用于 Rust 的 SDK | 是 | |
| 适用于 Swift 的 SDK | 是 | |
| Tools for PowerShell V5 | 是 | |
| Tools for PowerShell V4 | 是 | 不支持环境变量。 |