如何使本地计算机承担IAM角色

时间:2019-04-13 21:52:33

标签: java amazon-web-services amazon-iam

我有什么

  1. IAM用户
  2. 具有s3,sqs权限的IAM角色
  3. 弹簧靴架
  4. 利用AWS资源的
  5. Web服务对AWS进行身份验证的服务 基于角色(未提供密钥)

我想要的

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

Aws资源初始化

require('dotenv').config();

const dbpass = process.env.DB_PASS;
const mlabpass = process.env.MLAB_PASS;

module.exports = {
  MongoURI:
    `mongodb://fishj123:${mlabpass}@ds149885.mlab.com:49885/heroku_26921dvn`,

};

现在当我运行应用程序并进行呼叫时 显然,AWS访问被拒绝了

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

1 个答案:

答案 0 :(得分:1)

我们有很多这个问题。但是,由于您使用的是 <div class="col-sm-8 flexbox-container"> <div class="col-sm-6 btn-group flex-item"> <button type="button" id="id_button_add" class="btn btn-danger btn-block"> <i class="fa fa-remove" aria-hidden="true"></i> <span class="hidden-xs hidden-sm"> Excluir</span> </button> <button type="button" id="id_button_add" class="btn btn-warning btn-block"> <i class="fa fa-lock" aria-hidden="true"></i> <span class="hidden-xs hidden-sm"> Bloquear</span> </button> </div> <div class="col-sm-6 btn-group flex-item"> <button type="button" id="id_button_add" class="btn btn-success btn-block"> <i class="fa fa-calendar" aria-hidden="true"></i> <span class="hidden-xs hidden-sm"> Gerar Horários</span> </button> <button type="button" id="id_button_add" class="btn btn-success btn-block"> <i class="fa fa-search" aria-hidden="true"></i> <span class="hidden-xs hidden-sm"> Filtrar</span> </button> </div> </div> ,因此情况比较简单。该链先在环境中搜索凭据,然后在IAM中搜索(按我认为的顺序)。

我的建议是忘记模拟IAM,改为模拟服务。在环境中设置一些虚拟凭据,以便提供商链使用这些凭据而不是尝试使用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

但是我还没有用过那个。

编辑:为什么嘲笑IAM很难?因为iam凭据来自元数据端点DefaultCredentialProviderChain。因此,要模拟IAM,必须模拟元数据终结点。这通常涉及某种http://169.254.168.254黑客。