Autonomous Databaseインスタンスへの接続について

データベース・ユーザーの作成後、アプリケーションおよびツールはOracle Net Services (SQL*Netとも呼ばれる)を使用してAutonomous Databasesに接続します。Oracle Net Servicesによって、クライアント・アプリケーションからOracle Databaseサーバーへのネットワーク・セッションが可能になります。

ネットワーク・セッションが確立されると、Oracle Net Servicesは、クライアント・アプリケーションとデータベースの両方に対するデータ伝達手段として機能します。これは、クライアント・アプリケーションとデータベース間での接続の確立および維持と、それらの間でのメッセージ交換を担当します。

Oracle Net Servicesは、Autonomous Databaseインスタンスに接続するための次のような様々な接続タイプをサポートしています:

  • JDBC Thinドライバ: Javaアプリケーションの場合、JDBC ThinドライバはPure Javaドライバです。Oracle SQL Developerを含む多くのアプリケーションでは、JDBC Thinドライバ接続がサポートされています。

  • JDBC OCI: Java言語アプリケーションによって使用されます。JDBC OCIは、Oracle Call Interfaceの上にJavaアプリケーション用のレイヤーを追加します。Oracle SQLclコマンドライン・インタフェースはJDBC OCIを使用します。

  • Oracle Call Interface (OCI): これは、C言語で記述された多くのアプリケーションによって使用されます。Oracle Call Interfaceを使用する例として、Oracle SQL*Plus、SQL*Loader、Oracle Data PumpなどのOracleユーティリティがあります。

  • ODBCドライバ: Microsoft Windows上で実行されているアプリケーションによって使用され、Oracle Call Interface (OCI)上にレイヤー化されています。

サードパーティ製品およびカスタム・アプリケーションは、これらの接続タイプを使用できます。

Autonomous Databaseへの接続の保護

Autonomous Databaseへの接続は、パブリック・インターネットを介して、オプションでアクセス制御ルール(ACL)を定義するか、テナンシ内のVirtual Cloud Network (VCN)内のプライベート・エンドポイントを使用して行われます。

プライベート・エンドポイント構成を指定すると、指定した仮想クラウド・ネットワークからのトラフィックのみが許可され、すべてのパブリックIPまたはVCNからのデータベースへのアクセスがブロックされます。プライベート・エンドポイントを構成すると、データベースとの間のすべてのトラフィックをパブリック・インターネットから削除できます。プライベート・エンドポイントでは、パブリック・アクセスが「パブリック・アクセスの許可」で有効になっている場合、インスタンスにプライベート・エンドポイントとパブリック・エンドポイントの両方があります:

  • プライベート・ホスト名、エンドポイントURLおよびプライベートIPアドレスを使用すると、データベースが存在するVCNからデータベースに接続できます。

  • パブリック・ホスト名を使用すると、特定のパブリックIPアドレスから、または特定のVCN (サービス・ゲートウェイを使用してAutonomous Databaseにプライベート接続するように構成されている場合)からデータベースに接続できます。

多くのアプリケーションで複数の接続タイプがサポートされていますが、Autonomous Databaseへの各接続タイプでは、標準のTLS 1.2を使用した証明書認証およびTCPS (セキュアTCP)データベース接続が使用されます。これにより、Autonomous Databaseへの不正アクセスがなくなり、クライアントとサーバー間の通信が完全に暗号化され、傍受または変更できなくなります。

Autonomous Databaseは、デフォルトで相互TLS (mTLS)接続をサポートしています(mTLSとの接続にはポート1522を使用します)。mTLSとTLSの両方の接続をサポートするようにAutonomous Databaseインスタンスを構成するオプションがあります(ポート1521を使用してTLSに接続)。

Autonomous DatabaseでTLS認証を使用するクライアントには、次のような利点があります:

  • TLS接続では、ウォレットをダウンロードする必要はありません。JDK8以上のJDBC Thinドライバを使用するTLS接続の場合、ウォレットは必要ありません。これには、SQL DeveloperやSQLコマンドライン(SQLcl)などのクライアントからの接続が含まれます。

  • TLSで接続しているクライアントでは、ウォレットのローテーションについて考慮する必要はありません。Walletローテーションは、mTLS接続のための通常の手順です。

  • TLS接続は高速です(接続レイテンシが少なくなります)。TLS認証では、mTLSと比較して接続レイテンシを短縮できます。

  • TLS接続とmTLS接続は、相互に排他的ではありません。相互TLS (mTLS)認証はデフォルトで有効化されており、常に使用可能です。TLS認証を有効にすると、mTLS認証またはTLS認証のいずれかを使用できます。

  • TLS認証を使用しても、クライアントとAutonomous Database間の完全に暗号化されたエンドツーエンド通信が損なわれることはありません。

トピック

相互TLS (mTLS)認証について

相互Transport Layer Security (mTLS)を使用すると、クライアントは、標準のTLS 1.2を信頼できるクライアント認証局(CA)証明書とともに使用して、TCPS (セキュアTCP)データベース接続を介して接続します。相互認証では、クライアント・アプリケーションとAutonomous Databaseの両方が相互に認証します。Autonomous Databaseでは、デフォルトでmTLS認証が使用されます(mTLSに接続するにはポート1522を使用します)。

相互TLS認証では、クライアントがAutonomous Databaseインスタンスに接続するために信頼できるクライアントCA証明書をダウンロードまたは取得する必要があります。その後、Autonomous Databaseは証明書を使用してクライアントを認証します。これにより、セキュリティが向上し、Autonomous Databaseインスタンスと通信できるクライアントが指定されます。

