PCD#126(building)
Cloud Run サービスでデータベース接続文字列を機密として扱い、再デプロイなしで定期ローテーションを反映したい。最適な実装はどれか。
正解:A
正解の根拠
Cloud Run はリビジョン作成時に Secret Manager の特定バージョン (例: latest) を環境変数またはボリュームとしてマウントできる。latest 参照かつアプリが起動時に読むなら、シークレットの新バージョン作成時にリビジョンを再作成するだけで再ビルド不要。
実装手順
- Secret Manager にシークレット作成
- Cloud Run サービスアカウントに
roles/secretmanager.secretAccessor付与 gcloud run services update --update-secrets=DB_URL=db-url:latest
不正解の理由
| 選択肢 | 問題点 |
|---|---|
| B | Cloud Storage は機密管理の専用機能 (バージョン管理/IAM粒度/監査) が弱い |
| C | イメージ埋め込みはローテーションのたびに再ビルドが必要で 12-Factor 違反 |
| D | Firestore は機密保管用途では監査・バージョニング機能が不足 |

コメント