Exascale Infrastructure@Google Cloud上のExadata Database ServiceのGoogle Cloud Key Management統合

Exadata Database Service on Exascale Infrastructure@Google Cloudは、Google Cloud PlatformのKey Management Service (KMS)との統合をサポートするようになりました。

この機能拡張により、ユーザーはGCP顧客管理暗号化キー(CMEK)を使用してTransparent Data Encryption (TDE)マスター暗号化キー(MEK)を管理できます。

以前は、Transparent Data Encryption (TDE)マスター暗号化キー(MEK)は、ファイルベースのOracle Wallet、Oracle Cloud Infrastructure (OCI) VaultまたはOracle Key Vault (OKV)にのみ格納できました。この更新により、ユーザーはGCP KMSにMEKを直接格納および管理できるようになり、キー・ライフサイクル管理が改善され、組織固有のセキュリティ・ポリシーと連携できるようになりました。

この統合により、アプリケーション、Google Cloudサービスおよびデータベースは、強化されたセキュリティと簡素化されたキー・ライフサイクル管理を提供する一元化されたキー管理ソリューションの恩恵を受けることができます。

前提条件

データベースのキー管理サービスとしてGCP Customer Managed Encryption Keys (CMEK)を構成する前に、次の前提条件が満たされていることを確認します。

  1. Google Cloudコンソールを使用してVMクラスタをプロビジョニングします。手順については、「Google Cloud用のVMクラスタのプロビジョニング」を参照してください。
  2. アイデンティティ・コネクタ接続を確認して、正しく構成され、アクティブであることを確認します。詳細は、VMクラスタにアタッチされたデフォルトのアイデンティティ・コネクタの検証を参照してください。
  3. VMクラスタ・レベルでGCP Customer Managed Encryption Keys (CMEK)を構成するための前提条件。

    Exascale Infrastructure@Google Cloud上のExadata Database Serviceとともにデプロイされたデータベースに対してGoogle Cloud Platform (GCP) Customer Managed Encryption Keys (CMEK)を有効にするには、VMクラスタ・レベルでキー管理オプションとしてCMEKを構成する必要があります。CMEKを有効にすると、すべてのデータベース暗号化および復号化操作で、指定されたGCP管理キーが使用されます。

    CMEKを有効にする前に、次のことを確認してください。
    • 必要なGCPキー・リングおよび暗号化キーは、GCPですでに作成されています。
    • これらのキーは、Oracle Cloud Infrastructure (OCI)のアンカー・リソースとしてミラー化されるため、GCPとOCI間の同期が確保されます。
    • アンカー・リソースは、データベースのプロビジョニング、およびキーのローテーション、取消し、監査などの暗号化キー・ライフサイクルの管理のために配置されています。
  4. GCPキー・リソースにアクセスするためのIAMポリシー要件。

    データベースは、クラスタ・リソース・プリンシパルを使用して、GCPキー・リソースを安全に取得します。この機能を有効にするには、OCIテナンシに適切なIAMポリシーを定義する必要があります。

    Oracle GCPキーへの読取り専用アクセス:
    Allow any-user to read oracle-db-gcp-keys in compartment id <your-compartment-OCID> 
    where all { request.principal.type = 'exadbvmcluster',}

    このポリシーは、VMクラスタ・リソース・プリンシパルのGCPキー・リソースへの読取り専用アクセス権を付与します。

  5. 必要なGoogle Cloud Services Connectivity GCP CMEK統合。

    通常、Google Cloud VPCには、以下に示すサービスへのデフォルトルートが含まれています。これらのエンドポイントへのアクセスをブロックするファイアウォール・エグレス・ルールがないことを確認します。

    • https://iamcredentials.googleapis.com/
    • https://sts.googleapis.com/
    • https://cloudkms.googleapis.com/

コンソールを使用したExascale Infrastructure@Google CloudでのExadata Database ServiceのGCP KMS統合の管理

Exascale Infrastructure@Google Cloud上のExadata Database ServiceのGCP KMS統合を管理する方法について学習します。

