CIでGCPのServiceAccountを使って認証する方法

GCPでServiceAccountで認証するときはGOOGLE_APPLICATION_CREDENTIALS環境変数に鍵ファイルのパスを設定するが、CI実行時にはどうするんだろうと考えた結果、鍵ファイルをbase64エンコードしたものをCIの環境変数に設定して、CI実行時にデコードしてGOOGLE_APPLICATION_CREDENTIALS環境変数に設定されているパスに出力とかしたけど、もっといい方法ないのかな。

# 1. 鍵ファイルをbase64でエンコード
cat /path/to/key.json | base64

# 2. 以下をCIの環境変数に設定
#   GOOGLE_APPLICATION_CREDENTIALS_CONTENT 1.でエンコードした文字列
#   GOOGLE_APPLICATION_CREDENTIALS /path/to/key.json

# 3. base64でエンコードされた鍵ファイルをデコードして、`GOOGLE_APPLICATION_CREDENTIALS` のパスに出力
echo $GOOGLE_APPLICATION_CREDENTIALS_CONTENT | base64 -d > $GOOGLE_APPLICATION_CREDENTIALS