Cloud Service
OCI External Key Management
暗号鍵を OCI 外部のサードパーティ鍵管理基盤に置いたまま、OCI サービスの暗号化に利用できる。鍵の完全所有と規制対応を両立しつつクラウドを使える。AWS KMS の External Key Store 相当。
- 1.鍵を OCI 外の外部 KMS に保持したまま OCI の暗号化に使える仕組み。
- 2.鍵素材を自社管理下に置けるため、主権・規制要件に応える。
- 3.AWS KMS の External Key Store(XKS)に相当する位置づけ。
解決する課題
- 規制・主権要件により、暗号鍵の素材をクラウド事業者に預けたくない
- 既存のオンプレ/サードパーティ鍵管理基盤を引き続き利用しながらクラウドを使いたい
- 鍵の完全な所有・廃棄の主導権を自社に残したい(鍵を消せばクラウド側のデータも復号不能にできる)
- 複数環境で鍵管理ポリシーを一元化し、クラウド固有の鍵に分散させたくない
主要概念と用語
- External Key Management(外部鍵管理): 鍵素材を OCI 内部の HSM ではなく、OCI 外部のサードパーティ鍵管理システムに保持したまま、OCI サービスの暗号化に利用する方式
- External KMS(外部 KMS): 顧客側が運用する鍵管理基盤。代表例は Thales CipherTrust などの製品で、鍵素材はここに留まる
- External Key(外部鍵): 外部 KMS 側に存在する鍵本体。OCI は鍵の参照とプロキシ呼び出しを行い、素材そのものは受け取らない
- OCI Vault との関係: OCI Vault(KMS)の鍵タイプの一つとして外部鍵を扱い、Vault が外部 KMS への暗号・復号要求を仲介する
- エンベロープ暗号化: 実データは DEK で暗号化し、その DEK の Wrap/Unwrap を外部鍵に依頼する。鍵素材は外部に留まったまま暗号操作だけが委譲される
- 接続経路(プロキシ): OCI と外部 KMS の間を結ぶ接続。可用性と低遅延が暗号化対象サービスの動作に直結する
- OCI IAM ポリシー:
manage keys/use keysなどで外部鍵リソースへのアクセスを制御
仕様・制限・クォータ
- 鍵素材は外部 KMS 側に保持され、OCI には平文の鍵が渡らない(OCI は暗号操作の委譲のみ行う)
- リージョン単位のサービス。外部鍵は Vault のリソースとして該当リージョンで管理する
- 暗号化を行う各 OCI サービス(Object Storage 等のカスタマー管理鍵対応サービス)から外部鍵を参照できるが、対応サービスは限定的で、OCI 内部鍵より範囲が狭い場合がある
- 暗号・復号は外部 KMS への往復を伴うため、内部 HSM 鍵に比べ遅延が増え、スループット上限の影響を受けやすい
- 外部 KMS が停止すると暗号操作が失敗し、対象データへのアクセスが止まる。可用性は外部基盤の設計に強く依存する
- 対応する外部 KMS 製品・連携方式・上限値は変動するため、採用前に公式ドキュメントで適合性を確認する
内部の仕組み
External Key Management は、暗号操作を OCI から外部 KMS へ委譲(プロキシ)する構成です。OCI Vault は外部鍵を内部 HSM 鍵と同じ「鍵リソース」として扱いますが、暗号・復号の実体は OCI 内では完結しません。Encrypt や Decrypt、データキーの Wrap/Unwrap の要求が来ると、Vault は外部 KMS に対して当該操作を依頼し、結果だけを受け取って呼び出し元に返します。鍵素材そのものは終始外部 KMS の境界内に留まり、OCI 側に平文で渡ることはありません。
これはエンベロープ暗号化と組み合わさります。実データは高速な対称鍵(DEK)で暗号化し、その DEK のWrap(暗号化)/ Unwrap(復号)だけを外部鍵に依頼します。Object Storage のようなサービス統合では、バケットに外部鍵の OCID を指定すると、各オブジェクトの DEK の保護に外部鍵が使われます。すべての鍵参照・暗号操作は OCI Audit に記録され、「いつどの外部鍵で操作したか」を追跡できます。
外部鍵を使うデータの暗号・復号は、外部 KMS への到達性が前提です。外部 KMS や接続経路が停止すると暗号操作が失敗し、対象データへのアクセスが止まります。外部 KMS 側を冗長化し、接続経路の監視と障害時手順を必ず整備してください。
設計パターン / ベストプラクティス
- 主権・規制要件で鍵素材を自社管理下に置く必要がある範囲だけ外部鍵を使い、それ以外は内部 HSM 鍵で簡素に保つ
- 外部 KMS を冗長構成にし、接続経路の障害が暗号操作全体を止めないよう可用性を設計
- IAM ポリシーで最小権限:アプリには
use keys(暗号/復号のみ)、運用者にはmanage keysと用途で分離 - 外部 KMS 側の鍵ローテーション・廃棄ポリシーを明文化し、クラウド側の挙動(復号不能化)と整合させる
- レイテンシ影響を抑えるため、頻繁な暗号操作はDEK のキャッシュで外部 KMS 呼び出しを削減
- 重要データに使う前に、外部 KMS 停止時の影響範囲を検証環境で必ず確認する
運用・監視
- 外部鍵の参照・暗号操作は OCI Audit で監査し、必要に応じて OCI Logging / Events に連携
- 外部 KMS への接続状態・遅延・エラー率を継続監視し、しきい値超過で Notifications / Functions により通知・自動対応
- 復号失敗時は 外部 KMS の稼働状況・接続経路・IAM ポリシー・鍵の状態を切り分けて確認
- 外部 KMS 側のメンテナンスや鍵廃棄がクラウド側のデータ可用性に直結するため、変更管理を厳格化
- 災害時手順として、外部 KMS のバックアップ・フェイルオーバーと、クラウド側からの再接続手順を整備
コスト
| 項目 | 課金対象 | コストの考え方 |
|---|---|---|
| 外部鍵の管理 | 鍵リソース + 暗号API呼び出し | OCI Vault 側の鍵・呼び出しに対する課金が基本 |
| 外部 KMS の運用 | サードパーティ製品/基盤の費用 | ライセンス・HSM・運用人件費など OCI 外の固定費が中心 |
| 可用性確保 | 冗長化・接続経路の構成費 | 外部 KMS の冗長化や監視に追加コストが必要 |
| レイテンシ対策 | アーキ設計(キャッシュ等) | 外部往復を減らす設計で運用品質とコストを両立 |
具体的な単価は変動するため、最新の料金は公式の料金ページで確認してください。一般に、外部 KMS の運用コストと可用性確保のための投資が、OCI 内部鍵との主な差分になります。
セキュリティ
- 鍵素材は外部 KMS の境界内に留まり、OCI には平文の鍵が渡らない(クラウド事業者への鍵預託を避けられる)
- 鍵の廃棄を自社で主導でき、外部鍵を消せばクラウド側の対象データも復号不能にできる
- IAM ポリシーで最小権限を徹底し、
use keysとmanage keysを分離。コンパートメント単位でスコープを限定 - 外部 KMS への接続を保護し、経路の認証・暗号化と到達制御を厳格にする
- すべての外部鍵操作を OCI Audit で追跡可能にする
可用性設計を欠いたまま重要データに外部鍵を適用するのは危険です。外部 KMS が落ちると暗号操作が失敗し、データにアクセスできなくなります。外部 KMS の冗長化・接続監視・障害時手順を整えずに本番投入しないでください。また、主権要件のない範囲にまで外部鍵を広げると、遅延とコストだけが増えます。
関連サービス・比較
外部鍵を持たない通常の鍵管理は OCI Vault(KMS)の内部 HSM 鍵が担います。両者は同じ Vault 上で扱える一方、鍵素材の所在と可用性の前提が異なります。
| 観点 | External Key Management | OCI Vault 内部鍵 |
|---|---|---|
| 鍵素材の所在 | 外部 KMS(自社管理下) | OCI の HSM 内 |
| 暗号操作 | 外部 KMS へ委譲(プロキシ) | OCI 内の HSM で完結 |
| 可用性の前提 | 外部 KMS と接続経路に依存 | OCI 内で自己完結 |
| 遅延 | 外部往復ぶん増えやすい | 低遅延 |
| 主たる用途 | 主権・規制で鍵預託を避けたい範囲 | 一般的な暗号化全般 |
| AWS の対応 | KMS External Key Store(XKS) | KMS の通常キー |
ハンズオン / CLI例
# 1. 外部鍵を扱う Vault を作成(外部鍵をサポートするタイプを指定)
oci kms management vault create \
--compartment-id <compartment-ocid> \
--display-name external-key-vault \
--vault-type EXTERNAL
# 2. 外部 KMS 上の鍵を OCI に登録(外部鍵参照を作成)
# --external-key-reference に外部 KMS 側の鍵 ID を指定する
oci kms management key create \
--compartment-id <compartment-ocid> \
--display-name app-external-key \
--key-shape '{"algorithm":"AES","length":32}' \
--protection-mode EXTERNAL \
--external-key-reference '{"externalKeyId":"<external-kms-key-id>"}' \
--endpoint <vault-management-endpoint>
# 3. 登録した外部鍵の状態を確認
oci kms management key get \
--key-id <external-key-ocid> \
--endpoint <vault-management-endpoint>
# 4. Object Storage バケットに外部鍵をカスタマー管理鍵として割り当て
oci os bucket update \
--name my-bucket \
--kms-key-id <external-key-ocid>
# 5. 外部鍵で暗号化(暗号操作は外部 KMS へ委譲される)
oci kms crypto encrypt \
--key-id <external-key-ocid> \
--plaintext "$(echo -n 'hello' | base64)" \
--endpoint <vault-crypto-endpoint>
OCI Service
OCI External Key Managementを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
セキュリティ・ID
比較で見る軸
クラウド: OCI / カテゴリ: セキュリティ・ID / 難易度: intermediate
導入後に効く点
鍵素材を自社管理下に置けるため、主権・規制要件に応える。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- セキュリティ・ID
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- security / operational / reliability
判断チェックリスト
- 自社の用途が「セキュリティ・ID / security」に近いか確認する。
- 強みである「鍵を OCI 外の外部 KMS に保持したまま OCI の暗号化に使える仕組み。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。