バニティURLを使用したOracle APEX、Oracle REST Data Servicesおよび組込みデータベース・ツールへのアクセス

デフォルトでは、Autonomous AI Database上のOracle APEXアプリケーション、RESTエンドポイントおよび組込みデータベース・ツールへのアクセスは、oraclecloudapps.comドメイン名を介して行われます。オプションで、組織またはプロジェクトにより関連性の高いバニティURL (カスタム・ドメイン)を構成できます。

そのためには、まず目的のドメイン名を取得し、選択したベンダーからSSL証明書を照合する必要があります。

Elastic Poolメンバー・データベースでのバニティURLの有効化

登録済のドメイン名および証明書が使用可能な場合、エラスティック・プール内のデータベースでは、APIゲートウェイを使用して、Autonomous AI DatabaseでバニティURLを簡単に有効にし、Autonomous AI DatabaseインスタンスのバニティURLカスタム・ドメインを構成できます。

ノート

  • バニティURLは、HTTPエンドポイントを使用するOCI APIゲートウェイでサポートされますが、MongoDBやSQLNETなどのTCPベースのエンドポイントではサポートされません。
  • Oracle Machine Language (OML)ツールはバニティURLをサポートしていません。

APIゲートウェイをDNSに登録する

この章では、バニティURLの構成におけるOracle Cloud Infrastructure (OCI)ドメイン・ネーム・システム(DNS)の設定の重要性について説明します。

バニティURLを有効にするには、DNSがユーザーフレンドリなカスタム・ドメイン名(api.mycompany.comなど)を実際のOCI APIゲートウェイ・エンドポイントのIPアドレスに変換するシステムであるため、Oracle Cloud Infrastructure (OCI) APIゲートウェイを指すようにDNSを構成する必要があります。DNSを構成しないと、カスタム・ドメインはOCI API GatewayのパブリックIPに解決されず、ユーザーはバニティURLを使用してOCI APIにアクセスできなくなります。

DNSセットアップには、次の3つの主要コンポーネントが含まれます。
  • ドメインの所有権および検証:

    バニティ・ドメインには所有権の証明が必要です。ドメインは、認可されたドメイン・レジストラに登録する必要があり、そのDNSレコードを管理するには管理制御が必要です。これにより、正当な所有者のみがカスタム・ドメイン(examplehost.comなど)をOCI APIゲートウェイ・エンドポイントにマップできるようになります。

  • HTTPSのTLS証明書:

    OCI APIゲートウェイはTransport Layer Security (TLS)で保護されているため、TLS証明書は必須です。Oracleのデフォルト(自動生成)ドメインを使用する場合、Oracleは証明書を自動的にプロビジョニングおよび保守します。ただし、カスタム・ドメインを使用する場合は、信頼できる認証局(CA)から取得した独自のTLS証明書を指定する必要があります。この証明書は、バニティ・ドメインをゲートウェイにバインドし、暗号化された通信を可能にし、クライアントの信頼を確保します。

    次の2つの方法があります。
    • OCI証明書サービス(CAから自己発行またはインポート)を介してOracle管理証明書を使用します。

    • 独自のカスタム証明書を、秘密キーおよび中間証明書とともにアップロードします。

  • DNSレコード構成:

    OCI APIゲートウェイおよびTLS証明書を設定したら、カスタム・ドメインがゲートウェイのパブリック・エンドポイントに解決されるようにDNSを構成する必要があります。

    このプロセスがない場合、カスタム・ドメインへのインバウンド・リクエストはゲートウェイに到達しません。

DNSは、バニティ・ドメインと基礎となるOCI API Gatewayインフラストラクチャの間のブリッジのようなものです。バニティURLにアクセス可能で機能するには、DNSレコードをAPIゲートウェイに指定する必要があります。

OCI APIゲートウェイのDNSを構成するステップ

OCI APIゲートウェイを指すようにDNSを構成するには、ドメインの所有権、TLS証明書およびDNSレコード構成を含む次のステップを実行する必要があります。

前提条件:
  • 構成を開始する前に、登録済ドメイン名(OCI DNSで管理されているか、外部DNSプロバイダで管理されているか)を所有する必要があります。
  • カスタム・ドメインのTLS証明書は、サード・パーティの認証局(CA)またはOCI証明書サービスを介して調達する必要があります。
  1. カスタムTLS認証の作成およびアップロード:
    • 完全修飾ドメイン名(FQDN)を含む、ドメインの証明書署名リクエスト(CSR)を生成します。

    • 証明書を発行するには、OCI証明書サービスまたはサード・パーティのCAを使用します。
    • この証明書および秘密キーを証明書リソースとしてOCIにインポートします。

    詳細は、「カスタム・ドメインおよびTLS証明書の設定」を参照してください。

  2. OCIでのAPIゲートウェイの作成:
    • OCIコンソールで「開発者サービス」→「APIゲートウェイ」に移動します。

    • TLS証明書を使用して、VCNの適切なパブリック・サブネットにゲートウェイを作成します。

    作成後、OCIによって自動的に生成されるAPI Gateway OCID IDを書き留めます。

    詳細は、「APIゲートウェイの作成」を参照してください。

  3. ドメインのDNSレコードの構成:
    • DNS管理システム(OCI DNSサービス、またはRoute 53などの外部DNSプロバイダ)に移動して、OCI API GatewayパブリックIPアドレスへのカスタムDNSマッピングを構成します。

    これにより、カスタム・ドメインの受信トラフィックがOCI APIゲートウェイのパブリックIPアドレスに確実に解決されます。

    DNS伝播後、バニティURL(https://examplehost.com)にアクセスして、OCI APIゲートウェイのパブリックIPアドレスにルーティングされることを確認できます。

Oracle Cloud Infrastructureサービス・コンソールからElastic Poolユーザー用にAutonomous AI DatabaseのバニティURLを構成することもできます。

Oracle Cloud Infrastructureリソースにアクセスするためのリソース・プリンシパルの有効化

Autonomous AI Databaseでリソース・プリンシパルを有効にするには、次のステップを実行します。これにより、データベースはOCIリソースを安全に認証およびアクセスできます。

前提条件として、動的グループおよびポリシーを構成します。詳細は、Autonomous AI Databaseでリソース・プリンシパルを使用するための前提条件の実行を参照してください。

Autonomous AI Databaseでリソース・プリンシパルを有効にするには:

  1. ADMINユーザーとして、Autonomous AI Databaseインスタンスのリソース・プリンシパルを有効にします。

    たとえば:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL();
    
    PL/SQL procedure successfully completed. 
    
    詳細は、ENABLE_RESOURCE_PRINCIPALプロシージャを参照してください。

    これにより、資格証明OCI$RESOURCE_PRINCIPALが作成されます。

  2. (オプション)このステップが必要なのは、ADMINユーザー以外のデータベース・ユーザーにリソース・プリンシパル資格証明へのアクセス権を付与する場合のみです。ADMINユーザーとして、指定したデータベース・ユーザーのリソース・プリンシパルを有効にします。

    たとえば:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'adb_user');
    
    PL/SQL procedure successfully completed. 
    

    これは、ユーザーadb_userに資格証明OCI$RESOURCE_PRINCIPALへのアクセスを付与します。

    指定したユーザーに、他のユーザーのリソース・プリンシパルを有効にする権限を与える場合は、grant_optionパラメータをTRUEに設定します。

    たとえば:

    BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(
         username => 'adb_user',
         grant_option => TRUE);
    END;
    /

    このコマンドを実行すると、adb_userは別のユーザーのリソース・プリンシパルを有効にできます。たとえば、adb_userとして接続する場合は、次のコマンドを実行できます。

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'adb_user2');
    
    詳細は、ENABLE_RESOURCE_PRINCIPALプロシージャを参照してください。
  3. リソース・プリンシパル資格証明が有効になっていることを確認します。

    たとえば、ADMINユーザーとしてビューDBA_CREDENTIALSを問い合せます。

    SELECT owner, credential_name FROM dba_credentials 
            WHERE credential_name = 'OCI$RESOURCE_PRINCIPAL' AND owner = 'ADMIN'; 
    
    OWNER  CREDENTIAL_NAME
    -----  ----------------------
    ADMIN  OCI$RESOURCE_PRINCIPAL 
    

    たとえば、ADMIN以外のユーザーとして、ビューALL_TAB_PRIVSを問い合せます。

    SELECT grantee, table_name, grantor FROM ALL_TAB_PRIVS
       WHERE grantee = 'ADB_USER' 
            AND table_name = 'OCI$RESOURCE_PRINCIPAL' 
            AND table_schema = 'ADMIN';
    
    GRANTEE   TABLE_NAME                GRANTOR
    --------- -----------------------   -------------
    ADB_USER  OCI$RESOURCE_PRINCIPAL    ADMIN

自律型AIデータベース・インスタンスでリソース・プリンシパルを有効にすることは、1回かぎりの操作です。DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPALを実行してリソース・プリンシパルを無効にしないかぎり、リソース・プリンシパルを再度有効にする必要はありません。