VMクラスタにアタッチされたアイデンティティ・コネクタの詳細を表示するには、この手順を使用します。

  1. ナビゲーション・メニューを開きます。「Oracle AI Database」をクリックし、「Oracle Exadata Database Service on Exascale Infrastructure」をクリックします。

    デフォルトでは、「VMクラスタ」ページが選択されています。

  2. 「VMクラスタ」のリストから、選択したクラスタを選択します。
  3. 表示される「VMクラスタの詳細」ページの「マルチクラウド情報」セクションで、「アイデンティティ・コネクタ」フィールドにこのVMクラスタにアタッチされているアイデンティティ・コネクタが表示されることを確認します。
  4. アイデンティティ・コネクタの名前をクリックして、その詳細を表示します。

    Database Multicloud Integrationsポータルにリダイレクトされます。

鍵リングを作成するには、この手順を使用します。

  1. Google Cloud Consoleを開き、「キー管理」ページにナビゲートします。
  2. 「キー・リングの作成」をクリックします。
  3. 次の詳細を入力します。
    • 名前: キー・リングのわかりやすい名前を入力します。
    • 位置: キー・リングの場所を選択します。
      重要:
      • 同じ名前のキー・リングが異なる場所に存在する場合があるため、常に場所を指定する必要があります。
      • 保護するリソースに近い場所を選択します。
      • お客様が管理する暗号化キーの場合、キー・リングを使用するリソースと同じ場所にあることを確認します。

      あなたのキーリングのための場所を選択:

      Google Cloud Key Management Service(KMS)でキーリングを作成する場合は、適切な場所を選択することが重要です。選択内容は、暗号化キーの格納場所およびレプリケート方法に影響します。詳細は、クラウドKMSの場所を参照してください。

      • リージョン:
        • データは特定の地域に格納されます。
        • キーは、この単一領域の境界内に残ります。
        • 次の作業に最適:
          • 低レイテンシのアプリケーション
          • データ・レジデンシー要件への準拠
          • リージョン固有のワークロード
      • マルチリージョン:
        • データは、より大きな地理的領域内の複数のリージョンにレプリケートされます。
        • Googleは、ディストリビューションとレプリケーションを自動的に管理します。
        • 個々のデータ・センターまたはリージョンは選択できません。
        • 次の作業に最適:
          • 高可用性
          • 耐障害性に優れた耐障害性アプリケーション
          • 幅広い地域に対応するサービス
      • グローバル:
        • 特別なタイプの複数リージョン。
        • キーは世界中のGoogleデータセンターに配布されています。
        • ロケーションの選択およびコントロールは使用できません。
        • 次の作業に最適:
          • グローバル・ユーザーを持つアプリケーション
          • 最大限の冗長性とリーチを必要とするユースケース
  4. 「作成」をクリックします。

キー・リングが作成されると、その中の暗号化キーの作成と管理を開始できます。

指定された鍵リングと場所にraw対称暗号化鍵を作成するには、この手順を使用します。

  1. Google Cloud Consoleを開き、「キー管理」ページにナビゲートします。
  2. キーを作成するキー・リングの名前をクリックします。
  3. 「キーの作成」をクリックします。
  4. 次の詳細を入力します。
    • キー名: キーのわかりやすい名前を入力します。
    • 保護レベル: 「ソフトウェア」または「HSM」(ハードウェア・セキュリティ・モジュール)を選択します。

      キーの作成後は、キーの保護レベルを変更できません。詳細は、Protection levelsを参照してください。

    • キー・マテリアル: 「キーの生成」または「キーのインポート」を選択します。

      Cloud KMSでキー マテリアルを生成するか、Google Cloudの外部で管理されているキー マテリアルをインポートします。詳細は、顧客管理暗号化キー(CMEK)を参照してください。

    • 目的およびアルゴリズム:

      詳細は、主な目的とアルゴリズムを参照してください

      • 「目的」「Raw encryption/decryption」に設定します。
      • 「アルゴリズム」で、「AES-256-CBC」を選択します。
  5. 「作成」をクリックします。

作成後、AES-CBCの暗号化および復号化を必要とする暗号化操作にこの鍵を使用できます。

