当前位置: 首页 > 知识库问答 >
问题:

如何在节点AWS SDK代码中使用AWS ECS任务角色

巫马嘉祯
2023-03-14

使用AWS节点SDK的代码似乎无法获得ECS任务的角色权限。

如果在EC2 ECS实例上运行代码,代码似乎继承了实例上的角色,而不是任务。

如果我在Fargate上运行代码,代码不会得到任何许可。

相比之下,在实例中运行的任何bash脚本似乎都具有适当的权限。

实际上,文档中没有提到这是node sdk的一个选项,只是:

  1. 从Amazon EC2的IAM角色加载(如果在EC2上运行),

有没有办法让您的节点代码获得ECS任务的权限?

这似乎是将权限传递给您的代码的合乎逻辑的方式。它非常适合在实例上运行的代码。

我能想到的唯一解决方法是为每个ECS服务创建一个IAM用户,并在任务定义中将API密钥/机密作为环境html" target="_blank">变量传递。然而,这似乎不是很安全,因为任何有权访问任务定义的人都可以看到它的纯文本。

共有2个答案

逑俊楚
2023-03-14

我明白了。这是个奇怪的问题。

一位同事认为,如果我们调用Object,会“更安全”。冻结过程。环境。这在某种程度上干扰了SDK访问凭据的能力。

去掉了那个“改进”,一切又好了。我认为教训是“不要弄乱process.env”。

米飞龙
2023-03-14

你的问题缺少很多关于如何设置ECS集群的细节,另外我不确定这个问题是针对ECS还是专门针对Fargate。

确保您使用的是最新版本的SDK。Javascript支持ECS和Fargate任务凭据。

ECS上的凭据经常存在混淆。有分配给群集EC2实例的IAM角色和分配给ECS任务的IAM角色。

最常见的问题是ECS任务角色上未设置“信任关系”。选择您的IAM角色,然后选择“信任关系”选项卡,并确保它如下所示:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ecs-tasks.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

除了运行任务和服务所需的标准Amazon ECS权限外,IAM用户还需要iam: PassRole权限才能将IAM角色用于任务。

接下来验证您是否在任务定义中使用了IAM角色。在任务角色字段中指定正确的IAM角色ARN。请注意,这与任务执行角色(允许容器提取图像和发布日志)不同。

接下来确保您的ECS实例正在使用最新版本的ECS代理。代理版本列在右侧“代理版本”列下的“ECS实例”选项卡上。当前版本为1.20.3

您是否使用ECS优化的AMI?如果没有,请将--net=host添加到启动代理的docker run命令中。有关详细信息,请查看此链接。

 类似资料:
  • 问题内容: 我试图在节点中陷入进口的泥潭,并试图使用此示例中提供的语法: [备忘单链接](https://hackernoon.com/import-export-default-require-commandjs- javascript-nodejs-es6-vs-cheatsheet-different-tutorial-example-5a321738b50f) 我正在浏览支持表,但无法找到

  • 根据统一码规范 D91 UTF-16 编码形式:在 U 0000..U D7FF 和 U E000 范围内分配每个 Unicode 标量值的 Unicode 编码形式。U FFFF 到与 Unicode 标量值具有相同数值的单个无符号 16 位代码单元,并将 U 10000..U 10FFFF 范围内的每个 Unicode 标量值分配给代理项对。 术语“标量值”是指 Unicode 码位,即必须通

  • 问题内容: 我目前在我的项目中使用类型,并且遇到问题。 上面的代码中的可以是或。这是类型的原因。 我知道不是。 我需要知道的是如何使它工作。 问题答案: 可编码需要知道要转换的类型。 首先,我将尝试解决不知道类型的问题,看看是否可以解决它并使它更简单。 否则,我目前认为解决您的问题的唯一方法就是使用如下所示的泛型。

  • 我遇到了一个问题,我知道如何计算树中的所有节点,像这样

  • 问题内容: 我需要编写一个代码来比较Java 和Scala的性能。我很难在我的Java代码中使用Scala 。有人可以发布一个真正简单的“ hello world”示例,该示例如何使用Java代码(在文件中)创建Scala 并在其中添加100个随机数吗? PS:我非常擅长Java,但从未使用过Scala。 问题答案: 与其他方式相比,在Scala中使用Java集合要容易得多,但是由于您提出了以下要

  • 我对香草js(来自node.js)很陌生,我想弄清楚如何在我的网站上显示它,它是在线托管的 有没有什么工具我可以使用使它在网页工作。 这是一个简单的木偶演示代码(从文档),我需要运行它在我的网页