amazon-web-services - 使用 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 的文档。
那么我怎样才能获得令牌和秘密并知道如何/何时刷新它们?
解决方案
根据 AWS Support 的说法,添加对 asyncCredentialUpdateEnabled(true) 的调用会在后台进行刷新,而无需任何进一步的努力。
推荐阅读
- python - 崩溃后如何恢复 Python 代码的执行?
- debugging - 如何调试一个文件而不是 Rust 中的包?
- websocket - 发送 SignalR 定时消息
- r - 绘制 3D 密度图使用 gglot/plot_ly
- pine-script - plotshape 没有在正确的烛台上绘制
- javascript - 尝试在 React 中创建标头时出错
- java - 许多无用的 SHOW VARIABLES 查询与 mysql-connector-java-5.1.32
- xamarin.forms - 如何删除 xamarin.android 绑定中的重复事件?
- javascript - React Firebase 不支持的字段值错误 - 未定义的变量
- rust - `(dyn SeekRead + 'static)` 类型的值的大小在编译时无法知道