TL

Cloud Service

OCI Vault

暗号鍵とシークレットを集中管理する OCI のマネージドサービス。HSM で鍵を保護し、Object Storage / Block Volume / Autonomous Database 等と統合して暗号化・ローテーション・監査を提供。AWS KMS に相当。

中級セキュリティ運用上の優秀性信頼性
最終更新: 2026-06-03公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.暗号鍵とシークレットを安全に作成・保管・監査する金庫。
  • 2.鍵は FIPS 140-2 の HSM で保護し、各サービスと統合し自動暗号化。
  • 3.AWS の KMS とSecrets Manager を 1 サービスで兼ねる。

解決する課題

  • データを暗号化したいが、鍵の生成・保管・ライフサイクル管理が煩雑
  • 鍵やシークレットのアクセス制御・ローテーション・監査を統制したい
  • 複数の OCI サービスの暗号化を一元的に扱いたい
  • DB パスワードや API キーをコードにハードコードせず安全に保管・配布したい

主要概念と用語

  • Vault(コンテナ): 鍵とシークレットを束ねる論理的な入れ物。Default(共有パーティション)と Virtual Private Vault(専有 HSM パーティション)の2種類
  • Master Encryption Key(MEK / マスター暗号鍵): Vault 内で管理する鍵本体。アルゴリズムは AES(対称)/ RSA / ECDSA(非対称) に対応
  • Key Version: 鍵のバージョン。ローテーションすると新バージョンが作られ、暗号化は最新版、復号は作成時のバージョンで行われる
  • Protection Mode: 鍵の保護レベル。HSM(鍵は HSM 外に出ない)と Software(ソフトウェアで保護。コスト低・性能高)
  • エンベロープ暗号化(Data Encryption Key / DEK): 実データは DEK で暗号化し、その DEK を MEK で暗号化(Wrap)して保管
  • Secret(シークレット): パスワード / 証明書 / API キーなどの機密値。バージョン管理され、MEK で暗号化して保管
  • OCI IAM ポリシー: manage keys / use keys / manage secret-family などのポリシー文で鍵・シークレットへのアクセスを制御

仕様・制限・クォータ

  • Object Storage / Block Volume / File Storage / Autonomous Database / Exadata 等の暗号化で**カスタマー管理鍵(CMK)**として利用可能
  • リージョン単位のサービス。鍵はレプリケーションで他リージョンへ複製可能(レプリカ Vault)
  • Default Vault は複数テナンシで共有する HSM パーティション、Virtual Private Vault はテナンシ専有でより高い分離・スループット・鍵数上限を提供
  • 暗号化 API(Encrypt / Decrypt / GenerateDataKey 等)にはスループット上限があり、専有が必要な場合は Virtual Private Vault を選択
  • 削除した Vault / 鍵は即時消去ではなく**スケジュール削除(7〜30日の保留期間)**があり、誤削除から復元できる

内部の仕組み

OCI Vault は エンベロープ暗号化 を中核とします。実データは高速な対称鍵(DEK)で暗号化し、その DEK 自体を Vault 上の MEK で暗号化(Wrap)して保管します。復号時は Vault に Wrap された DEK の復号(Unwrap)を依頼し、平文の DEK を得てからデータを復号します。MEK は HSM 保護モードでは HSM の境界外に平文で出ることがなく、暗号・復号操作は HSM 内部で完結します。

鍵やシークレットへのアクセスはすべて OCI Audit サービスにイベントとして記録され、「誰がいつどの鍵で暗号/復号したか」を監査できます。サービス統合(例: Object Storage)では、バケットに MEK の OCID を指定するだけで、各オブジェクトの暗号化に使う DEK を OCI 側が自動生成・管理します。

Vault の「鍵」と「シークレット」の違い

鍵(Key)=暗号化に使う MEK の管理(他データを暗号化するための鍵)。シークレット(Secret)=パスワード/APIキー等の機密値そのものの保管。OCI Vault は1サービスで両方を扱うため、AWS では KMS(鍵)+ Secrets Manager(シークレット値) の2サービスに対応します。

設計パターン / ベストプラクティス

  • 統制が必要なデータは**カスタマー管理鍵(CMK)**を Vault で作成し、Oracle 管理鍵ではなく自前鍵で暗号化(鍵の無効化=データへのアクセス遮断が可能)
  • 自動ローテーションを有効化し、鍵バージョンを定期更新(古いバージョンは復号用に保持される)
  • IAM ポリシーで最小権限:アプリには use keys(暗号/復号のみ)、運用者には manage keys のように用途で分離
  • 高い分離・性能要件や規制対応では Virtual Private Vault を採用
  • DB 資格情報や API キーはシークレットとして保管し、アプリ起動時に動的取得(コードへの埋め込みを排除)
  • 用途・環境(本番/検証)・チームごとに Vault や鍵を分割し、ブラスト半径を限定

