【发布时间】:2018-10-05 13:42:31
【问题描述】:
我目前成功地将 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。
为了进一步诊断问题,我尝试添加一个构建命令来针对 AWS 实例元数据地址执行 curl:
curl 169.254.169.254/latest/meta-data/iam/info
它不会像从普通 EC2 环境那样返回实例元数据,而是会超时。
所以问题的根源似乎是代码构建环境不适用于 AWS 元数据查找地址,这导致 AWS 提供商链无法查找凭证。
如何从 codebuild 读取我的 SSM 参数(无需硬编码或使用 SDK 凭据的环境变量)?
【问题讨论】:
标签: amazon-web-services aws-codebuild