ボールトの概要

Oracle Cloud Infrastructureボールトは、安全にリソースにアクセスするために使用するデータおよびシークレット資格証明を保護する暗号化キーを一元的に管理できる管理サービスです。ボールトは、従来は構成ファイルやコードに格納していたマスター暗号化キーおよびシークレットを安全に格納します。具体的には、保護モードに応じて、キーはサーバーに格納されるか、連邦情報処理標準(FIPS) 140 -2セキュリティ・レベル3のセキュリティ証明を満たす、可用性の高い永続的なハードウェア・セキュリティ・モジュール(HSM)に格納されます。

Vaultサービスでサポートされている主な暗号化アルゴリズムには、Advanced Encryption Standard (AES )、Rivest - Shamir - Adleman (RSA)アルゴリズム、楕円曲線デジタル署名アルゴリズム(ECDSA)などがあります。AES対称キーおよびRSA非対称キーを作成して、暗号化および復号化に使用できます。RSAまたはECDSA非対称キーを使用してデジタル・メッセージに署名することもできます。

ボールト・サービスを使用すると、次のリソースを作成および管理できます:

  • ボールト
  • キー
  • シークレット

ボールト・サービスを使用すると、ボールト、マスター暗号化キーおよびシークレットに関する次のライフサイクル管理機能を実行できるため、これらのリソースの制御やアクセスが簡単になります:

  • ボールトを作成する
  • 暗号化マテリアルをマスター暗号化キーとして作成またはインポートする
  • シークレット資格証明を格納するシークレットを作成する
  • 暗号操作で使用するマスター暗号化キーを有効化または無効化する
  • キーをローテーションして新しい暗号化データを生成する
  • キーまたはボールト・メタデータをバックアップにエクスポートし、後でリストアして再使用する
  • ボールトとそのキーをレルム内の別のリージョンに継続的にレプリケートします。
  • 新しいシークレット・コンテンツでシークレットを更新する
  • プロモーションを介して現在使用中のシークレット・バージョンを指定する
  • シークレットの管理および使用を制御するルールを構成する
  • ボールト、マスター暗号化キーまたはシークレットにタグを付けて、リソースにメタデータを追加する
  • 不要になったボールト、キーまたはシークレットを削除する

マスター暗号化キーの使用に関して、次のことを実行できます:

  • 保存中または転送中のデータの暗号化および復号化にキーを使用します
  • キーを使用したメッセージへの署名および署名付きメッセージの検証
  • サポートされているOracle Cloud Infrastructureリソース(バケットやファイル・システムなど)にキーを割り当てる
  • データ暗号化キーを生成する

次のサービスはVaultサービスと統合され、顧客管理キーを使用して、それぞれの指定されたリソースのデータを暗号化することをサポートします。

  • Oracle Cloud Infrastructure Block Volume:ブロック・ボリュームとブート・ボリューム
  • Oracle Cloud Infrastructure Container Engine for Kubernetes: etcdキー/値ストアに保存されるKubernetesシークレット(新しいクラスタを作成する場合のみ)
  • Oracle Cloud Infrastructure Database:専用Autonomous Exadata InfrastructureおよびExadataデータベース上のAutonomous Container Database (Oracle Data Guardが有効になっていない)
  • Oracle Cloud Infrastructure File Storage:ファイル・システム
  • Oracle Cloud Infrastructure Object Storage:バケット
  • Oracle Cloud Infrastructure Streaming:ストリーム・プール

また、Oracle Cloud Infrastructure Identity and Access Management (IAM)との統合により、誰がどのキーおよびシークレットにアクセスし、それらのリソースでどのような操作を実行できるかを制御できます。Oracle Cloud Infrastructure Audit統合によって、キーおよびシークレットの使用状況をモニターできます。監査では、ボールト、キーおよびシークレットの管理アクションがトラッキングされます。

キーおよびシークレット管理の概念

ボールト・サービスを理解するには、次の概念が重要です。

