ボールト、キー管理およびシークレット管理の概要

Key Managementサービスは、リソースへの安全なアクセスのために、ボールト内のキーを格納および管理します。

Oracle Cloud Infrastructure (OCI) Key Management Service (KMS)は、OCIに格納されるデータの暗号化鍵を一元管理および制御できるクラウドベースのサービスです。

OCI KMSは次のことを行います。

  • 暗号化キーを一元的に格納および管理することで、キー管理を簡素化します。
  • 対称キーや非対称キーなど、様々な暗号化キー・タイプをサポートすることで、保存中および転送中のデータを保護します。
  • キーの作成および格納のための複数のオプションにより、セキュリティおよびコンプライアンス要件に対応します。この機能には、OCIへのキー・マテリアルのインポート("Bring Your Own Keys"またはBYOK)、OCIでのキーの作成、外部キー管理を使用した外部でのキー("Hold Your Own Keys"または"HYOK")が含まれます。Key Managementは、暗号化キーを格納および保護するためのFIPS 140-2レベル3の認定を受けたハードウェア・セキュリティ・モジュール(HSM)をサポートしています。
  • ストレージ、データベース、Fusion Applicationsなどの他のOCIサービスと暗号化を統合して、これらのサービスに格納されているデータを保護します。

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

ボールト、キーおよびシークレットにアクセスおよび管理するためのボールトおよびキー管理の概念を理解します。

ボールト
ボールトは、Key Managementサービスがボールト・キーおよびシークレットを作成して永続的に格納する論理エンティティです。使用するボールトのタイプにより、ストレージの分離度、管理および暗号化へのアクセス、スケーラビリティおよびバックアップ機能などの機能が決まります。また、使用するボールトのタイプは価格設定にも影響します。ボールトの作成後にボールトのタイプを変更することはできません。
Key Managementサービスには、組織のニーズと予算に対応する様々なボールト・タイプが用意されています。すべてのボールト・タイプにより、ボールトが格納する暗号化キーおよびシークレットのセキュリティおよび整合性が保証されます。仮想プライベート・ボールトは、ハードウェア・セキュリティ・モジュール(HSM)上の分離されたパーティションです。そうでないボールトは、HSM上のパーティションを他のボールトと共有します。
仮想プライベート・ボールトには、デフォルトで1000個のキー・バージョンが含まれます。分離度やボールトをバックアップする機能を強化する必要がない場合は、仮想プライベート・ボールトは必要ありません。仮想プライベート・ボールトを使用しない場合、必要に応じてキー・バージョンを個別に支払うことでコストを管理できます。(キー・バージョンはキー制限およびコストに加算されます。ボールト・キーには、常に少なくとも1つのアクティブなキー・バージョンが含まれます。同様に、シークレットには常に少なくとも1つのシークレット・バージョンが含まれます。ただし、シークレットに対する制限は、ボールトではなくテナンシに適用されます。)

Oracleクラウドまたはサードパーティのクラウド・プレミスの外部にキーを格納するための規制コンプライアンスを持つお客様のために、OCI KMSは外部キー管理サービス(外部KMS)と呼ばれる機能を提供するようになりました。外部KMSでは、マスター暗号化キーを(外部キーとして)OCIの外部でホストされているサードパーティのキー管理システムに格納および制御できます。その後、これらのキーを使用してOracleのデータを暗号化できます。キーはいつでも無効にできます。サードパーティ・キー管理システムに存在する実際のキーでは、OCIでキー参照(キー・マテリアルに関連付けられている)のみを作成します。

OCI KMSは、サービスとしての顧客管理の高可用性シングルテナントHSMパーティション・リソースである専用KMSを提供します。これにより、HSMパーティションと暗号化されたキー、およびパーティション内のユーザーを所有することで、制御を強化できます。専用KMS設定では、HSMクラスタにはデフォルトで3つのHSMパーティションが付属しており、これは自動同期されます。クライアント・ユーティリティおよびPKCS #11ライブラリを使用して、OCIコンピュート・インスタンスと統合されたHSM内のキーおよびユーザーを管理できます。専用KMSは、HSMで保護されたキーのみをサポートし、ソフトウェアで保護されたキーをサポートしません。暗号化操作の場合、このソリューションは、AES、RSA、およびECDSAアルゴリズムを使用した対称暗号化と非対称暗号化の両方をサポートします。

