Firebase 私鑰檔案作為環境變數

Firebase 私鑰檔案作為環境變數

我對 Ubuntu 很陌生,正在開發一個基於 firebase firestore 資料庫的專案。嘗試在 ubuntu 伺服器 22.04 上執行服務。我可以使用私鑰檔案連接 firestore 資料庫(在 Windows 中我也可以透過使用環境變數來完成此操作),並且我想保守該檔案的秘密。為了實現這一點,創建了一個帶有秘密的文件,並在我的服務配置文件中引用它,如下所示。

[Unit]
Description=myservice

[Service]
Type=simple
Restart=always
RestartSec=5sec
EnvironmetnFile=/etc/mysecrets/mysecret

[Install]
WantedBy=multi-user.target

它適用於小變量,例如

MYSECRET=111111

但不能處理如下圖的文件

    MYSECRET= {
  "type": "service_account",
  "project_id": "my-project-id",
  "private_key_id": "1234567890abcdef",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDzq3MW0BWT4skj\n6pSG0ZXl...U6XyUrhRz\n-----END PRIVATE KEY-----\n",
  "client_email": "[email protected]",
  "client_id": "1234567890abcdef",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-project-id%40my-project-id.iam.gserviceaccount.com"
}

private_key 的長度將超過 1700 個字元\n

如何在 Ubuntu 伺服器中建立包含如此大資訊的安全秘密檔案?任何想法?

PS:這不是真實或有效的私鑰文件

答案1

喜歡穆魯上面的評論告訴我,單一配額解決了我的問題。我剛剛輸入了這樣的秘密,現在就像一個魅力。

回答解決了我的問題。

MYSECRET= '{
  "type": "service_account",
  "project_id": "my-project-id",
  "private_key_id": "1234567890abcdef",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDzq3MW0BWT4skj\n6pSG0ZXl...U6XyUrhRz\n-----END PRIVATE KEY-----\n",
  "client_email": "[email protected]",
  "client_id": "1234567890abcdef",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-project-id%40my-project-id.iam.gserviceaccount.com"
}'

相關內容