gpt4 book ai didi

java - 如何让本地机器承担IAM角色

转载 作者:行者123 更新时间:2023-12-02 10:00:28 27 4
gpt4 key购买 nike

我有什么

  1. IAM 用户
  2. 具有 s3、sqs 权限的 IAM 角色
  3. Spring Boot 支架
  4. 利用 AWS 资源服务验证 AWS 的 Web 服务基于角色(未提供 key )

我想要什么

  1. 本地运行应用程序
  2. 某种使本地计算机承担所需 IAM 角色的方法

AWS 资源初始化

AmazonS3 amazonS3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new EC2ContainerCredentialsProviderWrapper())
.withRegion(Regions.DEFAULT_REGION)
.withForceGlobalBucketAccessEnabled(true)
.build();

AmazonSQS amazonSQSClient = amazonSQSClient = AmazonSQSClientBuilder.standard()
.withCredentials(new EC2ContainerCredentialsProviderWrapper())
.withRegion(Region.getRegion(regions).getName())
.build();

现在当我运行应用程序并调用电话时显然AWS访问被拒绝

我没有找到任何教程,我可以在本地计算机上进行某些配置并在本地计算机上承担所需的角色。

最佳答案

我们已经遇到过很多次这个问题了。但您的情况更简单,因为您使用的是 DefaultCredentialProviderChain。该链在环境中搜索凭证,然后在 IAM 中搜索(我认为按这个顺序)。

我的建议是忘记 mock IAM,而是 mock 服务。在环境中设置一些虚拟凭证,以便提供商链使用这些凭证而不是尝试使用 IAM。

对于 S3:https://github.com/adobe/S3Mock

对于 SQS:https://github.com/MeteoGroup/sqsmock

现在,如果您绝对决心要模拟 IAM,请查看此内容:https://github.com/NYTimes/mock-ec2-metadata

请注意,这种设置并不值得您从中获得什么。 YMMV

您可能还感兴趣:https://github.com/localstack/localstack

但我还没有使用过那个。

编辑:为什么 mock IAM 很难?因为 iam 凭据来自元数据端点,即 http://169.254.168.254。因此,要模拟 IAM,您必须模拟元数据端点。这通常涉及某种iptables hack。

关于java - 如何让本地机器承担IAM角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55670187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com