ボールト
ボールトは、ボールト・サービスがキーおよびシークレットを作成して永続的に格納する論理エンティティです。保持するボールトのタイプによって、ストレージの分離度、管理および暗号化へのアクセス、スケーラビリティおよびバックアップ機能が決まります。また、使用するボールトのタイプは価格設定にも影響します。ボールトを作成した後、ボールトのタイプは変更できません。
ボールト・サービスには、組織のニーズや予算に対応する様々なボールト・タイプが用意されています。すべてのボールト・タイプは、ボールトが格納する暗号化キーおよびシークレットのセキュリティと整合性を保証します。仮想プライベート・ボールトは、ハードウェア・セキュリティ・モジュール(HSM)上の分離されたパーティションです。そうでないボールトは、HSM上のパーティションを他のボールトと共有します。
仮想プライベート・ボールトには、デフォルトで1000個のキー・バージョンが含まれます。高度な分離やボールトのバックアップ機能が不要な場合は、仮想プライベート・ボールトは必要ありません。仮想プライベート・ボールトがない場合は、必要に応じてキー・バージョンを個別に支払うことでコストを管理できます。(キー・バージョンはキー制限およびコストに加算されます。キーには常に少なくとも1つのアクティブ・キー・バージョンが含まれます。同様に、シークレットには常に少なくとも1つのシークレット・バージョンが含まれます。ただし、シークレットに対する制限は、ボールトではなくテナンシに適用されます。)
ボールト・サービスでは、ボールトがOracle Cloud Infrastructureリソースとして指定されています。
キー
キーは1つ以上のキー・バージョンを表す論理エンティティで、それぞれに暗号化マテリアルが含まれています。キーの暗号化マテリアルは、暗号化またはデジタル署名にキーを使用できる特定のアルゴリズム用に生成されます。暗号化に使用する場合、キーまたはキー・ペアはデータを暗号化および復号化し、データが格納されている場所またはデータの転送中にデータを保護します。AES対称キーを使用すると、同じキーによってデータが暗号化および復号化されます。RSA非対称キーを使用すると、公開キーはデータを暗号化し、秘密キーはデータを復号化します。
AESキーは暗号化および復号化で使用できますが、デジタル署名では使用できません。ただし、RSAキーは、データの暗号化と復号化だけでなく、データにデジタル署名して署名データの信頼性を検証するためにも使用できます。ECDSAキーはデジタル署名に使用できますが、データの暗号化や復号化には使用できません。
暗号化アルゴリズムの一部として処理される場合は、暗号化中に平文を暗号文に変換する方法と、復号化中に暗号文を平文に変換する方法をキーで指定します。署名アルゴリズムの一部として処理される場合、非対称キーとメッセージの秘密キーによって、送信中のメッセージに付随するデジタル署名が生成されます。署名付きメッセージの受信者が署名検証アルゴリズムの一部として処理した場合、同じ非対称キーのメッセージ、署名および公開キーによって、メッセージの信頼性と整合性が確認または拒否されます。
概念上、ボールト・サービスは、3つのタイプの暗号化キー(マスター暗号化キー、ラッピング・キーおよびデータ暗号化キー)を認識します。
Vaultサービスでサポートされているマスター暗号化キーの暗号化アルゴリズムには、AES、RSA、ECDSAなどがあります。AES、RSAまたはECDSAマスター暗号化キーは、コンソール、CLIまたはAPIを使用して作成できます。マスター暗号化キーを作成する場合、ボールト・サービスでキー・マテリアルを内部的に生成することも、キー・マテリアルを外部ソースからサービスにインポートすることもできます。(キー・マテリアルのインポートのサポートは、キー・マテリアルの暗号化アルゴリズムによって異なります。)マスター暗号化キーを作成する場合は、ボールトに作成しますが、キーが格納されて処理される場所は保護モードによって異なります。
マスター暗号化キーには、HSMまたはソフトウェアのいずれかの保護モードを指定できます。HSMで保護されたマスター暗号化キーはHSMに格納され、HSMからエクスポートできません。キーに関連するすべての暗号化操作もHSMで実行されます。一方、ソフトウェアによって保護されたマスター暗号化キーはサーバーに格納されるため、サーバー上ではなくクライアント上で暗号化操作を実行するためにサーバーからエクスポートできます。保存中、ソフトウェアで保護されたキーはHSMのルート・キーで暗号化されます。ソフトウェアで保護された鍵の場合、その鍵に関連する処理はすべてサーバー上で行われます。キーの保護モードは価格設定に影響し、キーの作成後は変更できません。
最初の対称マスター暗号化キーを作成した後は、APIを使用して、ボールト・サービスから返されるデータ暗号化キーを生成できます。また、サービスによっては、対称マスター暗号化キーを使用して独自のデータ暗号化キーを生成することもできます。
各ボールトにデフォルトで含まれている暗号化キーのタイプは、ラッピング・キーです。ラッピング・キーとは、RSAアルゴリズムに基づく4096ビットの非対称暗号化キーです。公開キーと秘密キーのペアは、サービス制限に対してカウントされません。また、サービス・コストも発生しません。ボールト・サービスにインポートするためにキー・マテリアルをラップする必要がある場合は、公開キーをキー暗号化キーとして使用します。ラッピング・キーを作成、削除またはローテーションすることはできません。
ボールト・サービスでは、マスター暗号化キーがOracle Cloud Infrastructureリソースとして認識されます。
キー・バージョン
各マスター暗号化キーには、キー・バージョンが自動的に割り当てられます。キーをローテーションすると、ボールト・サービスにより新しいキー・バージョンが生成されます。ボールト・サービスでは、新しいキー・バージョンのキー・マテリアルを生成することも、独自のキー・マテリアルをインポートすることもできます。
定期的にキーをローテーションすると、1つのキー・バージョンによって暗号化または署名されるデータの量が制限されます。キーの漏えいが発生した場合は、キー・ローテーションによりリスクを軽減できます。Oracle Cloud ID (OCID)と呼ばれるOracleが割り当てたキーの一意の識別子はローテーション後も変わりませんが、キー・バージョンによって、ボールト・サービスがコンプライアンス要件を満たすためにシームレスにキーをローテーションすることが可能になります。
キーをローテーションした後に古いキー・バージョンを暗号化に使用することはできませんが、キー・バージョンは、以前に暗号化されたデータを復号化するために使用できます。非対称キーをローテーションすると、公開キーはデータの暗号化に使用できなくなりますが、公開キーによって以前に暗号化されたデータの復号化には引き続き使用できます。デジタル署名で使用される非対称キーをローテーションすると、秘密キー・バージョンを使用してデータに署名できなくなりますが、公開キー・バージョンは、以前に古い秘密キー・バージョンによって署名されたデータのデジタル署名を検証するために引き続き使用できます。
対称キーの場合、復号化に必要な情報がキーの暗号文に含まれているため、どのキー・バージョンがどのデータの暗号化に使用されたかをトラッキングする必要はありません。ただし、非対称キーのローテーションを通じて、どのキー・バージョンがどのデータの暗号化または署名に使用されたかを追跡する必要があります。非対称キーの場合、キーの暗号文には、サービスが復号化または検証に必要とする情報は含まれません。
AES対称キーを使用すると、サービス制限の使用状況を計算する際に、各キー・バージョンが1つのキー・バージョンとしてカウントされます。ただし、RSAおよびECDSAの非対称キーでは、非対称キーに公開キーと秘密キーの両方があるため、サービス制限に対する使用状況を計算する場合、各キー・バージョンは2としてカウントされます。(非対称キーはキー・ペアとも呼ばれます。)
ハードウェア・セキュリティ・モジュール
保護モードをHSMに設定してAES対称マスター暗号化キーを作成すると、ボールト・サービスによってキー・バージョンがハードウェア・セキュリティ・モジュール(HSM)に格納されて、物理セキュリティのレイヤーが提供されます。(シークレットを作成すると、シークレット・バージョンはbase64でエンコードされ、マスター暗号化キーによって暗号化されますが、HSM内には格納されません。)リソースを作成すると、サービスはサービス・インフラストラクチャ内の特定のキー・バージョンまたはシークレット・バージョンのコピーを保持し、ハードウェア障害に対するリジリエンスを提供します。そうでない場合、HSMで保護されたキーのキー・バージョンは他のどこにも格納されず、HSMからエクスポートできません。
保護モードをHSMに設定してRSAまたはECDSA非対称マスター暗号化キーを作成すると、VaultサービスはHSM内に秘密キーを格納し、HSMからのエクスポートを許可しません。ただし、公開キーはダウンロードできます。
ボールト・サービスでは、連邦情報処理標準(FIPS) 140-2セキュリティ・レベル3のセキュリティ証明を満たすHSMが使用されます。この動作保証は、HSMハードウェアが開封され、改ざんの防止のための物理的な保護手段を持っていること、アイデンティティ・ベースの認証が必要であること、および改ざんが検出されたときにデバイスからキーを削除することを意味します。
エンベロープ暗号化
データの暗号化に使用されるデータ暗号化キーは、それ自体がマスター暗号化キーで暗号化されます。この概念はエンベロープ暗号化と呼ばれます。Oracle Cloud Infrastructureサービスは、ボールト・サービスと対話や、Oracle Cloud Infrastructure Identity and Access Management (IAM)によって保護されたマスター暗号化キーへのアクセスなくしてプレーン・テキスト・データにアクセスすることはできません。復号化のために、オブジェクト・ストレージブロック・ボリュームおよびファイル・ストレージなどの統合サービスには、暗号化された形式のデータ暗号化キーのみが格納されます。
シークレット
シークレットとは、パスワード、証明書、SSHキー、Oracle Cloud Infrastructureサービスで使用する認証トークンなどの資格証明です。シークレットをボールトに格納すると、コードや構成ファイルなどの他の場所に格納するよりも優れたセキュリティを実現できます。リソースや他のサービスへのアクセスに必要な場合、ボールト・サービスからシークレットを取得できます。
シークレットは、コンソール、CLIまたはAPIを使用して作成できます。シークレットのシークレット・コンテンツは、外部ソースからサービスにインポートされます。ボールト・サービスによってシークレットがボールトに格納されます。
ボールト・サービスでは、シークレットがOracle Cloud Infrastructureリソースとしてサポートされています。
シークレット・バージョン
各シークレットには、シークレット・バージョンが自動的に割り当てられます。シークレットをローテーションするときに、新しいシークレット・コンテンツをボールト・サービスに提供して、新しいシークレット・バージョンを生成します。シークレット・コンテンツを定期的にローテーションすることで、シークレットが公開された場合の影響を抑えることができます。Oracle Cloud ID (OCID)と呼ばれるOracleが割り当てた一意のシークレット識別子はローテーション後も変わりませんが、シークレット・バージョンによって、ボールト・サービスがルールやコンプライアンス要件を満たすためにシークレット・コンテンツをローテーションすることが可能になります。シークレットを再利用できないように構成されたルールがある場合、ローテーション後に古いシークレット・バージョンのコンテンツは使用できませんが、シークレット・バージョンは引き続き使用可能であり、「現在」以外のローテーション状態を示すマークが付きます。シークレット・バージョンおよびそのローテーション状態の詳細は、シークレット・バージョンおよびローテーション状態を参照してください。
シークレット・バンドル
シークレット・バンドルは、シークレット・コンテンツ、シークレットとシークレット・バージョンのプロパティ(バージョン番号やローテーション状態など)、およびユーザーが提供したシークレットのコンテキスト・メタデータで構成されます。シークレットをローテーションするとき、新しいシークレット・バージョンを作成しますが、これにも新しいシークレット・バンドル・バージョンが含まれています。