運用・監視

  • 鍵・シークレットの利用は OCI Audit で監査し、必要に応じて OCI Logging / Events に連携
  • Events サービスで鍵バージョン作成やシークレット期限切れ間近を検知し、Functions / Notifications で自動対応
  • 復号失敗時は IAM ポリシー / コンパートメント / 鍵の状態(無効化・スケジュール削除中) を確認
  • 鍵やシークレットを誤って削除しても保留期間内は削除キャンセルで復元可能
  • スループット不足が疑われる場合は Virtual Private Vault への移行や DEK のキャッシュ(呼び出し削減)を検討

コスト

項目課金対象コストの考え方
Default Vault の鍵鍵バージョン数 + 暗号API呼び出し共有 HSM パーティションを利用。小〜中規模で低コスト
Virtual Private VaultVault 単位の月額(専有パーティション)高い分離・スループット・鍵数が必要な本番向け。固定費が大きい
Software 保護鍵鍵バージョン数(HSM より安価)HSM 必須でない用途のコスト削減策
シークレットシークレット数 + API 呼び出しDB資格情報/APIキーの保管。鍵とは別課金

セキュリティ

  • 鍵は FIPS 140-2 Security Level 3 認証の HSM で保護(HSM 保護モード時、鍵は境界外に出ない)
  • IAM ポリシーで最小権限を徹底し、use keysmanage keys を分離。コンパートメント単位でスコープを限定
  • アプリにはインスタンスプリンシパル / リソースプリンシパルで権限を付与し、資格情報のハードコードを排除(AWS のインスタンスプロファイル相当)
  • 規制・専有要件は Virtual Private Vault で分離を強化
  • すべての鍵・シークレット操作を OCI Audit で追跡可能にする
アンチパターン

DB パスワードや API キーを設定ファイルやコードに直書きするのは NG。漏洩・ローテーション困難の温床になります。OCI Vault のシークレットに保管し、インスタンス/リソースプリンシパルで実行時に動的取得してください。鍵を Default Vault に置きっぱなしで全環境共用するのもブラスト半径が大きく避けるべきです。

関連サービス・比較(AWS との対応)

観点OCI VaultAWS の対応
位置づけ鍵とシークレットを集中管理KMS(鍵)+ Secrets Manager(シークレット)
鍵の単位Master Encryption Key(MEK)KMS キー(CMK)
保護モードHSM / Software(FIPS 140-2 L3 HSM)KMS(共有HSM)/ CloudHSM(専有)
専有HSMVirtual Private VaultAWS CloudHSM / 専用KMSではない
暗号方式エンベロープ暗号化(DEK を MEK で Wrap)エンベロープ暗号化(データキー)
権限付与IAM ポリシー + インスタンス/リソースプリンシパルキーポリシー/IAM + インスタンスプロファイル
監査OCI AuditCloudTrail

ハンズオン / CLI例

# 1. Vault を作成(DEFAULT タイプ。専有なら VIRTUAL_PRIVATE)
oci kms management vault create \
  --compartment-id <compartment-ocid> \
  --display-name app-vault \
  --vault-type DEFAULT

# 2. 作成した Vault の管理エンドポイント(management-endpoint)を控え、
#    そのエンドポイント経由で AES マスター鍵を HSM 保護モードで作成
oci kms management key create \
  --compartment-id <compartment-ocid> \
  --display-name app-data-key \
  --key-shape '{"algorithm":"AES","length":32}' \
  --protection-mode HSM \
  --endpoint <vault-management-endpoint>

# 3. 鍵の自動ローテーション間隔を設定(例: 90日ごと)
oci kms management key update \
  --key-id <key-ocid> \
  --auto-key-rotation-details '{"rotationIntervalInDays":90}' \
  --endpoint <vault-management-endpoint>

# 4. Object Storage バケットにカスタマー管理鍵(CMK)を割り当て
oci os bucket update \
  --name my-bucket \
  --kms-key-id <key-ocid>

# 5. シークレット(DBパスワード等)を Vault に保管(値は base64)
oci vault secret create-base64 \
  --compartment-id <compartment-ocid> \
  --secret-name db-password \
  --vault-id <vault-ocid> \
  --key-id <key-ocid> \
  --secret-content-content "$(echo -n 'S3cretP@ss' | base64)"

OCI Service

OCI Vaultを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

セキュリティ・ID

比較で見る軸

クラウド: OCI / カテゴリ: セキュリティ・ID / 難易度: intermediate

導入後に効く点

鍵は FIPS 140-2 の HSM で保護し、各サービスと統合し自動暗号化。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
OCI
カテゴリ
セキュリティ・ID
難易度
intermediate
関連資格
設計柱
security / operational / reliability

判断チェックリスト

  • 自社の用途が「セキュリティ・ID / security」に近いか確認する。
  • 強みである「暗号鍵とシークレットを安全に作成・保管・監査する金庫。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

セキュリティ・IDsecurityoperationalreliability

他クラウドの同等サービス

役割が近いサービスです。設計の置き換えや比較検討の参考に。