簡體   English   中英

檢索存儲在秘密管理器中的 Google Cloud 中的環境變量

[英]Retrieving environment variables in Google Cloud stored in secret manager

我無法檢索在我的 bitbucket 部署應用程序中的代碼中訪問的環境變量。 當我的應用程序啟動時,我想獲取 db uri,如下所示: const uri = process.env.MONGODB_CONNECTION_URI;

每當我從本地構建和推送工件時,我的環境變量都會成功地從我本地存儲在我的機器上的 .env 文件傳遞​​。 顯然我不想提交這個文件。

當我使用 Bitbucket Pipelines 將我的應用程序部署到 GCP 時。 我能夠成功地將新工件推送到 GCP。 但是在應用程序啟動時,它無法檢索我的 db-uri。

這篇文章非常接近於描述我想要實現的目標,但我沒有看到這如何解決這樣一個事實,即屬性值是我無法提交到我的存儲庫的實際秘密,並且需要在應用程序啟動時從某處訪問。

這個問題描述了如何從 Cloud Pipeline 中的秘密管理器訪問變量,而不是在應用程序本身中。

我使用預定義的google-app-engine-deploy-pipe 我的 bitbucket-pipelines.yml 的相關部分如下所示:

branches:
    develop:
      - step:
          name: Deploy
          deployment: test
          script:
            - pipe: atlassian/google-app-engine-deploy:1.0.0
              variables:
                  KEY_FILE: $GCP_SECRET
                  PROJECT: 'test-project'
                  DEPLOYABLES: 'test.yaml'
                  PROMOTE: 'false'
                  STOP_PREVIOUS_VERSION: 'false'

GCP_SECRET是 base-64 編碼的 GCP 服務帳戶,從 Bitbucket 內部的秘密獲取,運行良好。

test.yml ,我有以下內容:

runtime: nodejs
env: flex
instance_class: B1
manual_scaling:
  instances: 1
env_variables:
  NODE_ENV: "test"
  MONGODB_CONNECTION_URI: $MONGODB_CONNECTION_URI

所以我的問題是MONGODB_CONNECTION_URI 我嘗試在 GCP Secret Manager 中添加一個新的 secret,其中我有一個帶有實際連接字符串的條目MONGODB_CONNECTION_URI ,但我的應用程序在啟動時無法找到此屬性。

我哪里錯了? 在如何傳遞我誤解的秘密方面有什么基本的東西嗎?

我可以在 Bitbucket 部署管道中定義並傳遞一個變量嗎? 還是直接從 Google Cloud Platform 訪問環境變量的正確方法?

我建議您參考此文檔鏈接創建和訪問秘密管理器。

此文檔鏈接提供了將 Secret Manager 與各種 GCP 服務結合使用的資源

例如,訪問 Secret Manager 機密並將它們作為環境變量或通過 Cloud Functions 的文件系統公開。 有關詳細信息,請參閱將Secret Manager 密鑰與 Cloud Functions 結合使用。

確保添加密鑰版本需要密鑰、項目、文件夾或組織的 Secret Manager 管理員角色 ( roles/secretmanager.admin )。 不能在秘密版本上授予角色。

請參閱討論了類似的問題。

我能夠在指南的幫助下解決這個問題

我發現該解決方案有點笨拙,但至少現在對我來說效果很好。 基本上,我:

  • 在我的存儲庫中創建一個 shell 腳本,定義我想要填充的變量的名稱。
  • 在 bitbucket 管道內運行腳本,填充我的秘密 bitbucket 部署變量。
  • 這個腳本的結果是一個帶有傳遞的秘密值的 env.-file,並正確地傳遞給我的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM