在GitLab CI中,Packer遇到AWS未授权错误

3
当我的GitLab Runner运行以下命令时:
time packer build -var "git_branch=$CI_BUILD_REF_NAME" -var "git_hash=$CI_BUILD_REF" -color=false packer-application.json

我遇到了以下错误:

Build 'amazon-ebs' errored: Error creating temporary keypair: UnauthorizedOperation: You are not authorized to perform this operation.
status code: 403, request id: 

然而,如果我通过 ssh 登录到我的 gitlab runner 并手动运行命令,则命令可以成功运行。

有什么想法吗?

1个回答

1
你需要确保构建具有访问AWS API密钥的权限,以更改资源。虽然构建容器在运行时与执行程序完全隔离,但它无法访问底层主机上的环境。
您可以在项目的变量页面下添加(类似于)秘密环境变量。它们将对所有构建可用,因此请注意不要将开发人员或更高级别的访问权限授予不应能够查看密钥的人员。
如果您在运行程序主机上附加了EC2角色,并希望利用该角色来访问API,则可以将运行程序配置为以shell模式运行构建,这意味着它们将直接在主机上作为传统Jenkins构建执行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接