Oracle Cloud Infrastructure (OCI)でキーを検出できるようにするには、この手順を使用します。

  1. 「Google Cloud KMS」で、検出可能にするキーを選択します。
  2. 「権限」タブに移動して、「プリンシパルの追加」をクリックします。
  3. 「新規プリンシパル」フィールドに、「ワークロード・リソース・サービス・エージェント」に関連付けられているサービス・アカウントを入力します。
    ノート

    このサービス・アカウントは、「アイデンティティ・コネクタの詳細」ページの「GCP情報」セクションにあります。ワークロード・リソース・サービス・エージェントを探して、そのIDに注意してください。これは必須のサービス・アカウントです。

  4. 「ロールの割当て」で、選択したロールを追加します。
    ノート

    次の最小限の権限でカスタム・ロールを作成し、選択したキー・リングに割り当てます。

    これらの権限を一緒に使用すると、OCIは次のことが可能になります。

    • 鍵リングや鍵などのKMSリソースを検出します。
    • キーとそのバージョンに関するメタデータにアクセスします。
    • 暗号化操作(暗号化/復号化)にキーを使用します。
    • キー・バージョンを作成します。

    必要な最小権限:

    • cloudkms.cryptoKeyVersions.get

      特定のキー・バージョンのメタデータの取得を許可します。

    • cloudkms.cryptoKeyVersions.manageRawAesCbcKeys

      生のAES-CBCキーマテリアル(インポート、回転など)の管理を有効にします。

    • cloudkms.cryptoKeyVersions.create

      キー内に新しいキー・バージョンを作成できます。

    • cloudkms.cryptoKeyVersions.list

      指定されたキーのすべてのバージョンをリストします。

    • cloudkms.cryptoKeyVersions.useToDecrypt

      データの復号化にキー・バージョンを使用する権限を付与します。

    • cloudkms.cryptoKeyVersions.useToEncrypt

      データの暗号化にキー・バージョンを使用する権限を付与します。

    • cloudkms.cryptoKeys.get

      キーのメタデータの取得を許可します。

    • cloudkms.cryptoKeys.list

      キーリング内のすべてのキーを一覧表示します。

    • cloudkms.keyRings.get

      キー・リングのメタデータの取得を許可します。

    • cloudkms.locations.get

      サポートされているキーの場所に関する情報を取得します。

  5. 「保存」をクリックして変更を適用します。
  6. 「リフレッシュ」をクリックして、更新された権限が有効であることを確認します。

VMクラスタでGoogle Cloud Customer Managed Encryption Keys (CMEK)を有効にするには、まずGCP Key RingをOCIに登録する必要があります。

ノート

続行する前に、「Oracle Cloud Infrastructure (OCI)によるキー検出のためのGoogle Cloud KMSでの権限の付与」で説明されている権限が付与されていることを確認します。

  1. 「Database Multicloud Integrations」ポータルで、「Google Cloud Integration」「GCP Key Rings」に移動します。
  2. 「GCP Key Ring」をクリックします。
  3. 「GCPキー・リングの登録」をクリックします。
  4. 表示される「GCPキー・リングの登録」ページで、次の詳細を指定します:
    • コンパートメント: VMクラスタが存在するコンパートメントを選択します。
    • アイデンティティ・コネクタ: VMクラスタにアタッチされているアイデンティティ・コネクタを選択します。
    • キー・リング: 登録するGCPキー・リングの名前を入力します。

      単一のアイデンティティ・コネクタを介して使用可能なすべてのキー・リングを検出するには、そのアイデンティティ・コネクタに次の権限を付与する必要があります。これらの権限は、コネクタが目的の範囲内のすべてのキー・リングにアクセスできるように、適切なプロジェクトまたはフォルダ・レベルで割り当てる必要があります。

      • cloudkms.keyRings.list

        プロジェクト内のすべてのキー・リングのリストを許可します。

      • cloudkms.locations.get

        特定のキー・リングのメタデータの取得を許可します。

  5. 「検出」をクリックして、キー・リングがGCPに存在するかどうかを確認します。

    成功すると、キーリングの詳細が表示されます。

    ノート

    個々のキーではなく、キーリングのみを登録できます。必要な権限が設定されていれば、登録されたキー・リングに関連付けられたサポートされているすべてのキーを使用できます。

  6. 「登録」をクリックします。

VMクラスタでGCP CMEKを有効にするには、この手順を使用します。

ノート

Exadata VMクラスタをプロビジョニングする場合、GCP CMEKはデフォルトで無効になっています。

  1. ナビゲーション・メニューを開きます。「Oracle AI Database」をクリックし、「Oracle Exadata Database Service on Exascale Infrastructure」をクリックします。

    デフォルトでは、「VMクラスタ」ページが選択されています。

  2. VMクラスタのリストから、構成するクラスタを選択します。
  3. 「VMクラスタ詳細」ページで、「マルチクラウド情報」セクションまでスクロールし、GCP CMEKの横にある「有効化」をクリックします。
  4. GCP CMEKを無効にするには、「無効化」をクリックします。

データベースを作成し、GCP Customer-Managed Encryption Key (CMEK)をキー管理ソリューションとして使用

このトピックでは、データベースを作成し、GCP顧客管理暗号化キー(CMEK)をキー管理ソリューションとして使用するステップのみについて説明します。

For the generic database creation procedure, see To Create a Database in an Existing Oracle Exadata Database Service on Exascale Infrastructure VM Cluster.

前提条件

  • VMクラスタ・レベルでGoogle Cloud Key Managementを有効にします。
  • GCPキー・リングをOCIに登録します。

ステップ

VMクラスタでGoogle Cloud Key Managementが有効になっている場合は、Oracle WalletGCP Customer Managed Encryption Keyの2つのキー管理オプションがあります。

  1. 「暗号化」セクションで、「GCP Customer Managed Encryption Key」を選択します。
  2. コンパートメントで使用可能な登録済キー・リングを選択します。
    ノート

    • 登録済みの鍵リングのみが一覧表示されます。
    • 目的のキー・リングが表示されない場合は、まだ登録されていない可能性があります。「キー・リングの登録」をクリックして、キー・リングを検出および登録します。

      詳細な手順は、Oracle Cloud Infrastructure (OCI)でのGCP Key Ringの登録を参照してください。

  3. コンパートメントで選択したキー・リング内のキーを選択します。

異なる暗号化方式間で暗号化鍵を変更するには、この手順を使用します。

ノート

  • GCP Customer Managed Encryption KeyからOracle Walletに移行することはできません。
  • キー管理構成が更新されている間、データベースは短期間ダウンタイムになります。
  1. OCIコンソールでデータベースの詳細ページに移動します。
  2. 「暗号化」セクションで、「キー管理」「Oracle Wallet」に設定されていることを確認し、「変更」リンクをクリックします。
  3. 「キー管理の変更」ページで次の情報を入力します。
    1. ドロップダウン・リストから「キー管理」「GCP顧客管理暗号化キー」として選択します。
    2. 使用しているコンパートメントを選択し、そのコンパートメントで使用可能なキー・リングを選択します。
    3. 次に、使用しているキー・コンパートメントを選択し、ドロップダウン・リストから目的のキーを選択します。
    4. 「変更の保存」をクリックします。

コンテナ・データベース(CDB)のGCP Customer Managed Encryption Keyをローテーションするには、この手順を使用します。

  1. ナビゲーション・メニューを開きます。「Oracle AI Database」をクリックし、「Oracle Exadata Database Service on Exascale Infrastructure」をクリックします。
  2. コンパートメントを選択します。

    選択したコンパートメントに対するVMクラスタのリストが表示されます。

  3. VMクラスタのリストで、暗号化キーをローテーションするデータベースを含むVMクラスタの名前をクリックします。
  4. 「コンテナ・データベース」をクリックします。
  5. 暗号化キーをローテーションするデータベースの名前をクリックします。

    「データベース詳細」ページに、選択したデータベースに関する情報が表示されます。

  6. 「暗号化」セクションで、「キー管理」「GCP顧客管理暗号化キー」に設定されていることを確認し、「ローテーション」リンクをクリックします。
  7. 表示される「キーのローテーション」ダイアログで、「ローテーション」をクリックしてアクションを確認します。