ボールト・サービスでは、ボールトがOracle Cloud Infrastructureリソースとして指定されています。
キー
キーは、1つ以上のキー・バージョンを表す論理エンティティであり、各キーには暗号化マテリアルが含まれます。ボールト・キーの暗号化資料は、暗号化またはデジタル署名にキーを使用できる特定のアルゴリズムに対して生成されます。暗号化に使用すると、キーまたはキーのペアがデータを暗号化および復号化し、データが格納されている場所またはデータが転送中のデータを保護します。AES対称キーを使用すると、同じキーでデータが暗号化および復号化されます。RSA非対称キーを使用すると、公開キーはデータを暗号化し、秘密キーはデータを復号化します。
暗号化および復号化ではAES鍵を使用できますが、デジタル署名では使用できません。ただし、RSA鍵は、データの暗号化と復号化だけでなく、データのデジタル署名と署名データの信頼性の検証にも使用できます。ECDSAキーはデジタル署名で使用できますが、データの暗号化または復号化には使用できません。
暗号化アルゴリズムの一部として処理される場合は、暗号化中に平文を暗号文に変換する方法と、復号化中に暗号文を平文に変換する方法をキーで指定します。署名アルゴリズムの一部として処理されると、非対称キーとメッセージの秘密キーによって、転送中のメッセージに対応するデジタル署名が生成されます。署名付きメッセージの受信者が署名検証アルゴリズムの一部として処理した場合、同じ非対称キーのメッセージ、署名および公開キーは、メッセージの真正性と整合性を確認または拒否します。
概念的には、Key Managementサービスは、マスター暗号化キー、ラッピング・キーおよびデータ暗号化キーの3つのタイプの暗号化キーを認識します。
Key Managementサービスがボールト・マスター暗号化キーに対してサポートする暗号化アルゴリズムには、AES、RSAおよびECDSAが含まれます。コンソール、CLIまたはAPIを使用して、AES、RSAまたはECDSAマスター暗号化キーを作成できます。マスター暗号化キーを作成する際、Key Managementサービスはキー・マテリアルを内部的に生成するか、キー・マテリアルを外部ソースからサービスにインポートできます。(鍵資料のインポートのサポートは、鍵資料の暗号化アルゴリズムによって異なります。)ボールト・マスター暗号化キーを作成する場合は、それらをボールトに作成しますが、キーが格納および処理される場所は、その保護モードによって異なります。
Vaultマスター暗号化キーには、HSMまたはソフトウェアの2つの保護モードのいずれかを使用できます。HSMによって保護されているマスター暗号化キーはHSMに格納され、HSMからエクスポートできません。キーに関連するすべての暗号化操作もHSMで行われます。一方、ソフトウェアによって保護されているマスター暗号化キーはサーバーに格納されるため、サーバーではなくクライアントで暗号化操作を実行するためにサーバーからエクスポートできます。保存中、ソフトウェアで保護されたキーは、HSMのルート・キーによって暗号化されます。ソフトウェアで保護されたキーの場合、キーに関連する処理はサーバー上で行われます。キーの保護モードは価格設定に影響し、キーの作成後は変更できません。
最初の対称マスター暗号化キーを作成した後、APIを使用して、Key Managementサービスが返すデータ暗号化キーを生成できます。データ暗号化キーは、作成に使用したマスター暗号化キーと同じかそれ以上の暗号化強度を持つ必要があることに注意してください。サービスの中には、対称マスター暗号化キーを使用して独自のデータ暗号化キーを生成できるものがあります。
各ボールトにデフォルトで含まれている暗号化キーのタイプは、ラッピング・キーです。ラッピング・キーとは、RSAアルゴリズムに基づく4096ビットの非対称暗号化キーです。公開キーと秘密キーのペアは、サービス制限にカウントされません。また、サービスコストも発生しません。公開キーは、キー管理サービスにインポートするためにキー・マテリアルをラップする必要がある場合、キー暗号化キーとして使用します。ラッピング・キーを作成、削除またはローテーションすることはできません。
Key Managementサービスは、マスター暗号化キーをOracle Cloud Infrastructureリソースとして認識します。
キー・バージョンとローテーション
各マスター暗号化キーには、キー・バージョンが自動的に割り当てられます。キーをローテーションすると、Key Managementサービスにより新しいキー・バージョンが生成されます。Key Managementサービスでは、新しいキー・バージョンのキー・マテリアルを生成することも、独自のキー・マテリアルをインポートすることもできます。
定期的にキーをローテーションすると、1つキー・バージョンによって暗号化または署名されるデータの量を制限します。キーが漏洩した場合でも、キーのローテーションによりリスクが軽減されます。A key's unique, Oracle-assigned identifier, called an Oracle Cloud ID (OCID), remains the same across rotations, but the key version lets the Key Management service seamlessly rotate keys to meet any compliance requirements you might have.
キーをローテーションした後は、暗号化に古いキー・バージョンを使用できませんが、キー・バージョンは、暗号化に使用したデータを復号するために使用したままになります。非対称キーをローテーションすると、公開キーを使用してデータを暗号化できなくなりますが、秘密キーは公開キーで暗号化されたデータを復号化するために使用できます。デジタル署名で使用される非対称キーをローテーションすると、秘密キー・バージョンを使用してデータに署名できなくなりますが、公開キー・バージョンは、以前の秘密キー・バージョンによって以前に署名されたデータのデジタル署名を検証するために使用できます。
対称キーの場合、復号化のためにサービスが必要とする情報がキーの暗号テキストに含まれているため、どのキー・バージョンがデータの暗号化に使用されたかを追跡する必要はありません。ただし、非対称キーのローテーションでは、どのキー・バージョンを使用してどのデータを暗号化または署名したかを追跡する必要があります。非対称キーでは、サービスの復号化または検証に必要な情報がキーの暗号テキストに含まれません。
AES対称キーでは、サービス制限使用量を計算する際に、各キー・バージョンが1つのキー・バージョンとしてカウントされます。ただし、RSAおよびECDSA非対称キーでは、非対称キーには公開キーと秘密キーの両方があるため、サービス制限に対する使用を計算する際、各キー・バージョンは2としてカウントされます。(非対称キーはキー・ペアとも呼ばれます。)
自動キー回転
ノート

