为Jenkins / Packer配置正确放置AWS凭证

时间:2019-03-17 23:43:10

标签: amazon-web-services jenkins github packer

我需要让Packer在AWS中构建映像。 Packer模板将存储在Github存储库中,并使用Jenkins进行部署。

我在哪里指定我的AWS访问和密钥?我不能将它们放在Github中的JSON模板中(那很不好):(

我是使用Jenkins服务器上的AWS cli配置访问密钥还是可以在Jenkins Packer插件中指定我的访问密钥?

3 个答案:

答案 0 :(得分:0)

您最好的选择是使用具有实例角色的工作节点,该工作节点具有运行Packer的正确权限。第二好的方法是使用Jenkins secrets plugin来存储秘密,并将其设置为Packer构建作业中的环境变量。

答案 1 :(得分:0)

我将使用Jenkins Secrets插件进行调查。在此期间,我可以在“其他参数”字段下指定秘密密钥和访问密钥,如下所示。 Packer模板保留在Github中,詹金斯在作业运行时将其提取。出于安全考虑,未使用Github Pull插件。

enter image description here

答案 2 :(得分:0)

正如Rickard回答的那样,最好使用实例角色。我们实现的方式是,我们有一个名为“ PackerRole”的角色,该角色具有由打包程序使用的必要权限。在packer.json中,将该角色称为“ iam_instance_profile”:“ PackerRole”。

现在创建一个单独的角色“ JenkinsRole”(Jenkins节点将使用的任何适合您的名称),该角色具有一个内联策略来传递“ PackerRole”。

{             “ Sid”:“”,             “效果”:“允许”,             “ Action”:“ iam:passrole”,             “资源”:“ arn:aws:iam :: 1234567:role / PackerEc2Role”         }