使用AWS Codebuild时如何读取SSM参数?

2024-01-04

我目前正在成功使用 codebuild 来执行简单的构建任务(在非 vpc 配置中)。

但现在我尝试运行一个读取 SSM 参数值的构建任务,但它失败了,因为它无法加载任何凭据,明显的原因是:

com.amazonaws.auth.InstanceProfileCredentialsProvider@5754b242: Unable to load credentials from service endpoint

我分配给 codebuild 项目的 IAM 服务角色确实有ssm:GetParameters我试图读取的参数的权限(如果这是问题所在,我希望看到一个unauthorized消息,而不是unable to load credentials).

我正在使用 Java SDK 执行 SSM GetParameter 调用,我已确认该调用确实可以在从 EC2 实例运行时读取 SSM 参数,因此我非常确定这里的问题是 Codebuild。

为了进一步诊断问题,我尝试添加一个构建命令来执行curl针对 AWS 实例元数据地址:

curl 169.254.169.254/latest/meta-data/iam/info

它不会像正常 EC2 环境那样返回实例元数据,而是会超时。

因此,问题的根源似乎是代码构建环境无法与 AWS 元数据查找地址配合使用,这导致 AWS 提供商链无法查找凭证。

如何从 codebuild 读取 SSM 参数(无需硬编码或使用 SDK 凭据的环境变量)?


我可以问你为什么不使用内置方法AWS CodeBuild?您可以从中获取参数SSM通过你的构建规范AWS CodeBuild项目。在这种情况下,通过 Java SDK 进行的额外调用已过时。

version: 0.2

env:
  parameter-store:
    key: "value"
    key: "value"

phases:
  build:
    commands:
      - command
      - command

参数存储:如果指定了 env 并且您想要 检索存储在 Amazon EC2 Systems 中的自定义环境变量 管理器参数存储。包含键/值标量的映射, 其中每个映射代表一个自定义环境变量 存储在 Amazon EC2 Systems Manager 参数存储中。关键是名字 您稍后将在构建命令中使用来引用此自定义 环境变量,value是自定义环境的名称 存储在 Amazon EC2 Systems Manager 参数存储中的变量。

欲了解更多信息,请查看AWS CodeBuild 的构建规范参考 https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html

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

使用AWS Codebuild时如何读取SSM参数? 的相关文章

