バニティ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)の設定の重要性について説明します。

DNSはユーザーフレンドリなカスタム・ドメイン名(api.mycompany.comなど)を実際のOCI APIゲートウェイ・エンドポイントのIPアドレスに変換するシステムであるため、バニティURLを有効にするためにOracle Cloud Infrastructure (OCI) APIゲートウェイを指すようにDNSを構成する必要があります。DNSを構成しないと、カスタム・ドメインはOCI APIゲートウェイのパブリック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 DNSで管理されているか、外部DNSプロバイダで管理されているか)を所有する必要があります。

  • カスタム・ドメインのTLS証明書は、サード・パーティの認証局(CA)またはOCI証明書サービスを介して調達する必要があります。

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

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

  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();

    詳細は、ENABLE_RESOURCE_PRINCIPALプロシージャを参照してください。

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

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

    たとえば:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'adb_user');

    これは、ユーザー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

Autonomous AI Databaseインスタンスでのリソース・プリンシパルの有効化は、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 Details」ページの「More actions」ドロップダウン・リストから、「Enable vanity URL」を選択します。

  2. 「データベース・ツールのバニティURLの構成」ダイアログで、「バニティURLの使用」を選択します。

  3. OCI APIゲートウェイのコンパートメントを選択します。

  4. アクセス可能なOCI APIゲートウェイ名のリストからAPIゲートウェイを選択します。

  5. URLに表示され、DNSに登録される完全修飾カスタム・ドメイン名を指定します。

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

    adb_configure_vanity_url.pngの説明が続きます

    図adb_configure_vanity_url.pngの説明

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

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

    adb-vanity-url-tool-configuration.pngの説明が続きます

    図adb-vanity-url-tool-configuration.pngの説明

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

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

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

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

エラスティック・プールの外部にあるデータベースのバニティURLを有効にする方法の詳細は、次の投稿を参照してください。