如何在gitlab-ci中屏蔽AWS_SECRET_ACCESS_KEY

时间:2019-05-07 09:00:05

标签: continuous-integration gitlab gitlab-ci

在Gitlab CI中,我需要将Docker映像推送到AWS ECR,因此我需要AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

在Gitlab中,当我进入“设置”>“ CI / CD”>“变量”时,我可以放置变量,但无法按照docs中的说明屏蔽AWS_SECRET_ACCESS_KEY

  

该值必须在一行中。   该值不能包含转义字符。   该值不得使用变量。   该值不能有空格。   该值必须至少为8个字符。

SECRET的格式类似xXxxX/lX+KgoS70+wZzzZz,它没有通过第二个条件,因此,我将无法掩盖日志中的变量,这是一个严重的安全问题。

还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

我的第一个想法是告诉您在base64中编码AWS_ACCESS_KEY_ID,但是由于相同的原因它也不起作用。

在gitlab forum上针对相同的用例介绍了一种解决方法:

echo xXxxX/lX+KgoS70+wZzzZz | base64 -d | base32

opened出现了一个问题,要求允许在掩码变量中使用更多特殊字符。

答案 1 :(得分:0)

对于2020年4月的GitLab 12.10,这应该更容易,这都是因为:

  • Base64字母表(RFC4648)已扩展为接受@:(如Nicolas所述,GitLab 12.2)
  • AWS变量在UI中列出,因此您可以更快地选择它们。

Easy to configure AWS deployment variables

在部署到AWS时,应尽可能方便地应用必要的环境变量并进行验证。

您现在可以从环境变量键列表中为“ AWS_ACCESS_KEY_ID”,“ AWS_SECRET_ACCESS_KEY”和“ AWS_DEFAULT_REGION”选择预定义变量。

您还将看到输入的经过验证的变量,以确保它们以有效格式输入。

https://about.gitlab.com/images/12_10/aws_var.png