Key Management
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サービスが作成し、ボールト・キーとシークレットを永続的に格納する論理エンティティです。保持するボールトのタイプによって、ストレージの分離度、管理および暗号化へのアクセス、スケーラビリティおよびバックアップ機能が決まります。また、使用するボールトのタイプは価格設定にも影響します。ボールトの作成後、ボールトのタイプは変更できません。
- キー
- キーは、1つ以上のキー・バージョンを表す論理エンティティであり、各キーには暗号化マテリアルが含まれます。ボールト・キーの暗号化資料は、暗号化またはデジタル署名にキーを使用できる特定のアルゴリズムに対して生成されます。暗号化に使用すると、キーまたはキーのペアがデータを暗号化および復号化し、データが格納されている場所またはデータが転送中のデータを保護します。AES対称キーを使用すると、同じキーでデータが暗号化および復号化されます。RSA非対称キーを使用すると、公開キーはデータを暗号化し、秘密キーはデータを復号化します。
- キー・バージョンとローテーション
- 各マスター暗号化キーには、キー・バージョンが自動的に割り当てられます。キーをローテーションすると、Key Managementサービスにより新しいキー・バージョンが生成されます。Key Managementサービスでは、新しいキー・バージョンのキー・マテリアルを生成することも、独自のキー・マテリアルをインポートすることもできます。
- 自動キー回転
-
ノート
この機能は、プライベート・ボールトでのみ使用できます。OCIのKey Managementサービスを使用すると、仮想プライベート・ボールト内の暗号化キーの自動キー・ローテーションをスケジュールできます。自動ローテーションを構成する場合は、ローテーションの頻度とローテーション・スケジュールの開始日を設定します。頻度については、60日から365日の間の回転間隔を選択しました。KMSは、HSMキーとソフトウェア・キーの両方の自動キー・ローテーションをサポートし、対称キーと非対称キーの両方の自動ローテーションをサポートします。自動ローテーションを構成するには、キーが「enabled」状態である必要があります。
自動キー回転の特徴そして条件:- 必要に応じて、自動ローテーションを有効にした後でキーのローテーション スケジュールを更新できます。
- キーの自動キー・ローテーションが有効になっている場合は、オンデマンドでキーをローテーション(手動ローテーションの実行)できます。
- 最後のローテーション・ステータスとステータス・メッセージ、ローテーション間隔の更新、次のローテーション開始日など、キーの自動キー・ローテーション・アクティビティを追跡できます。
- キーのローテーションが失敗した場合、イベント通知を送信できます。
自動ローテーション・イベント通知:自動キー・ローテーション・イベント通知を受信するには、OCIイベント・サービスを構成する必要があります。キー・ローテーションのたびに、ローテーション・ステータスおよびエラー・メッセージ(ある場合)に関する通知がKMSによって送信されます。OCIイベント・サービスでは、イベント・ルールを使用して関数を起動できます。この関数は自動化に使用できます。たとえば、関数を使用して、次のタスクを自動化できます。
- 新しいキー・バージョンでデータを再暗号化します
- 古いキー・バージョンを削除します
- データの署名または検証のために非対称キーの公開部分を配布します。
詳細は、イベント・ルールの作成および関数の概要を参照してください。
- ハードウェア・セキュリティ・モジュール
- 保護モードがHSMに設定されているAES対称マスター暗号化キーを作成すると、Key Managementサービスはキー・バージョンをハードウェア・セキュリティ・モジュール(HSM)内に格納し、物理セキュリティのレイヤーを提供します。(シークレットを作成すると、シークレット・バージョンはbase64でエンコードされ、マスター暗号化キーによって暗号化されますが、HSM内には格納されません。)リソースの作成後、サービスは、ハードウェア障害に対する自己回復性を実現するために、サービス・インフラストラクチャ内の指定されたキー・バージョンまたはシークレット・バージョンのコピーを保持します。それ以外の場合、HSMで保護されたキーのキー・バージョンは他のどこにも格納されず、HSMからエクスポートできません。
- エンベロープ暗号化
- データの暗号化に使用されるデータ暗号化キーは、それ自体がマスター暗号化キーで暗号化されます。この概念はエンベロープ暗号化と呼ばれます。Oracle Cloud Infrastructureサービスは、Oracle Cloud Infrastructure Identity and Access Management (IAM)によって保護されているマスター暗号化キーへのアクセス、および、キー管理サービスとの対話なしに、プレーン・テキスト・データにアクセスすることはできません。暗号化のために、Object Storage、Block Volume、File Storageなどの統合サービスには、暗号化された形式のデータ暗号化キーのみが格納されます。
- シークレット
- セキュリティとは、パスワード、証明書、SSHキー、Oracle Cloud Infrastructureサービスで使用する認証トークンなどの資格証明です。シークレットをボールトに格納すると、コードや構成ファイルなどの他の場所に格納するよりも優れたセキュリティを実現できます。シークレットは、リソースまたは他のサービスにアクセスするために必要になったときに、Key Managementサービスから取得できます。
- シークレット・バージョン
- 各シークレットには、シークレット・バージョンが自動的に割り当てられます。シークレットをローテーションするとき、キー管理サービスに新しいシークレット・コンテンツを指定して、新しいシークレット・バージョンを生成します。シークレット・コンテンツを定期的にローテーションすることで、シークレットが公開された場合の影響を抑えることができます。Oracleが割り当てた一意のシークレット識別子であるOracle Cloud ID (OCID)は、ローテーション後も同じままですが、シークレット・バージョンを使用すると、キー管理サービスがシークレット・コンテンツをローテーションし、ルールまたはコンプライアンス要件を満たすことができます。シークレットを再利用できないように構成されたルールがある場合、ローテーション後に古いシークレット・バージョンのコンテンツは使用できませんが、シークレット・バージョンは引き続き使用可能であり、「現在」以外のローテーション状態を示すマークが付きます。シークレット・バージョンおよびそのローテーション状態の詳細は、シークレット・バージョンおよびローテーション状態を参照してください。
- シークレット・バンドル
- ボールト・シークレット・バンドルは、シークレット・コンテンツ、シークレットおよびシークレット・バージョンのプロパティ(バージョン番号やローテーション状態など)、およびユーザーが指定したシークレットのコンテキスト・メタデータで構成されます。シークレットをローテーションするとき、新しいシークレット・バージョンを作成しますが、これにも新しいシークレット・バンドル・バージョンが含まれています。
リージョンおよび可用性ドメイン 🔗
ボールト・サービスは、すべての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サービスへのアクセス: サービス・ゲートウェイを参照してください。
リソース識別子 🔗
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サービスの制限とそのリソース使用率を確認します。
適用可能な制限のリストと制限の引上げをリクエストする手順は、サービス制限を参照してください。リソースまたはリソース・ファミリにコンパートメント固有の制限を設定するために、管理者は、コンパートメント割当てを使用できます。
テナンシのリソース制限に対する使用レベルを表示する手順は、サービス制限、割当ておよび使用状況の表示を参照してください。ボールトの詳細でキーおよびキー・バージョンの数を表示することで、各ボールトのキー制限に対する使用状況を取得することもできます。