プラガブル・データベース(PDB)のGCP Customer Managed Encryption Keyをローテーションするには、この手順を使用します。

  1. ナビゲーション・メニューを開きます。「Oracle AI Database」をクリックし、「Oracle Exadata Database Service on Exascale Infrastructure」をクリックします。
  2. コンパートメントを選択します。

    選択したコンパートメントに対するVMクラスタのリストが表示されます。

  3. VMクラスタのリストで、起動するPDBを含むVMクラスタの名前をクリックし、その名前をクリックして詳細ページを表示します。
  4. 「コンテナ・データベース」で、暗号化キーをローテーションするPDBを含むデータベースを見つけます。
  5. データベースの名前をクリックして、「データベース詳細」ページを表示します。
  6. ページの「リソース」セクションの「プラガブル・データベース」をクリックします。

    このデータベース内の既存のPDBのリストが表示されます。

  7. 暗号化キーをローテーションするPDBの名前をクリックします。

    プラガブル詳細ページが表示されます。

  8. 「暗号化」セクションに、キー管理がGCP Customer Managed Encryption Keyとして設定されていることが表示されます。
  9. 「Rotate」リンクをクリックします。
  10. 表示される「キーのローテーション」ダイアログで、「ローテーション」をクリックしてアクションを確認します。

APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。

次のリソースは、OCI SDK、CLIおよびTerraformを介してお客様に提供されます。これらのAPIは、Exadata上のExascale InfrastructureをGoogle Cloud Servicesと統合するお客様によって使用されます。

表5-10 OracleDbGcpIdentityConnectors

API 説明
ListOracleDbGcpIdentityConnectors 指定されたフィルタに基づいて、すべてのGCPアイデンティティ・コネクタ・リソースをリストします。
GetOracleDbGcpIdentityConnector 特定のGCPアイデンティティ・コネクタ・リソースに関する詳細情報を取得します。
CreateOracleDbGcpIdentityConnector 指定されたExaDB-D VMクラスタの新しいGCPアイデンティティ・コネクタ・リソースを作成します。
UpdateOracleDbGcpIdentityConnector 既存のGCPアイデンティティ・コネクタ・リソースの構成詳細を更新します。
ChangeOracleDbGcpIdentityConnectorCompartment GCPアイデンティティ・コネクタ・リソースを別のコンパートメントに移動します。
DeleteOracleDbGcpIdentityConnector 指定されたGCPアイデンティティ・コネクタ・リソースを削除します。

表5-11 OracleDbGcpKeyRings

API 説明
ListOracleDbGcpKeyRings 指定されたフィルタに基づいて、すべてのGCP Key Ringリソースを一覧表示します。
CreateOracleDbGcpKeyRing 新しいGCP Key Ringリソースを作成します。
ChangeOracleDbGcpKeyRingCompartment GCPキー・リング・リソースを別のコンパートメントに移動します。
RefreshOracleDbGcpKeyRing GCP Key Ringリソースの詳細をリフレッシュします。
GetOracleDbGcpKeyRing 特定のGCPキー・リング・リソースに関する詳細情報を取得します。
UpdateOracleDbGcpKeyRing 既存のGCPキー・リング・リソースの構成詳細を更新します。
DeleteOracleDbGcpKeyRing 指定されたGCPキー・リング・リソースを削除します。

表5-12 OracleDbGcpKeyKeys

API 説明
ListOracleDbGcpKeys 指定されたフィルタに基づいて、すべてのGCP Key Ringリソースを一覧表示します。
GetOracleDbGcpKey 特定のGCPキー・リソースに関する詳細情報を取得します。

マルチクラウドPKCS#11ドライバの更新

ノート

Google Cloud用のPKCS#11ドライバは、VMクラスタでGoogle Cloud Key Managementが有効になっているときに自動的にインストールされます。ドライバがインストールされていることを確認し、そのバージョンを確認するには、次のコマンドを実行します。

rpm -qa | grep pkcs