この機能は、プライベート・ボールトでのみ使用できます。

OCIのKey Managementサービスを使用すると、仮想プライベート・ボールト内の暗号化キーの自動キー・ローテーションをスケジュールできます。自動ローテーションを構成する場合は、ローテーションの頻度とローテーション・スケジュールの開始日を設定します。頻度については、60日から365日の間の回転間隔を選択しました。KMSは、HSMキーとソフトウェア・キーの両方の自動キー・ローテーションをサポートし、対称キーと非対称キーの両方の自動ローテーションをサポートします。自動ローテーションを構成するには、キーが「enabled」状態である必要があります。

自動キー回転の特徴そして条件:
  • 必要に応じて、自動ローテーションを有効にした後でキーのローテーション スケジュールを更新できます。
  • キーの自動キー・ローテーションが有効になっている場合は、オンデマンドでキーをローテーション(手動ローテーションの実行)できます。
  • 最後のローテーション・ステータスとステータス・メッセージ、ローテーション間隔の更新、次のローテーション開始日など、キーの自動キー・ローテーション・アクティビティを追跡できます。
  • キーのローテーションが失敗した場合、イベント通知を送信できます。

自動ローテーション・イベント通知:自動キー・ローテーション・イベント通知を受信するには、OCIイベント・サービスを構成する必要があります。キー・ローテーションのたびに、ローテーション・ステータスおよびエラー・メッセージ(ある場合)に関する通知がKMSによって送信されます。OCIイベント・サービスでは、イベント・ルールを使用して関数を起動できます。この関数は自動化に使用できます。たとえば、関数を使用して、次のタスクを自動化できます。

  • 新しいキー・バージョンでデータを再暗号化します
  • 古いキー・バージョンを削除します
  • データの署名または検証のための非対称キーの公開部分の配布

詳細は、イベント・ルールの作成および関数の概要を参照してください。

