当前位置: 首页 > 知识库问答 >
问题:

AWS IAM和java sdk服务客户端-如何使用与服务关联的角色生成凭据?

严宇
2023-03-14

我在ECS fargate上运行java应用程序,并在fargate任务中添加了一个角色来执行s3操作。在我的java进程中,我已经开始使用aws sdk的DefaultCredentialsProviderChain.java来获取凭证并创建s3客户端。我面临的问题是理解下面提到的问题:

    < li >链中的哪个类(在DefaultCredentialsProviderChain.java)从关联的角色获取凭据(临时密钥和秘密访问密钥)?这些临时凭证的有效期是多久? < li >我是否可以缓存使用来自DefaultCredentialsProviderChain.java的凭据创建的s3客户端,以便在java服务启动时只构建一次s3客户端,或者每次需要执行任何s3操作时都需要创建s3客户端

我按照下面提到的链接,但没有得到我的答案,有人能帮我理解这些查询。

https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html#credentials-chain

共有1个答案

程项禹
2023-03-14

链中的哪个类(在DefaultCredentialsProviderChain.java中)获取凭据

当您附加运行时角色时,AWS 将提供元数据服务。凭据提供程序将使用该服务来获取运行时凭据。默认情况下,运行时凭据的有效期为一小时(据我回忆)。

https://docs.aws.amazon.com/AmazonS3/latest/userguide/AuthUsingTempSessionToken.html

我可以缓存使用凭据创建的s3客户端吗

是的,你可以。凭证提供者跟踪会话生存期,并在到期前刷新令牌(据我记忆所及)。

这实际上在创建预先设计的url时设置了一些限制。只有在凭据有效时,预签名的url才有效。因此,可能会出现这样的情况:您创建了一个预先指定的url,但该url的有效时间比预期的要短

 类似资料:
  • 在google cloud gui控制台中,我转到“iam&admin”>“service accounts”,并创建了一个名为“my-service-account”的服务帐户,该帐户具有查看器角色。 然后运行以下命令: 并看到以下输出: 根据文档,这意味着该服务帐户没有与其相关联的策略。所以我给它分配了一个“角色”,而这个角色并不包含在它的“政策”中。 如何列出与服务帐户关联的角色? 编辑:感

  • 我一直试图用角色导入预先配置的客户机和服务帐户,所以我的json文件看起来像 我还尝试在导入的领域配置中设置客户端,但在这两种情况下,我都有以下问题 null Keycloak版本为:8.0.0 谢了。

  • 前面的章节介绍了所有 Redis 的重要功能组件: 数据结构、数据类型、事务、Lua 环境、事件处理、数据库、持久化, 等等, 但是我们还没有对 Redis 服务器本身做任何介绍。 不过, 服务器本身并没有多少需要介绍的新东西, 因为服务器除了维持服务器状态之外, 最重要的就是将前面介绍过的各个功能模块组合起来, 而这些功能模块在前面的章节里已经介绍过了, 所以本章将焦点放在服务器的初始化过程,

  • 我试图了解服务器-客户端网络如何为实时多人游戏工作。 假设我正在构建一个实时多人游戏,比如FPS。 如果玩家A向玩家B开枪,后端< code >服务器需要告诉玩家B他们被击中了。 我知道如何让玩家 A 告诉后端服务器他开了一枪,只是向服务器发送请求,但是如何让后端告诉玩家 他们被枪杀了? 玩家B是否必须每0.1秒检查一次后端以查看是否发生了什么事情,或者是否有更有效的方法?

  • 我开发了以下代码,用于自动执行我的一些实例的启动/停止任务,这些实例不需要一直运行,而是在特定范围内运行。 这是我的代码:https://github.com/maartinpii/gcp-shst 我按照谷歌云平台指南(参考:https://cloud.google.com/iam/docs/understanding-service-accounts https://cloud.google.

  • websocket客户端(使用Autobahn/Python和Twisted)需要连接到websocket服务器:客户端需要向服务器提供其客户端证书,客户端需要检查服务器的证书。例如,这些证书是在Kubernetes minikube安装过程中创建的。特别地: 服务器证书(据我所知为X509格式) 客户端证书~/。minikube/客户。按键 我已经检查过,我可以成功地使用这些证书密钥使用发出库伯