我们可以将文件作为秘密存储在bitbucket中,其中可以定义所有秘密变量吗?

问题描述 投票:0回答:1

根据文档中提到的 -

https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/

没有提到将所有秘密变量存储在单个文件中,然后将该文件完全暴露给管道。

将每个变量定义为单独的秘密意味着每次添加新变量时我们都需要更新管道脚本。但是,如果有一个文件来保存所有秘密并动态公开所有这些秘密变量,我们就不需要在每次添加新变量时更新脚本。

FWIW,这与 Flutter 的情况类似 -

单独定义每个变量 -

--dart-define=someVariable=someValue --dart-define=otherVariable=otherValue --dart-define=thirdVariable=thirdValue

VS

将它们全部定义在一个文件中 -

--dart-define-from-file=<use-define-config.json>

那么,有没有办法在 bitbucket 秘密中实现类似的事情(通过 dart-define-from-file)?

bitbucket bitbucket-pipelines
1个回答
0
投票

安全免责声明:此答案中描述的方法有效地破坏了 Bitbucket Pipelines 安全功能,该功能可以防止在管道日志中打印秘密时意外泄露秘密。


您可以将整个点文件存储为秘密变量,然后导出其内容或将内容转储到某些工具可以加载的文件中。

但请注意

  1. 您将失去一项安全功能,该功能可以防止泄露意外打印在 CI 日志中的个人秘密
  2. 您可能需要使用base64对文件进行编码以保留换行符,请参阅如何将文件存储为bitbucket管道变量?

此外,所有步骤都应以

开头
definitions:
  yaml-anchors:
    - &export-secrets >-
        export $(echo $SECRETS | base64 --decode)

pipelines:
  default:
    - step:
        script: 
          - *export-secrets
          - # ...

definitions:
  yaml-anchors:
    - &dump-secrets >-
        echo $SECRETS | base64 --decode > .env

pipelines:
  default:
    - step:
        script: 
          - *dump-secrets
          - # ...

恕我直言,不太值得。

© www.soinside.com 2019 - 2024. All rights reserved.