首页 > 解决方案 > 使用 Java 在 ECS 中刷新 AWS 令牌和密钥

问题描述

我可以从 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 获取 ECS 容器中的令牌和机密(请参阅https://aws.amazon.com/premiumsupport/knowledge-center/ecs-fargate-access-aws-services/)。

AWS Java SDK v1 似乎对此进行了包装:https ://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html?com/amazonaws/auth/ContainerCredentialsProvider.html

它似乎还提供了检查到期日期和刷新检索数据的方法。

AWS Java SDK v2 似乎也对此进行了包装:https ://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/EC2ContainerCredentialsProviderWrapper.html

但是它没有给出到期日期,那么这意味着如何使用呢?我得到的印象是令牌持续不到一天。

AWS Java SDK v2 似乎也以另一种方式包装:https ://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/auth/credentials/ContainerCredentialsProvider.Builder.html

它没有给出刷新方法或到期日期,但父类(https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/auth/credentials/HttpCredentialsProvider.Builder.html)允许您可以设置它是否异步刷新,并设置线程名称(大概是为了处理异步刷新),但是没有关于如何使用 asyncThreadName 的文档。

那么我怎样才能获得令牌和秘密并知道如何/何时刷新它们?

标签: amazon-web-servicesamazon-ecsaws-java-sdkaws-java-sdk-2.x

解决方案


根据 AWS Support 的说法,添加对 asyncCredentialUpdateEnabled(true) 的调用会在后台进行刷新,而无需任何进一步的努力。


推荐阅读