DZone.com Feed 日本語
フォロー
GCPシークレットマネージャー、ライブリロード 守と共に行こう
Google Cloud Secret Manager は、クリーンで意見の分かれるモデルを持っています。シークレットはコンテナであり、その中に不変の番号付きバージョンが存在します。バージョンを編集することはなく、新しいバージョン (1, 2, 3, …) を追加し、準備ができたらトラフィックをそれに移動させます。通常は、最新のエイリアスを解決するか、古いバージョンを無効にすることによって行われます。これは本当に優れた設計です。しかし、ほとんどの Go サービスがシークレットを消費する方法とは衝突します。つまり、起動時に AccessSecretVersion("latest") を一度だけ呼び出し、その結果をキャッシュします。その瞬間から、プロセスは起動時の latest が意味していたものに固定されます。バージョン 4 を追加し、バージョン 3 を無効にしても、サービスは再起動されるまで幸せにバージョン 3 を使い続けます。最良の場合でもスケジュールされた再デプロイであり、最悪の場合、無効になったバージョンが解決を停止したときのインシデントとなります。