相互TLSによる証明書認証では、クライアント(アプリケーションが実行されている)とサーバー(Autonomous Database上のデータベース・サービスが実行されている)の両方で、ウォレットに格納された暗号化キーを使用します。接続するには、クライアントのキーがサーバーのキーと一致している必要があります。ウォレットには、Autonomous Databaseインスタンスに接続するために必要なキーおよびその他の情報を含むファイルのコレクションが格納されています。クライアントとサーバー間のすべての通信は、暗号化されます。

Autonomous Databaseインスタンスへの接続を保護するために、サービス管理者は、Autonomous Databaseからクライアント資格証明(ウォレット・ファイル)をダウンロードします。ユーザーがAutonomous Databaseサービス管理者ではない場合は、管理者がユーザーにクライアント資格証明を提供します。詳細は、クライアント資格証明(ウォレット)のダウンロードを参照してください。

次の図は、相互TLS接続を使用したパブリック・インターネットを介したOracle Autonomous Databaseへのクライアント・セキュア接続を示しています。プライベート・エンドポイントを使用するようにデータベースを構成する場合、パブリック・インターネットは使用されず、接続ではテナンシ内のVirtual Cloud Network (VCN)内のプライベート・エンドポイントが使用されます。

autonomous-database.epsの説明が続きます

TLS認証について

Transport Layer Security (TLS)を使用すると、クライアントは、標準のTLS 1.2を使用してTCPS (セキュアTCP)データベース接続を介して接続します。クライアントは、信頼できる認証局(CA)のリストを使用して、サーバーのCAルート証明書を検証します。発行元CAが信頼されている場合、クライアントは証明書が本物であることを確認します。これにより、クライアントおよびAutonomous Databaseは、メッセージを交換する前に暗号化された接続を確立できます(ポート1521を使用してTLSに接続)。

Oracle SQL DeveloperやOracle SQLclなどのJDBC Thinドライバ・クライアントを使用してTLS認証で接続する場合、Autonomous Databaseインスタンスへの接続を保護するためにウォレットをダウンロードする必要はありません。TLS認証によって、クライアントはAutonomous Databaseサービスのアイデンティティを検証してセキュアな通信を提供できます。

クライアントのタイプに応じて、TLS接続では、Autonomous Databaseに対して次のサポートがあります:

  • Oracle SQL DeveloperやOracle SQLclとの接続など、JDK8u162以上を使用するJDBC Thinドライバとの接続の場合、ウォレットは必要ありません。

  • Oracle Call Interface (OCI)クライアントでは、次のクライアント・バージョンを使用している場合、ウォレットなしのTLS認証がサポートされます:

    • Oracle Instant Client/Oracle Database Client 19.13 - Linux x64上のみ

    • Oracle Instant Client/Oracle Database Client 19.14 (以上)および21.5 (以上) - Linux x64およびWindows上でのみ

  • クライアントがTLS認証を使用して管理対象のODP.NETまたはODP.NETコア・バージョン19.13または21.4 (以上)で接続している場合、クライアントはウォレットを提供せずに接続できます。

TLS接続には、ネットワーク・アクセスの前提条件があります。詳細は、TLS接続のためのネットワーク・アクセスの前提条件を参照してください。

ファイアウォールを介したAutonomous Databaseへの接続

ほとんどの組織は、ファイアウォールを使用してネットワークおよびネットワーク上のデバイスを保護します。ファイアウォールは、特定のポートの使用および特定のコンピュータ(具体的には、IPアドレスまたはホスト名)へのアクセスを許可するルールを使用して、受信および送信ネットワーク・トラフィックを制御します。ファイアウォールの重要な機能は、内部ネットワークとパブリック・インターネットを分離することです。

Autonomous Databaseがパブリック・インターネットを使用したアクセス用に構成されている場合は、Autonomous Databaseサーバーへのアクセスを許可するようにファイアウォールを構成する必要があります。

ファイアウォールの内側からAutonomous Databaseにアクセスするには、接続内のサーバーに接続するときに、ファイアウォールがデータベース接続で指定されたポートの使用を許可する必要があります。Autonomous Database mTLS接続にはポート1522を使用します(credentials ZIPファイルのtnsnames.oraファイルにある接続文字列でポート番号を確認できます)。たとえば、次のtnsnames.oraファイルのport値を確認します:

db2022adb_high = (description = ( 
                address=(protocol=tcps)
                (port=1522)
                (host=adb.example.oraclecloud.com))
                (connect_data=(service_name=example_high.adb.oraclecloud.com))
                (security=(ssl_server_dn_match=yes)))

ファイアウォールでは、ポート1522を使用した.oraclecloud.comドメイン内のサーバーへのアクセスを許可する必要があります。Autonomous Databaseに接続するには、組織のネットワーク構成に応じて、プロキシ・サーバーを使用してこのポートにアクセスするか、ネットワーク管理者に連絡してください。

Application Continuityの使用

アプリケーション・コンティニュイティは、停止後に影響を受けるデータベース・セッションの進行中の作業をリカバリすることで、エンド・ユーザーおよびアプリケーションから停止を隠します。アプリケーション・コンティニュイティは、このリカバリをアプリケーションの下で実行するため、アプリケーションには停止が実行のわずかな遅延のように見えます。

ノート

デフォルトでは、アプリケーション・コンティニュイティは無効です。

アプリケーション・コンティニュイティの詳細は、Autonomous Databaseでのアプリケーション・継続性の使用を参照してください。