问题标签 [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 回答
2513 浏览

spring - 在 Spring Security SAML 扩展中检索整个 SAML 响应

我有一个设置为服务提供者的 Spring Boot 应用程序。我的最终目标是能够使用 SAML 服务调用 AWS STS Assume Role 以代表用户生成 AWS 临时凭证,其中 SAML 响应用于对我的应用程序的用户进行初始身份验证。

我发现了另一个问题。有了这个答案,我只能得到断言,而不是整个响应。根据我的测试,上面链接的 AWS API 调用需要整个响应,而不仅仅是断言部分。

我使用这个Chrome 扩展程序来查看 SAML 响应。当我包括所有内容时(下面的大纲)

使用 SAML 的 AWS STS 代入角色有效。另一个相关问题的答案只为我提供了

<saml:Assertion>...</saml:Assertion>

块并且 AWS STS 代入 SAML 角色失败。

所以我的问题是如何将整个 SAML 响应 XML 对象返回到我的 Spring Boot 应用程序的控制器中?

0 投票
1 回答
523 浏览

amazon-web-services - 如何从使用临时 saml 凭证创建的 AmazonSecurityTokenServiceClient 中获取会话令牌?

这就是我想要做的-

现在我的“角色”是使用我通过 saml 获得的临时凭据创建的。而且似乎由于 GetSessionToken 为您提供了临时凭据,因此需要使用长期凭据创建“角色”。我似乎找不到解决方法。

本质上,我正在尝试使用具有某些权限的假定 IAM 角色创建一个 AmazonS3Client。如果我设法 GetSessionToken,这就是我计划做的事情-

0 投票
1 回答
12927 浏览

amazon-web-services - aws sts get-session-token 因配置文件失败

我正在尝试获取会话令牌以设置环境变量,以便使用上传到 S3 但不直接支持 AWS 配置文件的工具。

后续调用跳过 MFA 检查,表示它通过了 ok。

get-session-token不带--profile参数运行正常:

可能出了什么问题?我是否以正确的方式去做这件事?

我的相关部分~/.aws/config

0 投票
0 回答
120 浏览

amazon-web-services - 如何验证使用 AWS 临时凭证签名的有效负载并识别委托人?

我正在 AWS 上实施一个解决方案,其中本地客户端(生产者)正在向 AWS SQS 队列发送消息。AWS 使用 AWS IAM 临时凭证在 SQS API 调用 (Sigv4) 上对客户端进行身份验证。

AWS 上处理来自队列的消息的消费者应用程序必须识别(每条消息)客户端的委托人(消息生产者)。

由于客户端已经使用 AWS STS 临时凭证来调用 AWS STS,我想重用这些凭证来签署 (Sigv4) 他们产生的消息,以便应用程序使用者可以验证和识别客户端。

对消息进行签名是可行的,但是应用程序消费者如何识别客户端的主体并验证其签名呢?为此,应用程序使用者必须有权访问:1) 相应的 AWS 访问密钥(用于计算 HMAC 签名)2) 与凭证关联的相应 AWS STS 委托人

例如,AWS 如何在 API Gateway 中实现相同的功能(API Gateway 不仅验证签名,还传播委托人)?

如果没有更简单的方法来验证签名的 SQS 消息 (sigv4) 并传播委托人,我正在考虑以下缓解措施: 1. 使用 API Gateway 作为 AWS Lambda 的前端,后者向 AWS SQS 发送消息(身份验证和主体传播均由 AWS 解决) 2. 引入一个应用程序 STS API,该 API 生成 AWS STS 临时凭证并将访问密钥 ID+Secret+Principal 保存在数据库中,以便稍后验证 sigv4 的 SQS 使用者应用程序可以使用它们消息签名并从数据库中读取主体值。

0 投票
1 回答
1456 浏览

amazon-web-services - STS 角色信任关系

我在目标帐户中定义了信任关系,使用

我想添加一个条件以仅允许特定用户在使用联合 (STS) 时访问此帐户。所以我将信任关系修改为:

但是,这种情况没有得到评估。aws:user-name在这种情况下验证这个条件是否正确?

参考:https ://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html

0 投票
1 回答
8163 浏览

python-3.x - 如何使用 boto3 在 2 个不同帐户中的 S3 存储桶之间复制文件

我正在尝试使用 boto3 从供应商 S3 存储桶向我的 S3 存储桶提交文件。我正在使用 sts 服务来承担访问供应商 s3 存储桶的角色。我能够连接到供应商存储桶并获取存储桶列表。CopyObject operation: Access Denied复制到我的存储桶时遇到错误。这是我的脚本

该行dest_s3.copy...是我得到错误的地方。我的 aws 用户有以下政策,允许复制到我的存储桶

运行上述脚本时出现以下错误。

botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied

0 投票
0 回答
758 浏览

javascript - 如何使用 javascript aws-sdk 寻址 MinIO 服务器获取和使用临时安全凭证进行分段上传?

我有一个 MinIO 服务器,需要编写一个简单的 Web 应用程序来选择一个文件并使用临时安全凭证执行分段上传。我想做类似这里描述的事情:https ://github.com/minio/minio/blob/master/docs/sts/assume-role.md使用我之前创建的一些用户凭证获取临时安全凭证。但我想用 aws-sdk-js 来做。而且我不确定如何为 MinIO 执行此操作,例如指向正确的端点并使用现有的用户凭据来调用 AssumeRole 或其他一些相应的函数。之后我想做一个多部分上传,我也在努力如何使用它。

我已经阅读了文档,但我正在努力以我想要的方式使用 MinIO 提供的功能。

假设角色: https ://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/STS.html

分段上传:https ://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3/ManagedUpload.html

我已经设置了一些代码来显示我想要做什么。multipart-upload.js 创建一个快速服务器,为客户端公开和端点以检索临时安全凭证,这样我就不必与客户端共享任何长期凭证。

多部分上传.js

客户端选择文件并通过按钮上传它们。相应的函数从服务器获取临时安全凭证,并依次执行分段上传。

indexmultipart.html

这段代码并没有真正起作用,我需要一些帮助来实现这样的事情,因为我对 javascript 和 html 都是新手。

0 投票
1 回答
601 浏览

amazon-web-services - 如何强制过期承担角色以支持我的当前帐户帐户将数据存储到我的当前帐户 s3 存储桶中

我有一个 lambda,我通过承担角色访问一个交叉账户

现在我在访问后做了一些操作

就像我得到一些实例信息一样。

现在我想支持我的 lambda 角色(B)并存储这些数据。

并希望将desc这些实例数据存储到我当前 lambda 帐户的一个 s3 存储桶中。

我尝试了这些,但它无法存储数据...有什么方法可以强制使承担角色过期并让我当前的访问角色来存储数据

0 投票
1 回答
146 浏览

python - 如何承担从 python 中的 aws config 规则传递的角色

我正在尝试集中管理在子帐户中运行的自定义配置规则的 lambda 函数。lambda 函数将承担作为参数传递给配置规则的角色。

我正在关注如何跨多个 AWS 账户集中管理 AWS Config 规则 | AWS 开发运营博客

提到这样做:

在 Python 中怎么做?

0 投票
1 回答
1055 浏览

amazon-web-services - 在 Terraform 中覆盖 STS API 端点时的 SignatureDoesNotMatch

我在 AWS 区域 us-west-2(俄勒冈)的私有 VPC 中运行 Terraform。因此,我使用VPC 端点来公开STS API并在 Terraform 中覆盖此端点,如下所示:

不幸的是,这给出了以下错误:

什么可能导致此问题?在公共 VPC 中应用相同的 Terraform 代码而没有端点覆盖按预期工作。

我检查过的事情:

  • 正在运行 Terraform 的实例正在显示正确的时间 (UTC)
  • AWS_REGION 和 AWS_DEFAULT_REGION 环境变量设置为 us-west-2
  • 我用来进行身份验证的 AWS_SECRET_ACCESS_KEY 环境变量(连同 AWS_ACCESS_KEY_ID)仅包含字母数字字符

版本:

  • terraform version: Terraform v0.11.13
  • terraform-provider-aws: v2.17.0