簡體   English   中英

如何使本地計算機承擔IAM角色

[英]how to make local machine to assume IAM role

我有的

  1. IAM用戶
  2. 具有s3,sqs權限的IAM角色
  3. 彈簧靴架
  4. 使用AWS資源的Web服務基於角色的AWS身份驗證服務(未提供密鑰)

我想要的是

  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中搜索(按我認為的順序)。

我的建議是忘記模擬IAM,改為模擬服務。 在環境中設置一些虛擬憑據,以便提供商鏈使用這些憑據而不是嘗試使用IAM。

對於S3: https//github.com/adobe/S3Mock

對於SQS: https : //github.com/MeteoGroup/sqsmock

現在,如果您確定要模擬IAM,請查看以下內容: https : //github.com/NYTimes/mock-ec2-metadata

請注意,為此設置不值得您從中受益。 因人而異

您可能也對以下內容感興趣: https : //github.com/localstack/localstack

但是我還沒有用過那個。

編輯:為什么嘲笑IAM很難? 因為iam憑據來自元數據終結點,該終結點為http://169.254.168.254 因此,要模擬IAM,必須模擬元數據終結點。 這通常涉及某種iptables hack。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM