Oracle Database@AWS上のExadata Database ServiceのAWS Key Management Service統合

Oracle Database@AWS上のExadata Database Serviceは、AWS Key Management Service (KMS)との統合をサポートしています。この機能拡張により、ユーザーは、AWSの顧客管理キーを使用してTransparent Data Encryption (TDE)マスター暗号化キー(MEK)を管理できます。

Oracle Database@AWS上のExadata Database Serviceの場合、TDE MEKは、ファイルベースのOracle Wallet、Oracle Cloud Infrastructure (OCI) Vault、Oracle Key Vault (OKV)またはAWS KMSに格納でき、組織固有のセキュリティ・ポリシーに合せたオプションを提供します。AWS KMSとの統合により、Exadata VMクラスタ上のアプリケーション、AWSサービスおよびデータベースは、一元化された単一のキー管理ソリューションを活用できます。

前提条件

データベースの鍵管理ソリューションとしてAWS KMSを使用する前に、次の手順を実行する必要があります。

OCIアイデンティティ・ドメインは、Oracle Database@AWSのオンボーディング・プロセス中に自動的に構成されるため、アクションは必要ありません。AWS KMS統合(2025年11月18日)の一般提供前にリンクされたアカウントについてのみ、次のステップを実行します。

OCIアイデンティティ・ドメインを構成して、Exadata VMクラスタのAWS統合を有効にします。これにより、AWS Identity and Access Management (IAM)サービス・ロールをAWS統合に関連付けることができます。

  1. AWSコンソールで、「Oracle Database@AWS」を選択し、「設定」を選択します。
  2. 「構成」ボタンを選択して、OCIアイデンティティ・ドメインを構成します。
  3. 完了したら、「ステータス」「OCIアイデンティティ・ドメインID」および「OCIアイデンティティ・ドメインURL」の情報を「設定」ページで確認できます。

  1. 既存のODBネットワークがない場合は、ODBネットワークのステップバイステップの手順に従ってプロビジョニングできます。既存のODBネットワークがある場合は、「変更」ボタンを選択し、「ODBネットワークの変更」に従ってステップバイステップの手順を変更できます。
  2. 「サービス統合の構成」セクションから、
    1. 「セキュリティ・トークン・サービス(STS)」オプションを選択して、データベースからのAWS KMSおよびAWS STSアクセスのネットワークを設定します。
    2. 「AWS KMS」チェック・ボックスを選択して、AWS KMSが認証ポリシーでKMSキーを使用できるようにします。

Allow any-user to read oracle-db-aws-keys in compartment id <your-compartment-OCID> 
where all { request.principal.type = 'cloudvmcluster'}

このポリシーにより、Oracle管理クラウドVMクラスタはコンパートメント内のoracle-db-aws-keysリソースを読み取ることができます。外部キー管理との統合またはクラウド間操作の実行に必要なAWSキー・メタデータにアクセスするために、VMクラスタ(cloudvmclusterタイプのプリンシパル)に必要な権限を付与します。このポリシーがない場合、VMクラスタは構成を完了するために必要なキーを取得できません。

Exadata VMクラスタの作成は、AWS ConsoleおよびAWS CLIを介してのみ使用できます。詳細は、Exadata VMクラスタを参照してください。

クラスタごとにスタックを作成します。CloudFormationスタックを作成するには、次のステップを使用します。これは、Exadata VMクラスタごとに実行する必要があります。

CloudFormationスタックがOIDC (OpenID Connect)プロバイダを作成すると、外部アイデンティティ・ソース(OCIなど)がAWSに対して認証できるように、信頼関係が確立されます。関連付けられたIAMロールは、信頼できるアイデンティティが何を実行できるかを定義します。

  1. リストから既存のExadata VMクラスタを選択して、AWS管理コンソールでその詳細ページを開きます。
    ノート

    既存のExadata VMクラスタがない場合は、Exadata VMクラスタのステップバイステップの手順に従ってプロビジョニングできます。

  2. 「IAMサービス・ロール」タブを選択し、CloudFormationリンクをクリックします。
  3. クイック作成スタック・ページから、事前に入力された情報を確認します。
    1. 「パラメータ」セクションで、パラメータはテンプレートで定義され、スタックを作成または更新するときにカスタム値を入力できます。
      1. 事前に入力されたOCIIdentityDomainUrl情報を確認します。
      2. OIDCProviderArnフィールドはオプションです。CloudFormationスタックを初めて作成すると、OIDCプロバイダおよび関連するIAMロールが作成されます。スタックを初めて実行する場合、OIDCProviderArnフィールドに値を指定する必要はありません。
      3. 追加の実行時間については、既存のOIDCプロバイダのARNを指定し、OIDCProviderArnフィールドに指定する必要があります。OIDCProviderArn情報を取得するには、次のステップを実行します。
        1. AWSコンソールで、「IAM」に移動し、「アイデンティティ・プロバイダ」を選択します。
        2. 「アイデンティティ・プロバイダ」リストから、「タイプ」「OpenID Connect」を選択するプロバイダをフィルタできます。
        3. CloudFormationスタックの初期作成時に作成された「プロバイダ」リンクを選択します。
        4. 「サマリー」ページで、ARN情報をコピーします。
        5. ARN情報をOIDCProviderArnフィールドに貼り付けます。
    2. 「権限」セクションから、ドロップダウン・リストからIAMロール名を選択し、スタックで実行されるすべての操作に使用するCloudFormationのIAMロールを選択します。
    3. 「スタックの作成」ボタンを選択して変更を適用します。
  4. CloudFormationスタック・デプロイメントが完了したら、スタックの「リソース」セクションに移動し、作成されたIdPおよびIAMロール・リソースを確認します。将来の使用のためにIAMロールARNをコピーします。

