Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OCI Vault 機能概要と特徴
Search
oracle4engineer
PRO
December 19, 2022
Technology
0
7.1k
OCI Vault 機能概要と特徴
ユーザーの暗号鍵・シークレットをセキュアに集中管理することができるOCI Vaultの機能概要と特徴について
oracle4engineer
PRO
December 19, 2022
Tweet
Share
More Decks by oracle4engineer
See All by oracle4engineer
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
Oracle Database 性能分析入門
oracle4engineer
PRO
1
180
[自動バックアップのコスト比較]リカバリ・サービス (RCV/ZRCV) とオブジェクト・ストレージ
oracle4engineer
PRO
1
200
Oracle Cloud Infrastructure:2024年4月度サービス・アップデート
oracle4engineer
PRO
1
200
シン・Kafka / shin-kafka
oracle4engineer
PRO
8
2.8k
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
14
35k
Oracleデータベースって何だ!?
oracle4engineer
PRO
4
290
Oracle Exadata Database Service on Cloud@Customer (ExaDB-C@C) - UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
1.1k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
1.5k
Other Decks in Technology
See All in Technology
開発生産性向上サービスを作るFindyが自分たちで開発生産性を爆上げした組織づくりの歩み / Findy's path to boosting its own development productivity 2024-04-17
ma3tk
3
650
ChatGPT for IT Service Management (IT Pro)
dahatake
7
1.6k
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
190
require(ESM)とECMAScript仕様
uhyo
1
230
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
13k
Google Cloud Next '24 Recap(Cloud Run/k8s)
mokocm
0
130
継続的な改善 x ⾮連続的な進化
sansantech
PRO
3
150
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
400
ServiceNow Knowledge Learning Rise up
manarobot
0
210
Vertex AI を中心に 生成AIのアップデートを共有します
kaz1437
0
300
APIファーストなプロダクトマネジメントの実践 〜SaaSus Platformでの例〜 / "Practicing API-First Product Management - An Example with SaaSus Platform
oztick139
0
100
反実仮想機械学習とは何か
usaito
PRO
11
4.5k
Featured
See All Featured
RailsConf 2023
tenderlove
4
540
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Into the Great Unknown - MozCon
thekraken
10
990
Art, The Web, and Tiny UX
lynnandtonic
289
19k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
A designer walks into a library…
pauljervisheath
200
23k
Docker and Python
trallard
34
2.7k
The Invisible Customer
myddelton
114
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
For a Future-Friendly Web
brad_frost
172
9k
GraphQLとの向き合い方2022年版
quramy
32
12k
Transcript
OCI Vault 2022年12月20日 日本オラクル株式会社 Ver. 3.1 (2022年12月更新)
Safe harbor statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、 情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以 下の事項は、マテリアルやコード、機能を提供することを確約するものではないため、購買 決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊 社の裁量により決定され、変更される可能性があります。 2
Copyright © 2022, Oracle and/or its affiliates
OCI上での暗号化モデル 3 クライアントサイド・暗号化 ユーザーのデータはユーザー自身で事前に 暗号化しておき、OCIへ送信する Oracleマネージド・暗号化 デフォルトでは、OCIにあるユーザー・データ はOracleマネージドの暗号鍵で暗号化 されている ユーザーはその暗号鍵を自身で管理する
ことはできない カスタマーマネージド・暗号化 暗号鍵をユーザー自身で管理することが可能 暗号鍵の作成・削除・ローテーション、 バックアップ、モニタリング等の運用管理 ユーザー自身で用意した暗号鍵をインポート して利用可能 暗号鍵は、FIPS140-2 Level 3に準拠した HSMに格納してセキュアに保護 PCIDSS等のコンプライアンス要件に対応 low high Copyright © 2022, Oracle and/or its affiliates
ユーザーの暗号鍵・シークレットをセキュアに集中管理 OCIのストレージサービスはデフォルト暗号化 Vaultを利用することにより、暗号鍵の管理をデフォルトのOracle管理から ユーザー自身で管理することが可能 • 対応する暗号鍵: AES, RSA, ECDSA •
暗号鍵の作成・削除・ローテーション、バージョン管理、バックアップ、モニタリング • OCIサービスの各サービスとシームレスに連携 • 鍵のインポート(BYOK)も可能 • クロスリージョン・レプリケーションによるDR対応 FIPS 140-2 Security Level 3 に準拠したHSMを利用 2種類の格納先 • Default Vault : 共有パーティション内で仮想的にユーザーのVaultを提供 • Virtual Private Vault : ユーザー専用に完全分離された専用パーティションとして提供 暗号鍵だけでなく、シークレット (パスワード、証明書、SSHキー、認証トークン)など もVault内で管理可能 Vault 4 Block Volume Object Storage Key A Key B 暗号化 暗号化 ユーザー File Storage Secret A コード Vault Copyright © 2022, Oracle and/or its affiliates
Vault の基本要素 5 Vault 暗号鍵 シークレット Virtual Private Vault 専用HSM
パーティション Default Vault 共有HSM パーティション • ユーザー自身による暗号鍵の管理 (AES, RSA, ECDSA) • BYOKのサポート • 高い信頼性と冗長化 • HSMまたはソフトウェアによるマスター暗号鍵の保護 • シークレットの安全な格納と取り出し • OCI CLI, REST API, 各種SDK, Terraformの幅広い利用 Block Storage Object Storage File Storage Streaming Kubernetes Database System HSM HSM Keys Software Keys HSM Keys Software Keys HSM ※ Databaseは、ExaCSとADB-Dのみ ※2021/10時点 Copyright © 2022, Oracle and/or its affiliates
HSM • FIPS140-2 Level 3に準拠したHSMに格納 • 暗号化・復号はHSM内で処理実行される • マスター暗号鍵をエクスポートすることはできない •
Default Vault (共有HSMパーティション) • 各テナントで共有され、トランザクションを最適化 • 無償、10Vaultまで、キーの制限なし • Virtual Private Vault (専用HSMパーティション) • 高い独立性と高速なトランザクションを保証(3K-5K) • 有償、1Vaultあたり最大3000キーの格納を保証 • バックアップ、クロスリージョン・レプリケーションのサポート ソフトウェア • サーバー内に暗号化され保管 • 暗号化・復号はサーバーメモリ内で処理実行される • マスター暗号鍵をエクスポートできる • 無償、キーの制限なし マスター暗号鍵の格納場所 6 Native OCI Storage Database Data Key1 TDE Data Key マスター 暗号鍵 Secrets Encrypts/ Decrypts Encrypts/ Decrypts Protected Copyright © 2022, Oracle and/or its affiliates
サポートする暗号アルゴリズム 7 共通鍵暗号: AES 128/196/256 公開鍵暗号: RSA 2048/3072/4096, ECDSA NIST
P-256/NIST P-384/NIST P-521 暗号アルゴリズム 暗号 デジタル署名 AES Yes No RSA Yes Yes ECDSA No Yes Copyright © 2022, Oracle and/or its affiliates
公開鍵を用いた暗号及びデジタル署名のフロー 8 送信者 受信者 平文データ 暗号化 データ 平文データ 公開鍵 秘密鍵
暗号化 復号 送信者 受信者 メッセージ ダイジェスト デジタル署名 秘密鍵 公開鍵 暗号化 復号 デジタル署名 で真正性を確認 暗号化・復号 デジタル署名 Copyright © 2022, Oracle and/or its affiliates
2階層で管理する暗号鍵 • データ暗号鍵 は実際のユーザーデータを暗号化する • マスター暗号鍵 はデータ暗号鍵を暗号化する • IAMポリシーはマスター暗号鍵のアクセスを制御する •
OCI Auditは、マスター暗号鍵のアクセスを監視する 階層構造のメリット • 多数のデータ暗号鍵から、1つのマスター暗号鍵 に管理を集約 • 暗号鍵の漏洩時におけるリソースの影響範囲を制限 • 暗号鍵のローテーション時には、データ暗号鍵を再生成する必要が ない マスター暗号鍵とデータ暗号鍵の違い 9 Vault マスター 暗号鍵 Block Storage Object Storage File Storage Data Key1 Data Key2 Data Key3 Data Key1 Data Key2 Data Key3 Policies Auditing Copyright © 2022, Oracle and/or its affiliates
例)Object Storageにおける暗号化・復号のフロー 10 暗号化プロセス 復号プロセス Vault マスター 暗号鍵 Object Storage
Object Storage Buckets Buckets ID & Access Management Policies 1 2 3 4 5 6 7 8 平文 データ 暗号化された データと暗号化 済み暗号化鍵を バケットに格納 データ暗号鍵のリクエスト 暗号化済み暗号化鍵 Data Key Data Key Data Key Data Key Data Key Data Key 平文データを 暗号鍵を使用 して暗号化する FIPS 140-2 Level 3 Vaultは データ暗号鍵と 暗号化された データ暗号鍵の 両方を送信 平文 データ マスター暗号鍵は 生成もしくはインポートする Copyright © 2022, Oracle and/or its affiliates
ユーザー自身で用意したマスター暗号鍵をインポート インポートする暗号鍵は、VaultのRSA鍵で暗号ラッピングが必要 Oracleは、インポートされた暗号鍵にアクセスできない 新たな暗号鍵を使用して鍵のローテーションが可能 マスター暗号鍵のインポート: BYOK (Bring Your Own Key)
11 Block Volume Object Storage Vault User Private Vault Key A Key B File Storage BYOK Copyright © 2022, Oracle and/or its affiliates
Oracle Databaseの暗号化(TDE)のマスター暗号鍵のデフォルトは PKCS#12形式のキーストア・ファイルとしてストレージに格納されている キーストアからVaultに格納先を変更することが可能 Exadata Cloud Service、Autonomous Databases Dedicatedに対応 (2021/10現在)
Vault管理にすることのメリット - マスター暗号鍵の運用管理をオラクル管理からユーザー管理に - FIP140-2 Level3に準拠したセキュアな鍵管理 - コンプライアンス要件対応 ExaCSの場合、PDB単位でマスター暗号鍵が異なる ADB-Dの場合、AD単位でマスター暗号鍵が異なる データベース暗号化(TDE)のマスター暗号鍵を保管 12 マスター暗号鍵 表領域 表領域暗号鍵 Oracle Keystore 各表領域暗号鍵を 暗号化/復号 Vault Copyright © 2022, Oracle and/or its affiliates
Virtual Private Vault、かつ、HSMで保護された暗号鍵のみオブジェクトストレージにバックアップ可能 ソフトウェアで保護された暗号鍵やシークレットはバックアップされない バックアップファイルは特殊なフォーマットで暗号化され、リストアすることができるのはVaultのみ バックアップは、テナンシ内でサブスクライブされたどのリージョンでもリストアできる バックアップ・リストア 13 Copyright ©
2022, Oracle and/or its affiliates
暗号化 oci kms crypto encrypt --key-id マスター暗号鍵OCID --plaintext 平文データ(Base64, 最大4K)
--endpoint 暗号エンドポイ ント --encryption-algorithm 暗号アルゴリズム(AES_256_GCM, RSA_OAEP_SHA_1, RSA_OAEP_SHA_256) 復号 oci kms crypto decrypt –-key-id マスター暗号鍵OCID –-ciphertext 暗号データ –-endpoint 暗号エンドポイント --encryption-algorithm 暗号アルゴリズム(AES_256_GCM, RSA_OAEP_SHA_1, RSA_OAEP_SHA_256) マスター暗号鍵からデータ暗号鍵の生成 (AESのみ) oci kms crypto generate-data-encryption-key --key-id マスター暗号鍵OCID --include-plaintext-key (true/false) --endpoint Vaultの暗号エンドポイント --key-shape 暗号アルゴリズム マスタ暗号鍵のインポート oci kms management key import --wrapped-import-key RSAで暗号化したマスター暗号鍵 --compartment-id コンパートメ ントOCID --display-name マスター鍵名 --endpoint 暗号エンドポイント --key-shape キーの暗号アルゴリズム OCI CLI コマンド例 14 Copyright © 2022, Oracle and/or its affiliates
デジタル署名 oci kms crypto signed-data sign --key-id マスター暗号鍵OCID --message メッセージダイジェスト
--signing-algorithm 署名アルゴリズム --endpoint 暗号エンドポイント デジタル署名検証 oci kms crypto verified-data verify --key-id マスター暗号鍵OCID --message メッセージダイジェスト --signing-algorithm 署名アルゴリズム --endpoint 暗号エンドポイント –signature デジタル署名(デジタル署名時に生成される) --key-version-id 暗号鍵OCID (デジタル署名時に生成される) OCI CLI コマンド例 15 Copyright © 2022, Oracle and/or its affiliates
データ暗号鍵の作成~使用~監視 Oracle Cloudだけでなく暗号鍵ソリューションとしてVaultを利用 16 • データ暗号鍵の作成 oci kms crypto generate-data-encryption-key
--key-id マスター暗号鍵OCID --include-plaintext-key true --endpoint Vaultの暗号エンドポ イント --key-shape 暗号アルゴリズム(2020/12時点ではAESのみ) • AES 256bit データ暗号鍵の作成 oci kms crypto generate-data-encryption-key ¥ --key-id ocid1.key.oc1.iad.bbpadvkaaacuu.abuwcljts3naex25mzgigkabghvlf45paa65hssuibn7p67zlzfhtui5lxxx ¥ --include-plaintext-key false ¥ --endpoint https://bbpadvkaaacuu-crypto.kms.us-ashburn-1.oraclecloud.com ¥ --key-shape "{¥"algorithm¥": ¥"AES¥", ¥"length¥": 32}" 実行結果 "data": { “ciphertext”: “IUjJ6Oknos1iAN6wCOkAux8JrO4SiWWI8++VGV6ugAAAAA=xxxxxxxxxx”, -->データ暗号鍵(マスタ暗号鍵で暗号済み) “plaintext”: “UL9uLGEjfEaxPbiQHCCf8i5O5+4//uXsRKz9vrrm2xxx ”, --> データ暗号鍵(平文) ※暗号処理で使用し、使用後に破棄 "plaintext-checksum": "599189376" } Copyright © 2022, Oracle and/or its affiliates
17 • OpenSSLで作成したファイルを暗号化する場合 暗号化にはデータ暗号鍵(平文)を使用する openssl aes-256-cbc -e -in test.txt -out
enctest.txt -pass pass: UL9uLGEjfEaxPbiQHCCf8i5O5+4//uXsRKz9vrrm2xxx 暗号化した後は、暗号化ファイルとデータ暗号鍵(マスタ暗号鍵で暗号済み)の両方を保存しておく。データ暗号鍵(平文)は保存しない • OpenSSLで作成したファイルを復号する場合 復号には、データ暗号鍵(マスタ暗号鍵で暗号済み) をデータ暗号鍵(平文)に戻す必要がある。そのために、Vaultのマスター暗号鍵を使って復号する oci kms crypto decrypt --key-id マスター暗号鍵ID -- ciphertext データ暗号鍵 --endpoint Vaultの暗号エンドポイント oci kms crypto decrypt ¥ --key-id ocid1.key.oc1.iad.bbpadvkaaacuu.abuwcljts3naex25mzgigkabghvlf45paa65hssuibn7p67zlzfhtui5lqta ¥ --ciphertext " IUjJ6Oknos1iAN6wCOkAux8JrO4SiWWI8++VGV6ugAAAAA=xxxxxxxxxx " ¥ --endpoint https://bbpadvkaaacuu-crypto.kms.us-ashburn-1.oraclecloud.com • OpenSSLで暗号化ファイルを復号する openssl aes-256-cbc -d -in enctest.txt -out dectest.txt -pass pass:UL9uLGEjfEaxPbiQHCCf8i5O5+4//uXsRKz9vrrm2xxx データ暗号鍵の作成~使用~監視 Oracle Cloudだけでなく暗号鍵ソリューションとしてVaultを利用 Copyright © 2022, Oracle and/or its affiliates
Vaultの作成 18 Copyright © 2022, Oracle and/or its affiliates
マスター暗号鍵の作成 19 Copyright © 2022, Oracle and/or its affiliates
作成されたマスター暗号鍵 20 Copyright © 2022, Oracle and/or its affiliates
ストレージの暗号化時に顧客管理キーを指定 21 Copyright © 2022, Oracle and/or its affiliates
可用性: SLA 99.9%, SLO 99.99% Vaultは、リージョナルサービスとして提供。内部的に各ADに複製が作成される TDE暗号鍵の格納は、ADB-D, ExaCS (2021/10時点)のみサポート。On-PやDB on
IaaSのOracle Databaseで HSMに格納したい場合は、Oracle Key Vault(オンプレミス製品)を使用する マスター暗号鍵のローテーションは、バージョンとして過去の鍵も保管されるため、既に暗号されたデータへの影響はない また、ローテーション後は、最新の鍵が暗号/復号処理に使用される マスター暗号鍵が危殆化してしまった場合、強制的にデータの再暗号を実施し、危殆化した鍵を削除しなければならない Vault及び暗号鍵の削除実行後は、デフォルト30日間 取り消しが可能 猶予期間を過ぎた削除プロセス完了後は、暗号化されたデータには永久にアクセスできない Default Vaultは、バックアップやクロスリージョン・レプリケーションを実行することはできない Private Virtual Vaultの最大格納鍵数は3000。RSAは、半分の1500。また、鍵をバージョン管理する場合は、 そのバージョン数もカウントしなければならない FAQ 22 Copyright © 2022, Oracle and/or its affiliates
シークレットとは、ユーザー名やパスワード、APIに アクセスするためのAPIキー、証明書、SSHキーといった 各リソースにアクセスするための機密情報 多くのサービス = 多くの認証情報 = 多くのシークレット 人は安全ではないショートカットの手段をとりがち ソースコードや設定ファイル、コンテナイメージ等に
認証情報をハードコーディング 認証情報をパスワードやSlack等で共有 シークレットとは? 23 シークレットの管理は、最も手軽で効果的な セキュリティ対策 Copyright © 2022, Oracle and/or its affiliates
Vaultのシークレット管理 24 セキュア • シークレットはHSMで管理されたセ キュアなデータベースに暗号化され 格納 • TLS通信の強制 •
IAMによる粒度の細かい アクセスコントール • OCI Monitoringによる ログの集約とモニタリング 自動化 • スケーラブル • 自動化のプログラムために CLI , SDK, Terafformを提供 • バージョン管理の自動化 手軽さ • 一元化されたロケーションと管理 APIの提供 • どこにシークレットを 保存しているか覚える必要は ない • 25KBまでのデータを格納 • 無償 Copyright © 2022, Oracle and/or its affiliates
アプリケーションでのシークレット利用例 25 Application Secrets Database 1. Secret OCIDからシークレットを取得 2. データベースの認証情報
3. 取得した認証情報を使って接続し、クエリー実行 4. クエリーの結果 アプリケーションは、Vaultに アクセスし、シークレットID(Secret OCID)からシー クレットを取得 シークレット(例えば、ユーザ名・パスワード・接続文 字列等)を使い、データベースにアクセスする いつ・だれが・どこからシークレットにアクセスしたかは、 OCI Monitoringで モニタリング可能 DBのパスワードを変更する場合、シークレットの値 も変更が必要 (シェルスクリプト、Functions、SDK 等で自動化可) Copyright © 2022, Oracle and/or its affiliates
OCI CLI コマンド例 26 シークレット作成 oci vault secret create-base64 --compartment-id
コンパートメントID --secret-name シークレット名 --vault-id ボールトID -- key-id キーID --secret-content-content シークレット値 シークレット値の取得 oci secrets secret-bundle get --secret-id シークレットID --query 'data."secret-bundle-content".content' --raw-output シークレット更新 (新規バージョン作成) oci vault secret update-base64 --secret-id シークレットID --secret-content-contentシークレット値 シークレット削除 oci vault secret schedule-secret-deletion --secret-id シークレットID ※シークレット値は、Base64エンコードを事前にしておくことが必要 Copyright © 2022, Oracle and/or its affiliates
ユース・ケース 27 暗号鍵 シークレット • コンプライアンス要件上、データ暗号化の暗号鍵の管理 をサービスベンダーでなく、ユーザー自身で管理することが 必須、または推奨されている • コンプライアンス要件上、定期的な暗号鍵の変更が求め
られている • コンプライアンス要件上、暗号鍵はHSMに格納 することを推奨事項として明記されている • HSMの利用の場合、FIPS140-2 Level3準拠することが 金融や公共・ヘルスケアといったシステムではデファクトスタ ンダートとして求められる • データの暗号化やデジタル署名のクラウド基盤 • バッチやアプリケーション内でデータベースの ユーザー名・パスワード、接続文字列といった 接続情報を直接ハードコーディングすることを 禁止したい • クラウドリソースのユーザー名やパスワード、 SSHキーなどをメールやチャットツールなどで 気軽に共有してしまう運用を辞めたい • Terraformやコンテナ等のインフラの自動化管理ジョブの中 にできる限り機微な情報を含めたくない • だれが、いつ、どこからシークレットにアクセスしたのか、特定す るための監視手段が必要 • シークレットの有効期限を設定したい Copyright © 2022, Oracle and/or its affiliates
価格 28 暗号鍵 シークレット Default Vault デフォルト 共有パーティションとして提供 10Vaultまで使用可 テナントあたり20キー・バージョンまで無償、以降1キー・バージョン
ごとに(¥74) ※新規キー作成は、1キー・バージョンとしてカウント キーのローテーションは、1キー・バージョンとしてカウント Virtual Private Vault HSM内にユーザー専用のパーティションを提供し、仮想HSM と同等の分離レベルを提供 1 Vaultあたり最大 3000キーまで格納可能 1 Vaultあたり: (¥521/hour) ※上記のVaultではなく、ソフトウェア保護キーの場合は制限なく無償 無償 5,000 シークレット 1シークレット 最大50バージョン 1シークレット 最大25KB 100000 Write APIコール/月 無制限 Read APIコール/月 Copyright © 2022, Oracle and/or its affiliates
None