在Gitlab CI中,我需要将Docker映像推送到AWS ECR,因此我需要AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。
在Gitlab中,当我进入“设置”>“ CI / CD”>“变量”时,我可以放置变量,但无法按照docs中的说明屏蔽AWS_SECRET_ACCESS_KEY
:>
该值必须在一行中。 该值不能包含转义字符。 该值不得使用变量。 该值不能有空格。 该值必须至少为8个字符。
SECRET的格式类似xXxxX/lX+KgoS70+wZzzZz
,它没有通过第二个条件,因此,我将无法掩盖日志中的变量,这是一个严重的安全问题。
还有其他选择吗?
答案 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,这应该更容易,这都是因为:
@
和:
(如Nicolas所述,GitLab 12.2)Easy to configure AWS deployment variables
在部署到AWS时,应尽可能方便地应用必要的环境变量并进行验证。
您现在可以从环境变量键列表中为“ AWS_ACCESS_KEY_ID”,“ AWS_SECRET_ACCESS_KEY”和“ AWS_DEFAULT_REGION”选择预定义变量。
您还将看到输入的经过验证的变量,以确保它们以有效格式输入。