バニティURLを設定するIAMポリシー

エラスティック・プール・メンバー・データベースでAutonomous AI DatabaseインスタンスのバニティURLを構成する前に、OCI APIゲートウェイ・デプロイメントを管理する権限をデータベースに付与する必要があります

テナンシ管理者としてOracle Cloud Infrastructure (OCI)にアクセス・ポリシーを作成するには、次のステップに従います:
  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「ポリシー」をクリックします。
  2. 「ポリシーの作成」をクリックします。
  3. 「ポリシーの作成」ウィンドウで、名前(たとえば、IntegrationGroupPolicy)および説明を入力します。
  4. 「ポリシー・ビルダー」で、「手動エディタの表示」を選択し、必要なポリシー・ステートメントを入力します。
    グループがAPIゲートウェイ・デプロイメントを管理できるようにする一般的な構文は次のとおりです:
    • 動的グループID <dynamic group ocid>によるコンパートメント<compartment name>のAPIデプロイメントの管理を許可します

    • 動的グループID <dynamic group ocid>にコンパートメント<compartment name>でのAPIゲートウェイの使用を許可します

    :
    • 動的グループID ocid1.dynamicgroup.oc1..aaaaaaaaaaaaaaaaaa1111ex3aztuwucyjiqoclhpuflmlncmkwtqsjwlmmqによるコンパートメントadwtoolsqaのAPIデプロイメントの管理を許可します
    • 動的グループID ocid1.dynamicgroup.oc1..aaaaaaaaaaaaaaaaaa1111ex3aztuwucyjiqoclhpuflmlncmkwtqsjwlmmqがコンパートメントadwtoolsqaでAPIゲートウェイを使用することを許可します

    このポリシー・ステートメントにより、管理ドメインのocid1.dynamicgroup.oc1..aaaaaaaaaaaaaaaaaa1111ex3aztuwucyjiqoclhpuflmlncmkwtqsjwlmmqグループは、コンパートメントadwtoolsqaのOCI APIゲートウェイ・デプロイメントを管理および使用できるようになります。

    ノート

    • ポリシー・ステートメントを定義する場合、(これらのステップで使用されているような)動詞または(通常はパワー・ユーザーで使用される)権限を指定できます。
    • ポリシーの詳細は、次を参照してください:

      Oracle Cloud Infrastructureドキュメントのポリシーの仕組みおよびポリシー・リファレンス
  5. ポリシーを確認して作成します。

ポリシー・ステートメントが検証され、構文エラーが表示されます。

Elastic Poolメンバー・データベースでのバニティURLの有効化

Oracle Cloud Infrastructureサービス・コンソールを使用してAutonomous AI DatabaseインスタンスのバニティURLを構成するには、次の手順に従います。

  1. 「Autonomous AI Databaseの詳細」ページで、「他のアクション」ドロップダウン・リストから「バニティURLの有効化」を選択します。
  2. 「データベース・ツールのバニティURLの構成」ダイアログで、「バニティURLの使用」を選択します。
  3. OCI APIゲートウェイのコンパートメントを選択します。
  4. アクセス権のあるOCI APIゲートウェイ名のリストからAPIゲートウェイを選択します。
  5. URLに表示され、DNSに登録される完全修飾カスタム・ドメイン名を指定します。

    たとえば、examplehost.comと入力します。



    「構成」をクリックします。

    構成が成功すると、「Autonomous AI Databaseの詳細」ページの「ツール構成」タブに、「バニティURL」という名前の新しいフィールドと、「Oracle APEX」および「データベース・アクション」の下に追加の「バニティURLフィールド」が表示されます。



    データベース・ネットワーク・アクセスに基づいて、カスタム・ドメイン名またはパブリック/プライベート・アクセスURLを使用して、エンド・ユーザー・アプリケーションおよびOracle APEXやデータベース・アクションなどの開発者ツールにアクセスできます。

リバース・プロキシを使用した非エラスティック・プール・データベースでのバニティURLの有効化

エラスティック・プールに含まれていないデータベースの場合、Autonomous AI Databaseをバックエンドとして使用して、Oracle Cloud Infrastructure Load BalancerをVirtual Cloud Network (VCN)に手動でデプロイできます。

自律型AIデータベース・インスタンスは、同じVCN内のプライベート・エンドポイントで構成されている必要があります。詳細は、プライベート・エンドポイントを使用したネットワーク・アクセスの設定を参照してください。