メインコンテンツへ移動
JA
ホーム / 技術ブログ / マルチテナントSaaSのSecretと暗号鍵を管理する
2026年7月18日 · Z-SOFT Admin · 読了目安 5 分

マルチテナントSaaSのSecretと暗号鍵を管理する

短期シークレット、階層暗号化、鍵ローテーションで、顧客を止めずに機密データを守ります。

記事一覧へ戻る

要点: 暗号化は、アイデンティティ、アクセス、キー、運用手順をまとめて管理して初めて安全になります。

この記事の用語: KMS:暗号鍵管理サービス。Envelope Encryption:データ鍵をさらにMaster Keyで保護する方式。

現場の課題

環境ファイルのシークレットは長期間残り、サービスには必要以上の権限が与えられがちです。どのデータがどの鍵を使うか分からなければローテーションも進みません。

単純な対策だけでは不十分な理由

すべてのサービスがMaster Keyを読めるなら暗号化の効果は限定的です。Workload Identity、最小権限、キー バージョン、ローテーション、復元を一つのライフサイクルとして管理します。

処理フロー

Workload Identity
短期Auth
→シークレット Manager
認可Delivery
→KMS・HSM
キー Operation・Audit
→Ciphertext
バージョン キー Ref
短期Authorityとバージョン付きキー Referenceでローテーションします。

アーキテクチャ上の判断

Envelope Encryption

データ鍵をMaster KeyでWrapします。

ポリシーとStorage分離

Ciphertextはキー Referenceだけを保持します。

ローテーションを事前設計

Readerは複数バージョン、WriterはCurrentのみです。

さらに深く考える

Crypto-shreddingの証跡

バックアップ等を含むDeletion Guaranteeを定義します。

Emergency アクセス制限

Approval、期限、Auditを必須にします。

実装手順

  1. シークレットとキーを、担当者、利用サービス、期限ごとに棚卸しします。
  2. 静的認証情報を配布せず、Workload Identityで短期シークレットを取得します。
  3. Envelope Encryptionを使い、暗号文と一緒にキー バージョンを保存します。

コード例: バージョン-aware Decrypt・Rotate

record = { ciphertext, wrappedDataKey, masterKeyVersion }
dataKey = kms.decrypt(record.wrappedDataKey, context = tenantId)
plaintext = decrypt(dataKey, record.ciphertext)
if record.masterKeyVersion != current:
  enqueueRewrap(record.id)

テナントとデータ 種別を暗号化 コンテキストへBindします。

想定しておく障害

  • 旧キーを早く無効化します。
  • バックアップにHistorical キーがありません。
  • DebugでPlaintextをデータ出力します。

監視すべきこと

指標何が分かるか
シークレット・キー Ageローテーション遅延です。
Decrypt・Deny率障害対応を検出します。
キー バージョン別レコードローテーション進捗です。

設計の検証方法

  • Mixed バージョン中にRotateします。
  • 旧バックアップをHistorical キーで復元します。
  • Wrong テナントコンテキストでDecryptを試みます。

本番導入の進め方

シークレットを棚卸ししてソースコードから除き、一サービスへ短期アイデンティティを導入します。重要なデータ種別からEnvelope Encryptionを適用し、ローテーションと復元を訓練して広げます。

本番前チェックリスト

  • ソースコード、Image、ログ、CIにシークレットを残しません。
  • ローテーションにOverlapとロールバックがあります。
  • キー アクセスを最小権限とAuditにします。

まとめ

鍵管理はアイデンティティ、アクセス、ローテーション、復旧のライフサイクルであり、一度の暗号化処理ではありません。

Z-SOFTとの協業

今日のテクノロジーに関する一つひとつの判断が、その後の何年にも影響を与えます。

現状を評価し、目標を明確にし、企業の成長方針に合ったアーキテクチャを選定するために、Z-SOFTのチームにご相談ください。

相談を予約する