リージョンおよび可用性ドメイン

ボールト・サービスは、すべてのOracle Cloud Infrastructure商用リージョンで使用できます。使用可能なリージョンのリストと、関連するロケーション、リージョン識別子、リージョン・キーおよび可用性ドメインの詳細は、リージョンおよび可用性ドメインについてを参照してください。

ただし、他のOracle Cloud Infrastructureサービスとは異なり、ボールトサービスにはすべてのAPI操作に対する1つのリージョン・エンドポイントがありません。このサービスには、ボールトの作成、更新およびリスト操作を処理するプロビジョニング・サービス用のリージョン・エンドポイントが1つあります。キーの作成、更新およびリスト操作の場合、サービス・エンドポイントは複数の独立したクラスタ間で分散されます。シークレットのサービス・エンドポイントは、異なる独立したクラスタ間でさらに分散されます。

ボールト・サービスにはパブリック・エンドポイントがあるため、アプリケーションでの暗号操作にはサービスによって生成されたデータ暗号化キーを直接使用できます。ただし、ボールトと統合されたサービスでマスター暗号化キーを使用することは、サービスとキーが含まれるボールトが同じリージョン内に存在しているときのみ可能です。キー管理操作、キー暗号操作、シークレット管理操作およびシークレット取得操作に対して異なるエンドポイントが存在します。詳細は、Oracle Cloud Infrastructure APIドキュメントを参照してください

