AWS SDK 和工具标准化凭证提供者
许多凭证提供者已标准化为一致的默认值,并且在许多 SDK 中以相同的方式工作。当跨多个 SDK 进行编码时,这种一致性可以提高工作效率和清晰度。所有设置都可以在代码中被覆盖。有关详细信息,请参阅您的特定 SDK API。
重要
并非所有 SDK 都支持所有提供者,甚至提供者内部的所有方面。
了解默认凭证提供者链
所有 SDK 都有一系列地点(或来源)供其检查,以便找到用于向 AWS 服务 发出请求的有效凭证。找到有效凭证后,即停止搜索。这种系统性搜索称为凭证提供者链。
使用其中的一种标准化凭证提供者时,AWS SDK 会始终尝试在凭证到期时自动续订凭证。无论凭证提供者链中使用哪种提供者,内置的凭证提供者链都会确保应用程序能够刷新您的凭证。SDK 无需额外的代码即可完成此操作。
尽管每个 SDK 使用的链各不相同,但它们通常包括以下来源:
| 凭证提供者 | 描述 |
|---|---|
| AWS 访问密钥 | IAM 用户的 AWS 访问密钥(例如 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY)。 |
| 使用 Web 身份或 OpenID Connect 联合身份验证 - 承担角色凭证提供者 | 使用知名的外部身份提供者(IdP)(例如,Login with Amazon、Facebook、Google 或任何其他 OpenID Connect (OIDC) 兼容的 IdP)登录。使用来自 AWS Security Token Service(AWS STS)的 JSON Web 令牌(JWT)代入 IAM 角色的权限。 |
| IAM Identity Center 凭证提供者 | 从 AWS IAM Identity Center 中获取凭证。 |
| 代入角色凭证提供者 | 具有 IAM 角色的权限即可访问其他资源。(检索角色的临时凭证,然后使用该凭证)。 |
| 容器凭证提供者 | Amazon Elastic Container Service(Amazon ECS)和 Amazon Elastic Kubernetes Service(Amazon EKS)凭证。容器凭证提供者为客户的容器化应用程序获取凭证。 |
| 进程凭证提供者 | 自定义凭证提供者。从外部来源或流程(包括 IAM Roles Anywhere)获取您的凭证。 |
| IMDS 凭证提供者 | Amazon Elastic Compute Cloud(Amazon EC2)实例配置文件凭证。将 IAM 角色与您的每个 EC2 实例相关联。在该实例上运行的代码就可以使用该角色的临时凭证。凭证通过 Amazon EC2 元数据服务提供。 |
对于链中的每个步骤,都有多种分配设置值的方法。在代码中指定的设置值始终优先。但是,还有 环境变量 和 使用共享的 config 和 credentials 文件进行 AWS SDK 和工具全局配置。有关更多信息,请参阅 设置的优先级。
特定于 SDK 和工具的凭证提供者链
要直接访问 SDK 或工具的特定凭证提供者链详细信息,请从以下列表中选择您的 SDK 或工具: