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

aws-java-sdk - 从 AWS Security Token Service 获取的令牌显式过期

我可以使用 AWS Java 开发工具包显式过期从 AWS STS 服务获取的会话令牌吗?

0 投票
2 回答
4259 浏览

amazon-web-services - 在 AWS S3 中上传文件时指定最大文件大小

我正在通过 AWS Security Token Service (AWS STS) 创建临时凭证。并使用这些凭据将文件从 S3 JAVA SDK 上传到 S3。我需要一些方法来限制文件上传的大小。我试图在创建用户时添加策略(s3:content-length-range),但这似乎不起作用。有没有其他方法可以指定用户可以上传的最大文件大小?

0 投票
0 回答
453 浏览

java - 使用 AWS 短期凭证 (AWS STS) 将文件上传到 S3 时设置 ACL

我正在使用 AWS STS 联合令牌来获取临时凭证,并带有以下语句。

现在我可以获得临时凭据,但是当我使用以下方式上传文件时PutObjectRequest

但这是默认的PRIVATE ACL。问题是如何设置PUBLIC ACL?

因为当我使用下面的代码时,

上传失败。

如果在上述获取联合令牌的语句中,我添加如下 ACL

上传仍然失败。

那么在使用短期凭证时如何设置公共 ACL?

我已将以下策略提供给将生成 STS 的 IAM 用户。

0 投票
2 回答
797 浏览

amazon-web-services - 使用 AWS STS 时会向哪个 AWS 账户收费?

我希望使用 AWS STS 从另一个团队拥有的另一个 AWS 账户访问资源。

例如,AWS 账户 A 试图访问 AWS 账户 B。

但是,在阅读了大量 AWS 文档后,我无法确定哪个账户会为跨账户 API 调用计费?

0 投票
1 回答
3305 浏览

javascript - 获取临时 AWS 凭证的推荐方法?AWS.config 还是 STS?

我正在使用需要临时 AWS 凭证才能访问 AWS 服务的第三方开发工具包。我将此 SDK 用作在 EC2 上运行的应用程序的一部分。我的应用程序中的所有 SDK 都需要访问同一个角色,该角色附加到我的 EC2 实例。下面,我列出了我找到的两个用于获取临时凭证的选项。这些选项中的哪一个是为我的第三方 SDK 获取临时凭证的推荐方式?

AWS.config


安全令牌服务 (STS)

0 投票
0 回答
583 浏览

java - Lambda 超时中的 AWS Java 开发工具包 STS

我想通过 Lambda 中的 AWS Security Token Service 获取临时凭证,但它总是超时AWSSecurityTokenServiceClientBuilder.standard().build()

有人帮助我吗?

源代码:

错误信息:

0 投票
0 回答
69 浏览

amazon-web-services - 从 Windows 应用程序调用 AWS KMS 服务有什么想法吗?

我正在开发一个 Windows 应用程序,对于使用 AWS KMS 服务的加密,我能够加密数据,但在这里我传递了 AccessKey 和 SecretKeyId。有什么方法可以消除代码中键的硬编码。我尝试过使用 STS:AssumeRole,但为此我们也需要密钥。

0 投票
0 回答
643 浏览

amazon-web-services - Cognito 用户无法 sts:AssumeRoleWithWebIdentity

我有一个简单的用例来使用 AWS Cognito 对用户进行身份验证,并假设一个角色能够做一些有用的事情(在我的例子中从 S3 读取)。显然我错过了一些非常明显的东西。

我正在使用带有 cognito 身份验证的纯 Web http 客户端(因此 Cognito 可以联合其他身份提供者)并且后端仅接收 id_token。

我可以使用 获取会话凭据getCredentialsForIdentity,显然此凭据已从 Cognito 身份池定义的角色分配了权限(在我的情况下为 Cognito_demoidpoolAuth_Role)

我的想法是创建联合网络身份可以承担的另一个角色。

所以我为 Web Identity 创建了一个新角色,访问数据的角色具有以下策略的信任关系:

以下代码应承担从存储桶中读取所需的角色

在引擎盖下这个对象调用assumeRoleWithWebIdentity,我得到以下异常:

使用 id_token 直接调用 STS assumeRoleWithWebIdentity 以相同的结果结束,因此显然我设置了错误的策略或试图以错误的方式做事。

0 投票
1 回答
1847 浏览

amazon-web-services - AWS 临时安全凭证中的会话令牌有多机密?

我想使用临时安全凭证生成预签名的 S3 URL(我的程序在 EC2 主机上运行,​​该主机具有附加了我想要的策略的 IAM 角色)。

我在文档上看到了如何创建签名请求,我应该提供会话令牌作为预签名 URL 的一部分。这样暴露给公众安全吗?

关于如何使用临时凭证的文档说“AWS 使用会话令牌来验证临时安全凭证”,但是有人可以使用临时安全凭证中的访问密钥和会话令牌(两者都在预签名中可见URL) 做任何恶意的事情?

简而言之,我的问题是:AWS 临时安全凭证中的会话令牌有多机密?自己暴露有危险吗?如果我用相关的访问密钥显示它怎么办?

提前致谢!我一直对此摸不着头脑,因为 STS 文档并不清楚这个会话令牌的秘密程度,而且我绝对希望在安全方面做正确的事情。

0 投票
3 回答
4747 浏览

amazon-web-services - 使用从 AssumeRoleWithSAML 接收的现有令牌刷新 AWS STS 令牌

我有一个用例,我需要为每个经过身份验证的用户提供临时 AWS STS 令牌(使用公司 IDP 进行身份验证)。这些令牌将用于在 AWS S3 中推送一些数据。通过在 IDP 响应中使用 SAML 断言并与 AWS 作为 SP(IDP 发起的登录)集成,我能够获得此流程,类似于此处显示的。

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html#CreatingSAML-configuring

但由于 STS 允许令牌有效期最长为 1 小时,我想在到期前刷新这些令牌,这样我就不必提示用户再次提供凭据(糟糕的用户体验)。此外,由于这些是公司登录凭据,我无法将它们存储在应用程序中。

我正在查看 AWS IAM 信任策略,一种方法是将“AssumeRole”条目添加到现有 SAML 信任策略中,如下所示(策略中的第二个条目)

因此,当 testuser 第一次使用 AssumeRoleWithSAML API/CLI 登录时,他将获得临时凭证。接下来,他可以将“AssumeRole”API/CLI 与这些凭据一起使用,这样他就可以在不需要 IDP 凭据的情况下继续刷新令牌。

可以看出,这仅适用于 ARN 为“arn:aws:sts::xxxxxxxxxxxx:assumed-role/testapp/testuser”的 STS 用户,用于刷新令牌,因为他/她可以担任该角色。但我需要一种通用方式,对于任何登录用户,他都可以生成 STS 令牌。

一种方法是在委托人的信任策略中使用通配符,但看起来它不受支持。因此,每次令牌过期时,我都会坚持使用凭据。有没有办法解决这个问题?

谢谢,罗汉。