Vaultサービスは、ボールトとそのコンテンツのコピーを保持して永続的に保持し、可用性ドメインが使用できない場合でも、Vaultサービスがリクエストに応じてキーまたはシークレットを生成できるようにします。このレプリケーションは、顧客が構成する可能性のあるリージョン間レプリケーションとは無関係です。

複数の可用性ドメインがあるリージョンの場合、ボールト・サービスは、リージョン内のすべての可用性ドメインにわたって暗号化キーのコピーを保持します。複数の可用性ドメインを持つリージョンには、可用性ドメインごとに1つのラックがあります。つまり、レプリケーションは、各ラックが異なる可用性ドメインに属するリージョン内の3つの合計ラック間で行われます。単一の可用性ドメインがあるリージョンでは、Vaultサービスはフォルト・ドメイン間で暗号化キーのコピーを保持します。

シークレットの場合、複数の可用性ドメインがあるリージョンでは、Vaultサービスは2つの異なる可用性ドメインにシークレット・コピーを分散します。単一の可用性ドメインを持つリージョンでは、Vaultサービスは2つの異なるフォルト・ドメインにコピーを分散します。

すべての可用性ドメインには3つのフォルト・ドメインがあります。フォルト・ドメインは、Vaultサービスが特定の可用性ドメイン内の異なる物理ハードウェアにリソースを分散できるようにすることで、高可用性およびフォルト・トレランスを提供します。物理ハードウェア自体にも独立した冗長電源装置があるため、1つのフォルト・ドメインの停電が他のフォルト・ドメインには影響しません。

