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

のようにムル上記のコメントで述べたように、シングル クォータで問題は解決しました。次のように secret と入力したところ、問題なく動作するようになりました。

これ答え私の問題は解決しました。

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"
}'

関連情報