このコマンドは、VMクラスタにインストールされているPKCSパッケージをリストします。Azure、Google CloudまたはAWSのいずれかに対応する、一度にアクティブにできるPKCS#11ドライバは1つのみです。

出力例:

pkcs-multicloud-driver-gcp-0.1-250723.0511.x86_64

これにより、pkcs-multicloud-driver-gcpパッケージがバージョンおよびアーキテクチャとともにインストールされることが確認されます。

PKCS#11ドライバは、顧客のプリファレンスに応じて、ローリング・メカニズムまたは非ローリング・メカニズムのいずれかを使用して更新できます。

ローリング・モードでは、更新は一度に1つのVMに適用され、そのVM上のデータベースは、次に進む前に再起動されます。非ローリング・モードでは、クラスタ内のすべてのデータベースが停止され、更新がすべてのノードに適用され、データベースがオンラインに戻ります。後続のステップ(特に両方のシナリオのステップ3)で必要となるため、ユーザーは使用中のdbaastoolsバージョンを認識する必要があります。

dbaastoolsのバージョンは、次のコマンドを実行して確認できます。

/var/opt/oracle/dbaascli/dbaascli admin showLatestStackVersion

ローリング・アップデート

各ゲストVMで、次のようにPKCS#11ドライバ更新を適用します(一度に1つのVM)。

  1. Google Cloud KMSを使用しているデータベース・インスタンスを停止します。

    Google Cloud KMS for master encryption keys (MEK)を使用するすべてのデータベースは、ドライバを更新する前に停止する必要があります。次のものを使用します。

    srvctl stop instance -d <db_unique_name> -i <instance_name> [-o <stop_option>]
    • -d <db_unique_name>: データベースの一意の名前(データベースのDB_UNIQUE_NAMEと同じ)。
    • -i <instance_name>: 停止するインスタンスの名前(たとえば、orcl1)。

    その他のオプションの詳細は、SRVCTLコマンドライン・ヘルプまたはリファレンス・マニュアルを参照してください。

  2. データベースがシャットダウンされていることを確認します。

    続行する前に、Google Cloud KMSを使用しているすべてのデータベース・インスタンスが停止していることを確認してください。

  3. RPMをアップグレードします。

    rootユーザーとして、次のコマンドを実行します(dbaastools 25.4.1以降の場合)。

    /var/opt/oracle/dbaascli/dbaascli admin updateMCKMS --keystoreProvider GOOGLE --nodeList <node> --databasesStopped
    

    このコマンドは、指定されたノードに最新のRPMをダウンロードしてインストールします。

  4. ドライバのインストールを確認します。

    rootユーザーとして次のコマンドを実行します。

    /bin/rpm -qa | grep -i pkcs-multicloud-driver
  5. データベースインスタンスを起動します。

    ドライバの更新後、次を使用してデータベース・インスタンスを再起動します。

    <oracle_home>/bin/srvctl start instance -node "<node>"

非ローリング更新

非ローリング・モードでは、PKCS#11ドライバ更新を適用する前に、クラスタ上のすべてのデータベースが停止されます。

  1. Google Cloud KMSを使用してデータベースを停止します。

    ドライバを更新する前に、マスター暗号化キー(MEK)にGoogle Cloud KMSを使用するすべてのデータベースを停止します。

    dbaascli database stop [--dbname <value>]
  2. データベースがシャットダウンされていることを確認します。

    続行する前に、Google Cloud KMSを使用しているすべてのデータベースが停止していることを確認してください。

  3. RPMを更新します。

    rootユーザーとして、次のコマンドを実行します(dbaastools 25.4.1以降の場合)。

    /var/opt/oracle/dbaascli/dbaascli admin updateMCKMS --keystoreProvider GOOGLE --databasesStopped

    このコマンドは、最新のRPMをダウンロードしてインストールします。

  4. ドライバのインストールを確認します。

    rootユーザーとして次のコマンドを実行します。

    /bin/rpm -qa | grep -i pkcs-multicloud-driver
  5. データベースの再起動

    ドライバが更新されたら、データベースを再起動します。

    dbaascli database start [--dbname <value>]