Aws ecs fargate ResourceInitializationError:无法提取机密或注册表身份验证

2024-03-13

我正在尝试在 aws-ecs-fargate-1.4.0 平台上运行私有存储库。

对于私有存储库身份验证,我遵循了docs https://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html而且效果很好。

不知何故,在多次更新现有服务后,它无法运行任务并抱怨类似的错误

ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to get registry auth from asm: service call has been retried 1 time(s): asm fetching secret from the service for <secretname>: RequestError: ...

我没有改变ecsTaskExecutionRole它包含获取秘密值所需的所有策略。

  1. AmazonECSTaskExecutionRolePolicy
  2. CloudWatch完全访问
  3. AmazonECSTaskExecutionRolePolicy
  4. 获取秘密值
  5. 获取SSM参数

AWS 员工在这里。

您所看到的情况是由于 Fargate 平台版本 1.3.0 和 Fargate 平台版本 1.4.0 之间网络工作方式的变化所致。作为从使用 Docker 更改为使用 containerd 的一部分,我们还对网络的工作方式进行了一些更改。在 1.3.0 及以下版本中,每个 Fargate 任务都有两个网络接口:

  • 一个网络接口用于处理来自应用程序容器的应用程序流量,以及日志和容器映像层拉取。
  • Fargate 平台使用辅助网络接口 本身,以获取 ECR 身份验证凭据并获取机密。

不过,这个辅助网络接口有一些缺点。此辅助流量未显示在您的 VPC 流日志中。此外,虽然大多数流量保留在客户 VPC 中,但辅助网络接口正在将流量发送到您的 VPC 之外。许多客户抱怨他们无法指定此辅助网络接口上的网络级别控制及其能够连接的内容。

为了减少网络模型的混乱并为客户提供更多控制权,我们在 Fargate 平台版本 1.4.0 中更改为使用单个网络接口并将所有流量(甚至是 Fargate 平台流量)保留在 VPC 内。用于获取 ECR 身份验证和任务机密的 Fargate 平台流量现在使用与其余任务流量相同的任务网络接口,您可以在 VPC 流日志中观察此流量,并使用您自己的 AWS VPC 中的路由表控制此流量。

然而,随着观察和控制 Fargate 平台网络的能力增强,您还需要负责确保您的 VPC 中实际配置了一个网络路径,允许任务与 ECR 和 AWS Secrets Manager 进行通信。

有几种方法可以解决这个问题:

  • 将任务启动到具有公共 IP 地址的公共子网中,以便它们可以使用互联网网关与 ECR 和其他支持服务进行通信
  • 在私有子网中启动任务,该子网具有配置为通过公有子网中的 NAT 网关路由出站流量的 VPC 路由表。这样,NAT 网关就可以代表任务打开与 ECR 的连接。
  • 在私有子网中启动任务,并确保您在 VPC 中配置了 AWS PrivateLink 终端节点,以获取所需的服务(用于图像拉取身份验证的 ECR、用于图像层的 S3 以及用于密钥的 AWS Secrets Manager)。

您可以在这篇官方博文的“任务弹性网络接口 (ENI) 现在运行额外的流量”部分中阅读有关此更改的更多信息

https://aws.amazon.com/blogs/containers/aws-fargate-launches-platform-version-1-4/ https://aws.amazon.com/blogs/containers/aws-fargate-launches-platform-version-1-4/

Update:我创建了一个基础设施即代码模板,该模板部署了一个配置为避免出现此 ResourceInitializationError 的 VPC。它附带了一个图表,可以更好地展示工作 VPC 的外观。很难将所有内容嵌入到这个答案中,所以请参考这个官方的AWS模式作为参考:https://containersonaws.com/pattern/large-vpc-for-amazon-ecs-cluster https://containersonaws.com/pattern/large-vpc-for-amazon-ecs-cluster

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Aws ecs fargate ResourceInitializationError:无法提取机密或注册表身份验证 的相关文章

