问题标签 [aws-sts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4003 浏览

amazon-web-services - STS API 返回的 AWS_SESSION_TOKEN 的功能是什么?

aws sts assume-role返回三个字段作为颁发的临时安全凭证。

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN

前两个与用户的Access Key格式相同,但第三个字段AWS_SESSION_TOKEN是临时凭证的特殊字段。

我有两个问题:

  • 如果AWS_SESSION_TOKEN是为了表示/编码临时有效性,为什么我们仍然需要前两个字段(因为到期后,我们仍然需要获取另一个AWS_SESSION_TOKEN)?
  • 如果我的客户两次调用 STS API,在从 返回的两个响应之间aws sts assume-role,AWS_ACCESS_KEY_ID 会/可能相同吗?
0 投票
1 回答
1743 浏览

amazon-web-services - SAML Assumed-Role 用户无权执行操作

我使用 OKTA 作为我们的身份提供者,它允许我指定用户在登录控制台时可以担任哪些角色。

目标:拥有一个允许用户登录控制台并仅管理其访问密钥(列表、创建、更新、删除)的角色。

此策略允许当前用户管理他们自己的密钥,但在尝试执行除列出访问密钥之外的任何操作时出现此错误

User: arn:aws:sts::[ACCOUNT-NUMBER]:assumed-role/AccessKeyManagement/[Logged In Username] is not authorized to perform: iam:CreateAccessKey on resource: user [Logged In Username]

授予如果我将资源更改为"*"它将起作用,但用户可以更改其他帐户访问密钥。

角色信任关系(以防万一)

我不知道我需要做什么来允许当前用户权限的“假定角色”修改访问密钥。

0 投票
2 回答
885 浏览

amazon-web-services - Azure AD API 用于基于命令行的 SAML2 SSO(用于 AWS 联合登录)

我正在尝试编写一个命令行程序(Go 中的 CLI),它的工作方式应该与此类似:

  1. 用户将她的 Azure AD 用户名/密码凭据提交到 CLI。
  2. CLI 使用凭据对 Azure 进行身份验证,Azure 会为最终用户(例如 MFA)返回一个令牌或另一个质询。
  3. 如果返回另一个质询,CLI 将等待来自用户的输入(例如,MFA 代码)并将输入提交给 Azure AD MFA 输入。如果成功,Azure AD 会返回一个令牌。
  4. CLI 将返回的令牌和 SAML2 请求提交到 Azure AD SAML 端点,并从 Azure AD 返回 SAML2 响应。
  5. 然后,CLI 将 SAML2 响应提交到 AWS SAML 终端节点并取回 AWS IAM 临时凭证。

谢谢,

约西 C.

0 投票
1 回答
2632 浏览

amazon-web-services - AWS:Amazon Cognito 与 STS 和 SAML

在有关 Cognito 的官方 AWS文档中,在一个用例的大纲中指出:

1.在第一步中,您的应用用户通过用户池登录并在成功验证后接收用户池令牌。

2.接下来,您的应用程序通过身份池将用户池令牌交换为 AWS 凭证。

3.最后,您的应用程序用户可以使用这些 AWS 凭证访问其他 AWS 服务,例如 Amazon S3 或 DynamoDB。

通过令牌分配“AWS 凭证”的目标不是通过STS实现吗?

Cognito 和 STS 在授予非 AWS 用户访问 AWS 服务(例如 S3 或 EC2)的范围方面究竟有什么区别?

相同的文档来源还指出,Cognito 也适用于 AWS 和第三方身份提供商(例如社交 - 例如 Facebook - 或 AD 公司)之间的身份联合。

这不也是通过 SAML 联合实现的(即让 AWS 和 IdP 首先建立基于 SAML 的信任关系吗?)

0 投票
1 回答
661 浏览

amazon-web-services - AWS CLI 身份验证方法、AWS 密钥或 AssumeRoleWithSAML?

目前,我们计划将 AWS CLI 用于各种用例。作为 I&AM 架构师,我想使用我们现有的 Active Directory 凭证,而不是创建新的 IAM 用户和密钥。

我们也有 ADFS,并且基于针对 AWS CLI 的 ADFS 集成给出的示例,我能够创建 PowerShell、Python 和 Java 示例脚本来使用 AD 凭证并使用 AWS STS 创建临时凭证。它工作正常。但是,要让我们的开发团队了解使用基于 SAML 的身份验证而不是 AWS CLI 中的永久密钥的好处,我面临着挑战。

各位架构师和开发人员,我想听听您是如何在您的组织中实施 AWS CLI 身份验证的。

0 投票
1 回答
2375 浏览

amazon-web-services - 如何从詹金斯管道设置全局环境变量

我想问一下是否有一种快捷方式来设置由aws sts assume-role一个詹金斯管道生成的全局环境变量。我的目标是让这些生成的值(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN)可重用于一个詹金斯管道上的 3 个阶段步骤。目前我在我的舞台上有这个设置,虽然我觉得它太乱了,我想知道你是否可以建议我一个更好的方法来设置全局变量。我当前的管道如下所示:

}

