委托人(个人或应用程序)使用实体(用户或角色)向 AWS API 发送请求。现在,当您使用 AWS 控制台与 AWS 生态系统交互时,我知道这些请求是自动签名的,以便 AWS 可以识别发送它们的人员(而您需要手动签署 HTTP API 调用)。
-
向 AWS API 发出的每个请求是否都经过签名?无论请求是否从 Console/CLI/SDK/HTTP API 发出。我知道很少有 STS 和 S3 操作是例外,但我的问题是找出对请求进行签名是否取决于请求的来源,即控制台/CLI/SDK/HTTP API?或者,如果这适用于所有自动或手动?
-
在 IAM 用户指南文档中,提到 -
当您使用 AWS 命令行界面 (AWS CLI) 或其中一个 AWS 开发工具包向 AWS 发出请求,这些工具会自动签署 使用您在以下情况下指定的访问密钥请求 配置工具
那么,当通过 AWS 控制台发出请求时,这些请求是如何签名的?因为控制台用户没有访问密钥?
- 代入角色时,用户使用请求中指定的角色发送 STS:Assumerole 请求。返回的临时凭证是适用于代入该角色的用户,还是临时凭证适用于该角色?基本上,我试图理解的是 STS:Assumerole 是要验证角色还是承担角色的用户?
CLI 使用Python SDK (boto3),它使用 HTTP API。它们都以相同的方式对 HTTP API 请求进行签名。如果不先配置访问密钥,则无法使用 CLI。
sts:AssumeRole
为您提供该角色的临时访问密钥,而不是用户的临时访问密钥。