随机推荐

  • 创建一个简单的用户界面来访问 Oracle 数据库

    这是我所拥有的 1 给我一个简单的sql文件 它创建表并用数据填充它们 2 一个简单的 sql 文件 其中包含我编写的用于显示 操作表的 PL SQL 过程 目标是创建某种用户界面 允许学生登录 查看成绩单 退出课程等 我正在使用sqlpl
  • 网络共享文件夹上的 GIT 存储库中的并发性

    我想要一个存储在 Windows 网络共享上的裸 git 存储库 我使用linux 并使用CIFS挂载了上述网络共享 我的同事使用 Windows XP 并将网络共享自动安装 以某种方式从 ActiveDirectory 作为网络驱动器 我
  • PHP + PDO:如果参数为空则绑定 null

    我正在尝试这个 并且所有 PoST var 在用户发送之前都会被处理 无需担心 SQL 注入 stmt con gt prepare sql stmt gt bindParam 1 this gt getPes cdpessoa stmt
  • HTML2PDF 无法识别表格的大小

    我正在使用 Yii Extension 开发的网页中工作 并且使用 HTML2PDF 扩展来生成 PDF http html2pdf fr http html2pdf fr 虽然 PDF 生成得很好 但它似乎无法识别我的表格大小 我为一行或
  • FAT32 每个目录的文件数限制

    我目前正在尝试在 Xilinx Kintex 7 卡上用 C 语言编写 FAT 系统 它配备了 MicroBlaze 我已经成功创建了大部分所需的功能 我面临的问题是关于文件夹的总容量 我在网上读到 在 FAT32 中 一个文件夹应该能够包
  • 将 Resharper 测试运行器与 Jasmine 2.0 结合使用

    我正在尝试将 VS2013 中的 Resharper v8 2 测试运行程序与 Jasmine 2 一起使用 但在 beforeEach 调用 全局 时遇到问题 该规范文件有一个对 SpecHelper js 的 脚本引用 该引用调用了 b
  • 从 Kickstarter 项目中抓取文本不会返回任何结果

    我正在尝试从 Kickstarter 项目网页中抓取项目的主要文本 我有以下代码 适用于第一个 URL 但不适用于第二个和第三个 URL 我想知道是否可以轻松修复我的代码而无需使用其他软件包 url https www kickstarte
  • 数组放置新需要缓冲区中未指定的开销?

    5 3 4 expr new C 11 Feb 草案给出了示例 new 2 f T 5 结果调用operator new sizeof T 5 y 2 f 这里 x和y是非负未指定值 表示数组分配开销 的结果新表达将从返回的值中抵消此金额o
  • Flash、Flex、Adobe Air、Java FX 和 Silverlight 到底有什么用?

    Flash Flex Adobe Air Java FX 和 Silverlight 到底有什么用 为什么我会选择其中之一而不是另一个 Java Applet 和 ActiveX 控件发生了什么 哦 AJAX 在哪里适合这一切呢 拉斯洛相关
  • pylint 找不到 QWidget 和 QApplication

    import sys from PyQt5 QtWidgets import QApplication QWidget app QApplication sys argv window QWidget window setGeometry
  • 2D char Array 和 char** 之间的区别(OR、3D char Array 和 char*** 等)

    首先 我已经回顾过这些 多维数组在内存中是如何格式化的 https stackoverflow com questions 2565039 how are multi dimensional arrays formatted in memo
  • Phonegap 屏幕因 AdMob 动画而闪烁

    一位用户报告说 当 admob 广告有动画时 应用程序的 html 视图会 闪烁 这是他录制的一个小视频 http www youtube com watch v gQ7yxzpqfDA http www youtube com watch
  • 从同一类中的另一个构造函数调用构造函数

    我有一个有 2 个构造函数的类 public class Lens public Lens string parameter1 blabla public Lens string parameter1 string parameter2 w
  • 为什么Django的Meta是一个旧式类?

    我注意到在 Django 模型中 有一个class Meta这对模型做了一些额外的定义 我的问题是 为什么这是一个老式的课程 即不子类化object 这是有原因的还是这只是一种习俗 我可以在我的项目中将其作为新式课程吗 我相信没有真正的原因
  • UITableView 延迟图像加载,图像在表格停止滚动后出现

    我使用 NSUrlConnection 为 UITableView 实现了延迟图像加载 这一切都运行得非常好 当我打开桌子时 等待一秒钟 在 3G 上 我会自动获取图像 但是 当我滚动时 表格会加载新单元格 启动 NSURLConnecti
  • Neo4j - 按相关性排序

    我想按 Neo4j 中的相关性对返回的数据进行排序 就我的目的而言 相关性可以简化为 我正在搜索的单词的索引 其中索引越低 相关性越高 Example 我有这三个节点 node Label PROD properties name Bear
  • 使用 java 泛型迭代枚举值

    我试图找到一种在使用泛型时迭代枚举值的方法 不确定如何执行此操作或是否可能 下面的代码说明了我想要做的事情 注意代码T values 在以下代码中无效 public class Filter
  • Javascript:用户完成滚动后执行操作

    我正在想办法做到这一点 我有一个盒子清单 每个盒子都是关于150px高的 我正在使用 javascript 和 jquery 并希望在用户向下滚动页面后 页面将自动滚动 以便框与页面的其余部分对齐 也就是说 如果用户滚动并且 y页面位置不能
  • Spacy - 标记带引号的字符串

    我正在使用 spacy 2 0 并使用带引号的字符串作为输入 示例字符串 The quoted text AA XX should be tokenized 并期望提取 The quoted text AA XX should be tok
  • Aws ecs fargate ResourceInitializationError:无法提取机密或注册表身份验证

    我正在尝试在 aws ecs fargate 1 4 0 平台上运行私有存储库 对于私有存储库身份验证 我遵循了docs https docs aws amazon com AmazonECS latest developerguide p