アプリケーションレイヤーの秘匿情報の管理について
基本的な考え方は下記のスライドにまとめています。
https://gyazo.com/1fdd0d0dba1fe68ee00590ebd32824a4
サービスの振る舞いに関係する秘匿情報に関してはサーバー側においておき、インフラ側とサーバー側の分離を考える上では重要です。
今のサービスではRailsを採用しており、幸いRailsではcredentialsがあるので、秘匿情報はcredentialsにいれておき、repositoryに含めるようにしていす。
RAILS_MASTER_KEYだけは環境変数で受渡していますが、これによりインフラとの結合が最小限におさえられることになります。
GKEには、Cloud KMSと連携する機能がありますが、これもインフラ側とサーバー側の結合を促進するものになるので、個人的には利用は避けたいと思っており、実際には使っていません。 RAILS_MASTER_KEYをCoud KMSに経由で管理もあると思いますが、too much感が強いので今は導入していません。