以前に作成したIAMロールをExadata VMクラスタにアタッチして、AWSリソースへのアクセスを可能にするアイデンティティ・コネクタを割り当てる必要があります。

  1. AWSコンソールから、「Oracle Database@AWS」を選択します。
  2. 左側のメニューから、「Exadata VMクラスタ」を選択し、リストからExadata VMクラスタを選択します。
  3. 「IAMロール」タブを選択し、「関連付け」ボタンを選択します。
    1. AWS統合フィールドは読取り専用です。
    2. VMクラスタに関連付けるIAMロールのAmazonリソース名(ARN)を「ロールARN」フィールドに入力します。ARN情報は、以前に作成したロールの「サマリー」セクションから取得できます。
    3. ロールを添付するには、「関連付け」ボタンを選択します。
      ノート

      IAMロールをVMクラスタに関連付けると、アイデンティティ・コネクタがExadata VMクラスタにアタッチされます。

前提条件セクションを完了したら、次のアクションを続行します。

  1. AWS Consoleから、AWS KMSで顧客管理キーを作成します。
  2. OCIコンソールから、ステップ1で作成したAWS KMSキーをExadata VMクラスタおよびデータベースで利用できるようにします。

  1. AWSコンソールで、「キー管理サービス(KMS)」を選択します。
  2. 左側のメニューから、「顧客管理キー」を選択し、「キーの作成」ボタンを選択します。
  3. 「キーの構成」セクションで、次の情報を入力します。
    1. 「キー・タイプ」として「対称」オプションを選択します。
    2. 「暗号化および復号化」オプションを「キーの使用方法」として選択します。
    3. 「詳細オプション」セクションを展開します。AWS KMSAWS CloudHSMの両方がサポートされています。
      1. KMS標準キー・ストアを使用する場合は、「KMS - 推奨」オプションを「キー・マテリアルの起点」として選択し、「単一リージョン・キー」オプションまたは「複数リージョン・キー」オプションを「リージョン」セクションから選択します。
        ノート

        クロスリージョンData Guardおよび別のリージョンへのデータベースのリストアは、キー管理にAWS顧客管理キーを使用するデータベースでは現在サポートされていません。

      2. AWS CloudHSM を使用する場合は、AWS CloudHSMキー・ストア・オプションをキー・マテリアルの起点として選択します。
    4. 「次」ボタンを選択して、作成プロセスを続行します。
  4. 「ラベルの追加」セクションで、次の情報を入力します。
    1. 「別名」フィールドに、わかりやすい表示名を入力します。256文字以内にする必要があります。英数字および'_-/'文字を使用します。
      ノート

      • 別名をaws/で始めることはできません。aws/接頭辞は、AWSによって予約され、アカウント内のAWS管理対象キーを表します。
      • 別名は、KMSキーを識別するために使用できる表示名です。保護する予定のデータ・タイプまたはKMSキーで使用する予定のアプリケーションを示す別名を選択することをお薦めします
      • AWSコンソールでKMSキーを作成する場合は、別名が必要です。
    2. 「説明」フィールドはオプションです。
    3. 「タグ」セクションはオプションです。タグを使用して、KMSキーを分類および識別し、AWSコストを追跡できます。
    4. 「次」ボタンを選択して作成プロセスを続行するか、「前」ボタンを選択して前のページに戻ります。
  5. 「キー管理権限の定義」セクションで、次のサブステップを完了します。
    1. 前に作成したロールを検索し、チェック・ボックスを選択します。KMSキーを管理できるIAMユーザーおよびロールを選択します。
      ノート

      このキーポリシーは、このKMSキーを完全に制御するAWSアカウントを提供します。これにより、アカウント管理者はIAMポリシーを使用して、KMSキーを管理する他のプリンシパル権限を付与できます。

    2. 「キーの削除」セクションから、「キー管理者にこのキーの削除を許可」チェック・ボックスがデフォルトで選択されています。選択したIAMユーザーおよびロールでKMSキーが削除されないようにするには、チェック・ボックスの選択を解除します。
    3. 「次」ボタンを選択して作成プロセスを続行するか、「前」ボタンを選択して前のページに戻ります。
  6. 「キー使用権限の定義」セクションで、次のサブステップを完了します。
    1. 以前に作成したロールを検索し、チェック・ボックスを選択します。
    2. 「次」ボタンを選択して作成プロセスを続行するか、「前」ボタンを選択して前のページに戻ります。
  7. 「キー・ポリシーの編集」セクションで、次のサブステップを完了します。
    1. 「プレビュー」セクションから、キー・ポリシーを確認できます。変更する場合は、「編集」タブを選択します。
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "KMSKeyMetadata",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "<arn>"
                  },
                  "Action": [
                      "kms:DescribeKey"
                  ],
                  "Resource": "*"
              },
              {
                  "Sid": "KeyUsage",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "<arn>"
                  },
                  "Action": [
                      "kms:Encrypt",
                      "kms:Decrypt"
                  ],
                  "Resource": "*"
              }
          ]
      }
    2. 「次」ボタンを選択して作成プロセスを続行するか、「前」ボタンを選択して前のページに戻ります。
  8. 「レビュー」セクションで、情報を確認してから「終了」ボタンを選択します。

詳細は、対称暗号化KMSキーの作成を参照してください。

Exadata VMクラスタでAWS KMSを有効にするには、まずOCIにAWS KMSキーを登録する必要があります。

  1. OCIコンソールから、「Oracle AI Database」を選択し、「データベース・マルチクラウド統合」を選択します。
  2. 左側のメニューから、「AWS統合」を選択し、「AWSキー」を選択します。
  3. 「AWSキーの登録」ボタンを選択し、次のサブステップを完了します。
    1. ドロップダウン・リストから、Exadata VMクラスタが存在するコンパートメントを選択します。
    2. 「AWSキー」セクションで、ドロップダウン・リストからアイデンティティ・コネクタを選択します。
      ノート

      コネクタに関連付けられているロールに、キーに対するDescribeKey権限があることを確認します。検出を正常に実行するには、この権限が必要です。

    3. 「キーARN」フィールドはオプションです。
    4. 「検出」ボタンをクリックします。
  4. キーが検出されたら、「登録」ボタンを選択して、OCIにキーを登録します。

コンソールを使用したOracle Database@AWSでのExadata Database ServiceのAWS KMS統合の管理

Oracle Database@AWSでExadata Database ServiceのAWS KMS統合を管理する方法について学習します。

データベースのAWSキー管理を有効にすると、Exadata VMクラスタでの使用が認可され、OCIに登録されているAWSキーのみを使用できます。

  1. OCIコンソールから、「Oracle AI Database」を選択し、「Oracle Exadata Database Service on Dedicated Infrastructure」を選択します。
  2. 左側のメニューから、「Exadata VMクラスタ」を選択し、Exadata VMクラスタを選択します。
  3. 「VMクラスタ情報」タブを選択し、「AWS顧客管理暗号化キー」の横にある「有効化」ボタンを選択します。
ノート

Exadata VMクラスタのAWSキー管理を有効にすると、「無効化」ボタンを使用して無効にできます。この機能を無効にすると、暗号化および復号化操作にAWS Key Management Serviceを使用するデータベースの可用性に影響します。Exadata VMクラスタ・レベルで無効にする前に、AWSキー管理を現在使用しているデータベースがないことを確認します。

このトピックでは、データベースを作成し、キー管理ソリューションとしてAWS KMSを使用する手順についてのみ説明します。

汎用データベース作成手順については、既存のVMクラスタにデータベースを作成するにはを参照してください。

前提条件

「前提条件」を参照してください。

ステップ

AWS KMSキー管理がVMクラスタ・レベルで有効になっている場合、Oracle WalletAWSキー管理の2つのキー管理オプションがあります。

  1. 「暗号化」セクションで、「AWSキー管理」を選択します。
  2. コンパートメントで使用可能な暗号化キーを選択します。
    ノート

    • 登録されたキーのみがリストされます。
    • 目的のキーが表示されない場合は、まだ登録されていない可能性があります。「AWSキーの登録」をクリックして検出し、登録します。

      詳細な手順は、「AWS KMSキーの登録」を参照してください。

    • ドロップダウン・リストからキー別名を選択できます。使用可能なキー別名がない場合、ドロップダウン・リストにキーIDが表示されます。

