Key Management

キー管理サービスは、リソースへのアクセスを保護するためにキーを格納および管理するOCIサービスです。

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

OCI KMSには、次の機能があります:

  • 暗号化キーを一元的に格納および管理することで、キー管理を簡素化します。
  • 対称キーおよび非対称キーなどの各種暗号化キー・タイプをサポートし、保存中および転送中のデータを保護します。
  • セキュリティおよびコンプライアンス要件に対処するには、独自のキー(BYOK)をOCIに持ち込む、OCIで作成、またはOCI外部の独自のキーを保持(HYOK)をより詳細に制御します。FIPS 140-2レベル3認定ハードウェア・セキュリティ・モジュール(HSM)を使用して、暗号化キーを格納および保護することもできます。
  • ストレージ、データベース、Fusion Applicationsなどの他のOCIサービスと暗号化を統合して、これらのサービスに格納されているデータを保護します。

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

Vault、キーおよびシークレットへのアクセスおよび管理に関するVaultおよびキー管理の概念を理解します。

ボールト
ボールトは、Vaultサービスがボールト・キーおよびシークレットを作成して永続的に格納する論理エンティティです。使用するボールトのタイプによって、ストレージの分離度、管理および暗号化へのアクセス、スケーラビリティ、バックアップ機能などの機能が決まります。また、使用するボールトのタイプは価格設定にも影響します。ボールトの作成後、ボールトのタイプは変更できません。
ボールト・サービスには、組織のニーズや予算に対応する様々なボールト・タイプが用意されています。すべてのボールト・タイプにより、ボールトが格納する暗号化キーおよびシークレットのセキュリティと整合性が確保されます。仮想プライベート・ボールトは、ハードウェア・セキュリティ・モジュール(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アルゴリズムを使用した対称暗号化と非対称暗号化の両方をサポートします。

仮想プライベート・ボールトには、デフォルトで1000個のキー・バージョンが含まれます。より高度な分離やボールトのバックアップ機能が必要ない場合は、仮想プライベート・ボールトは必要ありません。仮想プライベート・ボールトがない場合、キー・バージョンを必要に応じて個別に支払うことでコストを管理できます。(キー・バージョンはキー制限およびコストに加算されます。ボールト・キーには常に少なくとも1つのアクティブ・キー・バージョンが含まれます。同様に、シークレットには常に少なくとも1つのシークレット・バージョンが含まれます。ただし、シークレットに対する制限は、ボールトではなくテナントに適用されます。)
ボールト・サービスでは、ボールトがOracle Cloud Infrastructureリソースとして指定されています。
キー
キーは、1つ以上のキー・バージョンを表す論理エンティティであり、各キーには暗号化マテリアルが含まれます。ボールト・キーの暗号化資料は、暗号化またはデジタル署名にキーを使用できる特定のアルゴリズムに対して生成されます。暗号化に使用すると、キーまたはキーのペアがデータを暗号化および復号化し、データが格納されている場所またはデータが転送中のデータを保護します。AES対称キーを使用すると、同じキーでデータが暗号化および復号化されます。RSA非対称キーを使用すると、公開キーはデータを暗号化し、秘密キーはデータを復号化します。
暗号化および復号化ではAES鍵を使用できますが、デジタル署名では使用できません。ただし、RSA鍵は、データの暗号化と復号化だけでなく、データのデジタル署名と署名データの信頼性の検証にも使用できます。ECDSAキーはデジタル署名で使用できますが、データの暗号化または復号化には使用できません。
暗号化アルゴリズムの一部として処理される場合は、暗号化中に平文を暗号文に変換する方法と、復号化中に暗号文を平文に変換する方法をキーで指定します。署名アルゴリズムの一部としてまとめて処理すると、非対称キーとメッセージの秘密キーによって、送信中のメッセージに付随するデジタル署名が生成されます。署名付きメッセージの受信者によって署名検証アルゴリズムの一部として処理された場合、同じ非対称キーのメッセージ、署名および公開キーによって、メッセージの信頼性と整合性が確認または拒否されます。
概念上、ボールト・サービスは、3つのタイプの暗号化キー(マスター暗号化キー、ラッピング・キーおよびデータ暗号化キー)を認識します。
Vaultサービスがボールト・マスター暗号化キーに対してサポートする暗号化アルゴリズムには、AES、RSAおよびECDSAが含まれます。コンソール、CLIまたはAPIを使用して、AES、RSAまたはECDSAマスター暗号化キーを作成できます。マスター暗号化キーを作成する場合、Vaultサービスでは、キー・マテリアルを内部で生成するか、外部ソースからサービスにキー・マテリアルをインポートできます。(キー・マテリアルのインポートのサポートは、キー・マテリアルの暗号化アルゴリズムによって異なります。)ボールト・マスター暗号化キーを作成する場合、ボールトに作成しますが、キーが格納および処理される場所は保護モードによって異なります。
Vaultマスター暗号化キーには、HSMまたはソフトウェアの2つの保護モードのいずれかを指定できます。HSMによって保護されるマスター暗号化キーはHSMに格納され、HSMからエクスポートできません。キーを含むすべての暗号化操作は、HSMでも発生します。一方、ソフトウェアで保護されているマスター暗号化鍵はサーバーに格納されるため、サーバーからエクスポートして、サーバー上ではなくクライアント上で暗号化操作を実行できます。保存中、ソフトウェアで保護されたキーはHSMのルート・キーによって暗号化されます。ソフトウェアで保護されたキーの場合、そのキーに関連する処理はサーバーで行われます。キーの保護モードは価格設定に影響するため、キーの作成後に変更することはできません。
最初の対称マスター暗号化キーを作成した後、APIを使用して、Vaultサービスから返されるデータ暗号化キーを生成できます。一部のサービスでは、対称マスター暗号化キーを使用して独自のデータ暗号化キーを生成することもできます。
各ボールトにデフォルトで含まれている暗号化キーのタイプは、ラッピング・キーです。ラッピング・キーは、RSAアルゴリズムに基づく4096ビットの非対称暗号化キーです。公開キーと秘密キーのペアは、サービス制限に対してカウントされません。また、サービス・コストも発生しません。ボールト・サービスにインポートするためにキー・マテリアルをラップする必要がある場合は、公開キーをキー暗号化キーとして使用します。ラッピング・キーを作成、削除またはローテーションすることはできません。
ボールト・サービスでは、マスター暗号化キーがOracle Cloud Infrastructureリソースとして認識されます。
キー・バージョンとローテーション
各ボールト・マスター暗号化キーには、キー・バージョンが自動的に割り当てられます。キーをローテーションすると、ボールト・サービスにより新しいキー・バージョンが生成されます。Vaultサービスでは、新しいキー・バージョンのキー・マテリアルを生成することも、独自のキー・マテリアルをインポートすることもできます。
定期的にキーをローテーションすると、1つのキー・バージョンで暗号化または署名されるデータの量が制限されます。キーが危殆化した場合、キー・ローテーションによってリスクが軽減されます。Oracle Cloud ID (OCID)と呼ばれるOracleによって割り当てられたキーの一意の識別子は、ローテーション後も同じままですが、キー・バージョンにより、Vaultサービスは、コンプライアンス要件を満たすようにキーをシームレスにローテーションできます。
キーをローテーションした後は、暗号化に古いキー・バージョンを使用することはできませんが、キー・バージョンは、以前に暗号化したデータを復号化するために使用可能なままです。非対称キーをローテーションすると、公開キーを使用してデータを暗号化できなくなりますが、秘密キーは、公開キーで以前に暗号化されたデータを復号化するために使用できます。デジタル署名で使用されている非対称キーをローテーションすると、秘密キー・バージョンを使用してデータに署名できなくなりますが、公開キー・バージョンは、古い秘密キー・バージョンによって以前に署名されたデータのデジタル署名を検証するために使用できます。
対称キーの場合、サービスの復号化に必要な情報がキーの暗号文に含まれているため、どのキー・バージョンがどのデータ暗号化に使用されたかを追跡する必要はありません。ただし、非対称キーのローテーションでは、どのキー・バージョンがどのデータの暗号化または署名に使用されたかを追跡する必要があります。非対称キーでは、サービスの復号化または検証に必要な情報がキーの暗号テキストに含まれません。
AES対称キーでは、サービス制限使用量を計算する際に、各キー・バージョンが1つのキー・バージョンとしてカウントされます。ただし、RSAおよびECDSA非対称キーでは、非対称キーには公開キーと秘密キーの両方があるため、サービス制限に対する使用を計算する際、各キー・バージョンは2としてカウントされます。(非対称キーはキー・ペアとも呼ばれます。)
自動キー回転
OCI Key Management Serviceを使用すると、キー・ローテーションを自動的にスケジュールできます。ローテーション・スケジュールは、暗号化キー(有効状態)のローテーションの頻度とローテーション・スケジュールの開始日を定義します。自動ローテーションをスケジュールする場合、60日から365日の範囲のキー・ローテーション・スケジュールを定義できます。KMSは、HSMキーとソフトウェア・キーの両方に対して自動キー・ローテーションをサポートしており、対称キーと非対称キーの両方に適用されます。
ノート

この機能は、プライベート・ボールトでのみ使用できます。
自動キー回転の顕著な特徴は次のとおりです:
  • キーの自動キー・ローテーション・スケジュールを有効化または更新できます。
  • 自動ローテーション・ステータス、定期的なキー・ローテーション更新、最後に成功したローテーション・ステータス、次のローテーション開始日などの自動キー・ローテーション・アクティビティをキーの粒度で追跡する機能。
  • 自動キー・ローテーションに関係なく、オンデマンド(手動操作)でキーをローテーションする機能が有効または無効になります。
  • テナントの容量制限、不正な状態のキーまたはボールトなどの問題のためにキー・ローテーションが失敗した場合にイベント通知を送信します。

自動ローテーション・イベント通知: KMSは自動レイ・ローテーション・ステータス通知を送信します。これらの通知を受信するには、OCIイベント・サービスを構成する必要があります。キーのローテーションのたびに、KMSはローテーションのステータスおよびエラーメッセージ(ある場合)に関する通知を送信します。OCIイベント・サービスを使用すると、Oracle関数をアタッチして、新しいキー・バージョンでデータを再暗号化するためのカスタム・ロジックを実行し、その後に古いキー・バージョンを削除したり、データのサイズ設定または検証のために非対称キーの公開部分を配布したりできます。

ハードウェア・セキュリティ・モジュール
保護モードをHSMに設定してAES対称マスター暗号化キーを作成すると、Vaultサービスによってハードウェア・セキュリティ・モジュール(HSM)内にキー・バージョンが格納され、物理セキュリティのレイヤーが提供されます。(シークレットを作成すると、シークレット・バージョンはbase64-encodedで、マスター暗号化キーによって暗号化されますが、HSMには格納されません。)リソースの作成後、サービスは、ハードウェア障害に対する自己回復性を実現するために、サービス・インフラストラクチャ内の特定のキー・バージョンまたはシークレット・バージョンのコピーを保持します。HSMで保護されたキーのキー・バージョンは、他の場所には格納されず、HSMからエクスポートできません。
保護モードをHSMに設定してRSAまたはECDSA非対称マスター暗号化キーを作成すると、VaultサービスによってHSM内に秘密キーが格納され、HSMからのエクスポートは許可されません。ただし、公開キーをダウンロードできます。
ボールト・サービスでは、連邦情報処理標準(FIPS) 140-2セキュリティ・レベル3のセキュリティ証明を満たすHSMが使用されます。この動作保証は、HSMハードウェアが改ざんが明白であり、改ざん抵抗のための物理的な保護手段があり、IDベースの認証を必要とし、改ざんを検出したときにデバイスから鍵を削除することを意味します。
エンベロープ暗号化
データの暗号化に使用されるデータ暗号化キーは、それ自体がマスター暗号化キーで暗号化されます。この概念はエンベロープ暗号化と呼ばれます。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サービスがリクエストに応じてキーまたはシークレットを生成できるようにするために、その内容が保持されます。このレプリケーションは、お客様が構成する可能性のあるリージョン間レプリケーションとは独立しています。

複数の可用性ドメインがあるリージョンの場合、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へのアクセス方法

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

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

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

認証と認可

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

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

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

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

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

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

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