ハードウェア・セキュリティ・モジュール
保護モードをHSMに設定してAES対称マスター暗号化キーを作成する場合、Key Managementサービスは、キー・バージョンをハードウェア・セキュリティ・モジュール(HSM)内に格納して、物理セキュリティのレイヤーを提供します。(シークレットを作成すると、シークレット・バージョンはbase64でエンコードされ、マスター暗号化キーによって暗号化されますが、HSM内には格納されません。)リソースの作成後、サービス・インフラストラクチャ内の指定されたキー・バージョンまたはシークレット・バージョンのコピーが保守され、ハードウェア障害に対する自己回復性が提供されます。HSMで保護されたキーのキー・バージョンは、他の場所には格納されず、HSMからエクスポートできません。
保護モードをHSMに設定してRSAまたはECDSA非対称マスター暗号化キーを作成する場合、Key ManagementサービスはHSM内に秘密キーを格納し、HSMからのエクスポートを許可しません。ただし、公開鍵はダウンロードできます。
キー管理サービスでは、連邦情報処理標準(FIPS) 140-2セキュリティ・レベル3のセキュリティ認証に対応するHSMが使用されます。この動作保証は、HSMハードウェアがタンパー・エビデンスを備え、タンパー・レジスタンスのための物理的な保護手段を備え、アイデンティティ・ベースの認証を必要とし、改パーが検出されたときにデバイスからキーを削除することを意味します。
エンベロープ暗号化
データの暗号化に使用されるデータ暗号化キーは、それ自体がマスター暗号化キーで暗号化されます。この概念はエンベロープ暗号化と呼ばれます。Oracle Cloud Infrastructureサービスは、Key Managementサービスによって保護されているマスター暗号化キーへのアクセス、および、Oracle Cloud Infrastructure Identity and Access Management (IAM)との対話なしに、平文データにアクセスできません。復号化のために、オブジェクト・ストレージ、ブロック・ボリュームおよびファイル・ストレージなどの統合サービスには、暗号化された形式のデータ暗号化キーのみが格納されます。
シークレット
セキュリティとは、パスワード、証明書、SSHキー、Oracle Cloud Infrastructureサービスで使用する認証トークンなどの資格証明です。シークレットをボールトに格納すると、コードや構成ファイルなどの他の場所に格納するよりも優れたセキュリティを実現できます。シークレットは、リソースまたは他のサービスにアクセスするために必要になったときに、Key Managementサービスから取得できます。
シークレットは、コンソール、CLIまたはAPIを使用して作成できます。シークレットのシークレット・コンテンツは、外部ソースからサービスにインポートされます。ボールト・サービスによってシークレットがボールトに格納されます。
Key Managementサービスは、Oracle Cloud Infrastructureリソースとしてシークレットをサポートしています。
シークレット・バージョン
各シークレットには、シークレット・バージョンが自動的に割り当てられます。シークレットをローテーションすると、新しいシークレット・コンテンツがKey Managementサービスに提供され、新しいシークレット・バージョンが生成されます。シークレット・コンテンツを定期的にローテーションすることで、シークレットが公開された場合の影響を抑えることができます。シークレットの一意のOracle Cloud ID (OCID)はローテーション全体で同じままですが、シークレット・バージョンでは、Key Managementサービスがシークレット・コンテンツをローテーションして、ルールまたはコンプライアンス要件を満たすことができます。シークレットを再利用できないように構成されたルールがある場合、ローテーション後に古いシークレット・バージョンのコンテンツは使用できませんが、シークレット・バージョンは引き続き使用可能であり、「現在」以外のローテーション状態を示すマークが付きます。シークレット・バージョンおよびそのローテーション状態の詳細は、シークレット・バージョンおよびローテーション状態を参照してください。
シークレット・バンドル
ボールト・シークレット・バンドルは、シークレット・コンテンツ、シークレットおよびシークレット・バージョンのプロパティ(バージョン番号やローテーション状態など)、およびユーザーが指定したシークレットのコンテキスト・メタデータで構成されます。シークレットをローテーションするとき、新しいシークレット・バージョンを作成しますが、これにも新しいシークレット・バンドル・バージョンが含まれています。

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

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

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

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

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

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

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

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

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

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

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

リソース識別子

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

Oracle Cloud Infrastructureへのアクセス方法

Oracle Cloud Infrastructureには、クラウド・アカウントを入力してアクセスできます。

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

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

認証と認可

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

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

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

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

使用を開始する前に、Vaultサービスの制限とそのリソース使用率を確認します。

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

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