我真的很想在每个阶段放置这个以使格式更干净

0 投票
2 回答
1610 浏览

amazon-web-services - How to get AWS STS using Federated User?

I'm trying to get temporary STS credentials through a federated user via a corporate account. Corporate policy doesn't allow the use of IAM users and authentication is done through AD.

Using the AWS Cli, I am trying this, but receive an error

AWS Config:

Stacktrace:

An error occurred (InvalidClientTokenId) when calling the AssumeRole operation: The security token included in the request is invalid. 2019-01-29 09:15:54,986 - MainThread - awscli.clidriver - DEBUG - Exiting with rc 255

An error occurred (InvalidClientTokenId) when calling the AssumeRole operation: The security token included in the request is invalid.}

0 投票
1 回答
359 浏览

python - AWS 自定义联合代理:调用联合端点错误 400 python

我正在尝试创建一个 URL,使联合用户能够按照 [官方文档][1] 访问 AWS 管理控制台。我将 Cognito 与 [enhanced authflow][2] 一起使用,以便使用用户名和密码对用户进行身份验证。这是代码:

对于下一步(承担角色并调用联合端点),我没有使用上面链接的官方文档中的示例,因为它使用的是 boto 而不是 boto3。这是代码:

结果是

我错了什么?

[编辑] session_string 中没有错误(sessioId 而不是 sessionId)

现在响应是 400 BAD REQUEST

0 投票
1 回答
289 浏览

python - Bash 与 Python 中视觉上相似字符串的 SHA256 不同

我正在尝试根据https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.htmlSTS GetCallerIdentity的文档构建一个 AWS Signature v4 Auth 标头来调用 API重击。

现在,我在 Python 中使用了相同的过程,在仔细研究了我在 Python 和 Bash 中的脚本和输出之后,我发现在 Bash 中为字符串计算的 SHA256 与在 Python 中计算的不同。

字符串在我的文本编辑器中看起来是一样的——一个字符一个字符。

但由于 SHA256 不同,我假设这很大程度上是字符串编码的问题。

Python 脚本使用 UTF8,即使我尝试printf "%s" "${string}" | iconv -t utf-8 | openssl dgst -sha256在 Bash 脚本中执行,哈希值仍然不同。

如何在计算 SHA256 总和之前将 bash 字符串/变量转换为 UTF8。

0 投票
1 回答
758 浏览

swift - AWS cognito 快速将令牌交换为凭证

我尝试通过此 aws Doc https://docs.aws.amazon.com/en_us/cognito/latest/developerguide/amazon-cognito-integrating-user-pools-with-登录后使用身份池访问 aws 服务 身份池.html

但是在将用户池与身份池部分集成时,我无法在 swift 代码中添加令牌

在 javascript 和 android 中都有 credentialsProvider.logins 。

我收到这样的消息:

或者我需要通过这个文档调用 aws sts api? https://docs.aws.amazon.com/en_us/IAM/latest/UserGuide/id_credentials_temp_request.html

感谢帮助。