首页 >Java >更新 AWS 凭证

更新 AWS 凭证

PHPz
PHPz转载
2024-02-09 18:51:08893浏览

php小编苹果为您带来最新的关于"更新 AWS 凭证"的指南。AWS凭证是访问亚马逊网络服务(AWS)资源的必需工具,然而,随着时间的推移,凭证可能会过期或失效。为了确保您能够持续访问和管理AWS资源,定期更新AWS凭证是至关重要的。本指南将为您详细介绍如何更新AWS凭证,以确保您的工作不受干扰,并提供一些有用的提示和注意事项,以便您顺利完成此操作。让我们一起来了解吧!

问题内容

我需要有关如何在 aws 凭证过期后更新凭证的建议。

我用这种方式创建 amazonsimpleemailservice 的 bean:

@Bean
    public AmazonSimpleEmailService getSesClient() {
        return AmazonSimpleEmailServiceClientBuilder.standard()
                .withCredentials(new AWSStaticCredentialsProvider(new STSAssumeRoleSessionCredentialsProvider.Builder("ses-role-us-west-2", "mail-sender")
                        .build()
                        .getCredentials())
                )
                .withRegion(Regions.US_WEST_2).build();
    }

但是当我尝试使用它时出现错误:

请求中包含的安全令牌已过期(服务:amazonsimpleemailservice;状态代码:403;错误代码:expiredtoken

如果我在每次发送邮件之前创建一个 ses 客户端实例 - 它可以正常工作,但在每次使用之前创建一个新实例似乎是一个不好的做法。

我了解我通过 stsassumerolesessioncredentialsprovider 获取的凭据存在问题 - 它们只是有一个过期时间。

我想知道是否应该有一种方法可以在凭据即将过期时自动更新凭据,因此我非常感谢有关如何执行此操作的任何建议。

解决方法

stsassumerolesessioncredentialsprovider 将自动刷新凭证,但您通过获取一组凭证并将其传递到 awsstaticcredentialsprovider 实例来阻止该功能。

这应该允许您使用 sts 提供程序的自动刷新:

@Bean
    public AmazonSimpleEmailService getSesClient() {
        return AmazonSimpleEmailServiceClientBuilder.standard()
                .withCredentials(new STSAssumeRoleSessionCredentialsProvider.Builder("ses-role-us-west-2", "mail-sender")
                        .build()
                )
                .withRegion(Regions.US_WEST_2).build();
    }

以上是更新 AWS 凭证的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除