【问题标题】:how to mask AWS_SECRET_ACCESS_KEY in gitlab-ci如何在 gitlab-ci 中屏蔽 AWS_SECRET_ACCESS_KEY
【发布时间】:2019-09-24 21:43:04
【问题描述】:

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

在 Gitlab 中,当我进入 Settings > CI / CD > Variables 时,我可以放置我的变量,但我无法像 docs 中所述屏蔽 AWS_SECRET_ACCESS_KEY

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

SECRET 的格式类似于xXxxX/lX+KgoS70+wZzzZz,它不符合第二个条件,因此我无法屏蔽日志中的变量,这是一个严重的安全问题。

还有其他选择吗?

【问题讨论】:

    标签: continuous-integration gitlab gitlab-ci


    【解决方案1】:

    使用 GitLab 12.10,2020 年 4 月,这应该更容易,因为:

    • 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”选择预定义变量。

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

    【讨论】:

      【解决方案2】:

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

      在 gitlab forum 上描述了针对相同用例的解决方法:

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

      一个问题是opened 请求允许在掩码变量中使用更多特殊字符。

      编辑:现在在 Gitlab 12.2 中为 fixed@: 也是有效值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-26
        • 2017-06-16
        • 2023-03-17
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多