これにより、複数の可用性ドメインを持つリージョンで可用性ドメインが使用できない場合や、単一の可用性ドメインを持つリージョンでフォルト・ドメインが使用できない場合でも、Vaultサービスはリクエストに応じてキーおよびシークレットを生成できます。

ボールトへのプライベート・アクセス

ボールト・サービスでは、サービス・ゲートウェイを介した仮想クラウド・ネットワーク(VCN)内のOracle Cloud Infrastructureリソースからのプライベート・アクセスがサポートされます。VCNでサービス・ゲートウェイを設定して使用すると、リソース(暗号化されたボリュームがアタッチされているインスタンスなど)は、パブリック・インターネットに公開しなくても、ボールト・サービスなどのパブリックOracle Cloud Infrastructureサービスにアクセスできます。インターネット・ゲートウェイは必須ではなく、リソースはプライベート・サブネットにあって、プライベートIPアドレスのみを使用できます。詳細は、Oracleサービスへのアクセス: サービス・ゲートウェイを参照してください。

リソース識別子

ボールト・サービスでは、ボールト、キーおよびシークレットがOracle Cloud Infrastructureリソースとしてサポートされています。ほとんどのタイプのOracle Cloud Infrastructureリソースには、Oracle Cloud ID (OCID)と呼ばれるOracleによって割り当てられた一意の識別子があります。OCIDのフォーマットおよびリソースを識別するその他の方法の詳細はリソース識別子を参照してください。

Oracle Cloud Infrastructureへのアクセス方法

コンソール(ブラウザベースのインタフェース)またはREST APIを使用してOracle Cloud Infrastructureにアクセスできます。コンソールおよびAPIのための手順は、このガイド全体を通してトピックに含まれています。使用可能なSDKのリストは、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。

コンソールにアクセスするには、サポートされているブラウザを使用する必要があります。このページの上部にある「コンソール」リンクを使用して、サインイン・ページに移動できます。クラウド・テナント、ユーザー名およびパスワードの入力を求められます。

API使用についての一般情報は、REST APIを参照してください。

認証と認可

Oracle Cloud Infrastructureの各サービスは、すべてのインタフェース(コンソール、SDKまたはCLI、およびREST API)の認証および認可のためにIAMと統合されています。

組織の管理者は、どのユーザーがどのサービスとリソースにアクセスできるか、およびアクセスのタイプを制御する、グループコンパートメントおよびポリシーを設定する必要があります。たとえば、ポリシーは、新しいユーザーの作成、クラウド・ネットワークの作成と管理、インスタンスの起動、バケットの作成、オブジェクトのダウンロードなどを実行できるユーザーを制御します。詳細は、ポリシーの開始を参照してください。異なる各サービスに対するポリシーの記述の詳細は、ポリシー・リファレンスを参照してください。

会社が所有するOracle Cloud Infrastructureリソースを使用する必要がある通常のユーザー(管理者ではない)の場合は、ユーザーIDを設定するよう管理者に連絡してください。管理者は、使用する必要があるコンパートメントを確認できます。

ボールト・リソースの制限

適用可能な制限の一覧と制限の引上げをリクエストする手順は、サービス制限を参照してください。リソースまたはリソース・ファミリにコンパートメント固有の制限を設定するために、管理者は、コンパートメント割当てを使用できます。

テナンシのリソース制限に対する使用レベルを表示する手順は、サービス制限、割当ておよび使用状況の表示を参照してください。ボールトの詳細でキーおよびキー・バージョンの数を表示することで、各ボールトのキー制限に対する使用状況を取得することもできます。