Exadata VMクラスタ内の既存のデータベースのキー管理をOracle WalletからAWS KMSに変更する場合は、次のステップを実行します。

  1. Exadata VMクラスタから、「データベース」タブに移動し、使用しているデータベースを選択します。
  2. 「暗号化」セクションで、「キー管理」「Oracle Wallet」に設定されていることを確認し、「変更」リンクを選択します。
  3. 「キー管理の変更」ページで、次の情報を入力します。
    1. ドロップダウン・リストから、「キー管理」として「AWSキー管理」を選択します。
    2. 使用しているキー・コンパートメントを選択し、ドロップダウン・リストから目的のキーを選択します。
    3. 「変更の保存」ボタンを選択します。

コンテナ・データベース(CDB)のAWS KMSキーをローテーションするには、この手順を使用します。

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

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

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

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

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

    AWS KMSキーをローテーションすると、同じキーに対して新しい暗号化コンテキストが生成されます。

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

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

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

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

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

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

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

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

    AWS KMSキーをローテーションすると、同じキーに対して新しい暗号化コンテキストが生成されます。

オプションで、次のステップを実行して、特定のCDBまたはPDBキーを無効にします。

  1. AWSコンソールに移動し、「キー管理サービス(KMS)」を選択します。
  2. 左側のメニューから、「顧客管理キー」を選択し、編集するキーの「キーID」を選択します。
  3. 「ポリシーの編集」ボタンを選択します。
  4. 次の問合せを実行して、キーのEncryptionContext MKIDを取得します。

    次のコマンドを使用して、操作を有効または無効にするための現在のマスター・キーID (MKID)を表示します。

    dbaascli tde getHSMKeys --dbname <DB-Name>

    次のSQL問合せを実行して、すべてのキー・バージョンをリストすることもできます。

    SELECT key_id, con_id, creation_time, key_use FROM v$encryption_keys;
  5. 取得したEncryptionContext MKIDを使用して、次のように拒否ポリシーを追加します。
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:us-east-1:867344470629:key/7139075d-a006-4302-92d5-48ecca31d48e",
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:MKID": "ORACLE.TDE.HSM.MK.06AE5EFB528D9D4F21BFEDA63C6C8738D9"
        }
      }
    }
  6. ポリシー更新を適用するには、「変更の保存」を選択します。

APIを使用したOracle Database@AWSでのExadata Database ServiceのAWS KMS統合の管理

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

次のリソースは、OCI SDK、CLIおよびTerraformを介してお客様に提供されます。これらのAPIは、Exadata上のOracle DatabaseをAWS KMSと統合したいお客様によって使用されます。

表5-14 OracleDbAwsIdentityConnector

API 説明
ListOracleDbAwsIdentityConnectors 指定されたフィルタに基づいて、すべてのAWSアイデンティティ・コネクタ・リソースをリストします。
GetOracleDbAwsIdentityConnector 特定のAWSアイデンティティ・コネクタ・リソースに関する詳細情報を取得します。
CreateOracleDbAwsIdentityConnector 指定されたExaDB-D VMクラスタの新しいAWSアイデンティティ・コネクタ・リソースを作成します。
UpdateOracleDbAwsIdentityConnector 既存のAWSアイデンティティ・コネクタ・リソースの構成詳細を更新します。
ChangeOracleDbAwsIdentityConnectorCompartment AWSアイデンティティ・コネクタ・リソースを別のコンパートメントに移動します。
DeleteOracleDbAwsIdentityConnector 指定されたAWSアイデンティティ・コネクタ・リソースを削除します。
RefreshOracleDbAwsIdentityConnector 指定されたAWSアイデンティティ・コネクタ・リソースの構成詳細をリフレッシュしました。

表5-15 OracleDbAwsKey

API 説明
ListOracleDbAwsKeys 指定されたフィルタに基づいて、すべてのAWSキー・リソースをリストします。
CreateOracleDbAwsKey 新しいAWSキー・リソースを作成します。
ChangeOracleDbAwsKeyCompartment AWSキー・リソースを別のコンパートメントに移動します。
GetOracleDbAwsKey 特定のAWSキー・リソースに関する詳細情報を取得します。
UpdateOracleDbAwsKey 既存のAWSキー・リソースの構成詳細を更新します。
DeleteOracleDbAwsKey 指定されたAWSキー・リソースを削除します。
RefreshOracleDbAwsKey AWSキー・リソースの構成詳細をリフレッシュします。