随机推荐

  • 更改 LinearLayout 中分隔线的颜色

    我可以知道如何更改分隔线的颜色吗LinearLayout
  • 如何使用 http 上的智能协议(原始)获取 git 对象?

    我正在尝试使用 git 智能协议通过 http 从 github com git git 获取标签 v2 4 2 的注释 获取引用 curl H User Agent git 1 8 1 v https github com git git
  • PHP MYSQL -> 显示从 MYSQL 数据库保存为“日期”类型的日期

    我还在习惯使用 PHP 和 MYSQL 所以请耐心等待 我有一个名为 employee datetable 的数据库表 其中包含一个名为 datetime 的字段 其中包含明年实际日期的 365 条记录 2014 年 8 月 13 日到 2
  • 如何从 Google Chrome 启用本地文件系统读写访问?

    我需要使用 HTML Javascript 代码从 Google Chrome 启用本地文件系统读 写访问 我正在使用存储在本地系统中的一组 html 页面 即 file c project1 page html 我目前的观察是 我们可以使
  • C++纯虚函数有函数体[重复]

    这个问题在这里已经有答案了 纯虚函数 当我们设置 0 也可以有一个函数体 如果纯虚函数根本不会被调用 那么为它们提供函数体有什么用呢 您认为无法调用纯虚函数的假设是绝对错误的 当一个函数被声明为纯虚函数时 它仅仅意味着该函数无法被调用动态地
  • 在哪里可以找到 Google Cloud 计算成本明细?

    我正在尝试 Google 云计算 它与 Microsoft Azure 完全不同 但我很难掌握它的窍门 例如 您在哪里可以找到相当于 Microsoft Azure 成本细目的 Google 云计算 请看这个截图 你就会知道我在说什么 微软
  • 检查大型矩阵 Matlab 中的重复条目

    我有一个非常大的矩阵 901x1801 它是通过组合三个相似数组 其中包含重复值 的值来生成的 以使用数学表达式生成唯一的代码 矩阵中充满了这些代码 我的问题是 我如何检查矩阵 901x1801 的每个值都是唯一的并且一次都不重复 或者 谁
  • D3.js 设置初始缩放级别

    我设置了几个图表来放大容器 效果很好 然而 在初始加载时 缩放级别太接近 有没有一种方法可以设置初始缩放级别以避免首先缩小 我熟悉 scale 方法 但没有运气实施它 这是要走的路还是我缺少什么 到目前为止 我所掌握的有关缩放的信息如下 v
  • SSIS 设计器运行速度非常慢

    我正在开发一个 SQL Server 集成服务包 我一直在对这个包进行一些重大重构 现在设计器运行得非常慢 即使在屏幕上移动组件也会导致设计人员停滞 2 3 分钟 查看任务管理器 Visual Studio 在此期间消耗了大约 80 的 C
  • 我可以查看由soap wcf 调用发出的原始请求吗

    我正在使用 WCF 向第三方服务发出 SOAP 请求 该服务要求我签署请求 我认为我正在这样做 但我收到错误 Could not create SSL TLS secure channel所以我想知道是否有办法查看正在发送的原始 xml 以
  • Laravel 4:保护控制器提供的路由

    我正在构建一个 Laravel 4 应用程序 我想保护我的管理区域 因此只有在用户登录 经过身份验证后才能访问它 做这个的最好方式是什么 Laravel 文档说你可以像这样保护路由 Route get profile array befor
  • android edittext 文本向右对齐,标签向左对齐

    我想要一个编辑文本 其中标签 名称 显示在编辑文本的左侧 并且从右到左输入输入 如果我将 android gravity 设置为 right 输入将从右到左 但在这种情况下 标签 即编辑文本的 android text 给出的任何内容 也会
  • 使用 Java 通过 Tensorflow Serving 进行推理

    我们正在将现有的 Java 生产代码转换为使用 Tensorflow Serving TFS 进行推理 我们已经重新训练了模型并使用新的 SavedModel 格式保存了它们 不再有冻结图表 从我读过的文档来看 TFS并不直接支持Java
  • 如何总结 XSL 中 for-each 循环的结果?

    我是 XSL 新手 所以我真的不知道如何做到这一点 我有一个 for each 语句 它对 单元格 类型的每个元素进行一些计算 如何汇总结果并将其存储在变量中以便显示它 我已经包含了部分代码 我希望有人知道这个问题的解决方案 感谢您的时间和
  • Google ndb 库中的内存泄漏

    我认为存在内存泄漏ndb图书馆 但我找不到在哪里 有没有办法避免下面描述的问题 您是否有更准确的测试想法来找出问题所在 这就是我重现问题的方式 我创建了一个包含 2 个文件的简约 Google App Engine 应用程序 app yam
  • 当特定条件为 true 时,Bash 替换字符串

    我正在尝试替换同一行中特定条件为真的字符串 我有一个包含一些行的文件 我在以另一个单词 word3 开头的每一行中用另一个单词 word2 替换一个单词 word1 例如 foo moo see kaa haa qee foo dee se
  • 查询 DBpedia 以获取图书的元数据

    我有一堆 ISBN 我要查询DBpedia并获取书籍的元数据 我无法理解SPARQL 有人可以告诉我如何获取一本书的元数据吗DBpedia在Java中 SPARQL 既是一种查询语言 也是一种查询所谓的协议SPARQL 端点 向 DBped
  • 从 Numpy 数组的索引中采样的有效方法?

    我想从 2D Numpy 数组的索引中进行采样 考虑到每个索引都按该数组内部的数字进行加权 我知道的方式是numpy random choice但是 这不会返回索引 而是返回数字本身 有什么有效的方法吗 这是我的代码 import nump
  • 我应该在 MVC Razor 中的哪里找到共享 @helper 函数

    我有一个辅助功能 可以将分钟变成小时 分钟 我目前在我的layout cshtml 中有它 但每个页面都看不到该功能 我应该将辅助函数放在哪里以便每个页面都可以看到它 helper DisplayElapsedTime int timeIn
  • 使用AWS Codebuild时如何读取SSM参数?

    我目前正在成功使用 codebuild 来执行简单的构建任务 在非 vpc 配置中 但现在我尝试运行一个读取 SSM 参数值的构建任务 但它失败了 因为它无法加载任何凭据 明显的原因是 com amazonaws auth Instance