- Oracle Cloud
- Exadata
- Oracle Database
Exadataユーザー必見!他クラウドサービスでのExascale活用のポイントを徹底解説
「Oracle Exadata ExascaleをOracle Cloud Infrastructure以外のクラウドサービスで使えないだろうか?」と考える方もいらっしゃるかと思います。本記事では他のクラウドサービスプロバイダーでのExascaleの使い方について検証結果をとおしてご紹介します。
|
|
従来のOracle Databaseのセキュア通信(TCPS)におけるTLS 1.2の限界やクライアントウォレットの煩雑な管理に課題を感じていませんか?
Oracle Database 23aiでは、TCPSプロトコルを用いたセキュア通信においてTLS 1.3がサポートされるようになりました。
従来のリリースではTCPSプロトコルでの通信にTLS 1.2が使用されましたが、23aiからは、より安全で強固な最新のバージョンであるTLS 1.3で暗号化することが可能です。
この記事では、Oracle Database 23aiから利用可能となったTLS 1.3での暗号化、ならびにクライアントウォレットを使用しない一方向TLSという2つの重要なアップデートについて、そのメリットから具体的な構成手順までを詳しくご紹介します。
※本記事は、2025年10月1日時点の情報に基づき執筆しています。
Index
TLS(Transport Layer Security)はネットワーク間のセキュア通信を提供する汎用的な暗号化規格です。
Oracle DatabaseではTCP(Transmission Control Protocol)レイヤのリスナーをTCPSプロトコルで構成することでTLSを有効にします。
21cまでのリリースでは、このTCPSプロトコルでの通信にTLS 1.2が使用されていましたが、23aiからは最新バージョンであるTLS 1.3がサポートされるようになりました(下位互換のためにTLS 1.2の利用は可能です)。
TLS 1.2から1.3へのバージョンアップに伴う利点として、次のような特徴が挙げられます。
|
鍵交換にDiffie-Hellman Ephemeral (DHE) アルゴリズムを使用しているため、サーバの秘密鍵が漏洩しても以前に送信されたメッセージを複合化されない。 |
|
|
TLS 1.2でサポートしている暗号スイートから古い暗号スイートを削除している。そのため、既知の脆弱性がない強力な暗号アルゴリズムをサポートする暗号スイートのみを含む。 |
|
|
TLSハンドシェイク中のラウンドトリップが少なく、TLS 1.2と比較してパフォーマンスが向上する。 |
|
参考:オラクルエンジニア通信(オラクル社のサイトに移動します)
Oracle Database 23aiでのTLS 1.3のサポートを発表
このように23aiのセキュア通信では、悪意のある攻撃に対する安全性がこれまで以上に向上しました。また、接続時のオーバーヘッドも改良されておりパフォーマンス面でも優位性が期待できます。
TLSによる暗号化を構成する手順は、従来のバージョンと同様です。
次のドキュメントに沿ってサーバとクライアントにTLS通信用のウォレットを構成し、証明書や鍵を格納します。
Oracle Database『セキュリティ・ガイド 23ai』(オラクル社のサイトに移動します)
21 Transport Layer Security暗号化の構成
My Oracle Support 『Document 2942355.1』(オラクル社のサイトに移動します/My Oracle Supportへのログインが必要です)
How to SETUP TLS with Multitenant with wallet_root for PDB&CDB
TLSで通信を暗号化するためには、TCPSプロトコルで通信されている必要があります。
現在の接続で使用しているネットワーク・プロトコルは、次のようにSYS_CONTEXTファンクションから確認することができます。
TLSが利用されている場合は「tcps」という値が返ります。
SQL> select sys_context('USERENV','NETWORK_PROTOCOL');
SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')
--------------------------------------------------------------------------------
tcps
TLSが利用されていない場合は「tcp」という値が返ります。
現在の接続で使用しているTLSのバージョンは、同じくSYS_CONTEXTファンクションから次のように確認することができます。
SQL> select sys_context('USERENV','TLS_VERSION');
SYS_CONTEXT('USERENV','TLS_VERSION')
--------------------------------------------------------------------------------
TLS 1.3この結果からTLS 1.3で暗号化されていることがわかります。
TLS 1.2が利用されている場合は「TLS 1.2」と値が返ります。
そして、SYS_CONTEXTファンクションでは使用されている暗号スイートも確認することができます。
SQL> select sys_context('USERENV','TLS_CIPHERSUITE');
SYS_CONTEXT('USERENV','TLS_CIPHERSUITE')
--------------------------------------------------------------------------------
TLS_AES_256_GCM_SHA384
この結果から「TLS_AES_256_GCM_SHA384」という暗号スイートが使用されていることが分かります。
暗号スイートとは、TLSなどのセキュア通信プロトコルにおける暗号アルゴリズムの組み合わせのことです。
23aiで使用可能な暗号スイートは次のマニュアルにリストされています。
Oracle Database『セキュリティ・ガイド 23ai』(オラクル社のサイトに移動します)
21.3.7.2.1 強力なTLS暗号スイート
Oracle Database 23aiではTLS 1.3がデフォルトですが、TCPSプロトコルを用いる場合でも、条件によってはTLS 1.3が利用されない場合がある点にご注意ください。
以下の事項を確認してください。
Oracle Database 23aiのTLS通信におけるアップデートとして、TLSのバージョンアップに加えて「クライアントのウォレットを必要としない」一方向TLSも実装されました(23aiからの新機能ですが、19cにおいてもRU 19.14からバックポートされています)。
従来のバージョンではTLS通信を利用する際に、一方向TLSまたはmTLS(相互TLS)いずれかで構成するか検討する必要がありました。
| 一方向TLS | クライアントがサーバ証明書を検証する認証方式。 クライアントウォレットにサーバの証明書をインポートする必要がある。 |
|---|---|
| mTLS(相互TLS) | クライアントとサーバが相互に認証する仕組み。 サーバのウォレットにクライアントの証明書を、クライアントのウォレットにサーバの証明書をインポートする必要がある。 |
23aiでは、この一方向TLSをさらに進化させ、クライアントがウォレットを持つ必要が一切ないクライアントウォレットレスな構成が可能になりました。
これまでの構成では、クライアント端末一台一台にウォレットの作成、証明書の配布、そして有効期限の管理という大きな運用負荷が発生していました。
このクライアントウォレットを使用しない構成では、クライアントOSの証明書ストアを利用するため、特に端末台数が多い大規模システムにおいてTLS導入のハードルと運用コストが劇的に下がることが期待できます。
以下に当社検証サーバで実施した、自己署名証明書を使用したクライアントウォレット不要(ウォレットレス)な一方向TLSの構成方法をご紹介します。
$ orapki wallet create -wallet $ORACLE_BASE/admin/$ORACLE_SID/root_wallet -auto_login -pwd "Welcome#1" Oracle PKI Tool Release 23.0.0.0.0 - Production 23.0.0.0.0: バージョン{1} Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. 操作は正常に完了しました。
$ orapki wallet add -wallet $ORACLE_BASE/admin/$ORACLE_SID/root_wallet \ > -dn C=JP,ST=Hokkaido,L=Sapporo,O=K.K.Ashisuto,OU=AHC,CN=Lin96.ashisuto.co.jp \ > -keysize 2048 -sign_alg sha256 -self_signed -validity 3650 -pwd "Welcome#1" Oracle PKI Tool Release 23.0.0.0.0 - Production 23.0.0.0.0: バージョン{1} Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. 操作は正常に完了しました。
$ orapki wallet export -wallet $ORACLE_BASE/admin/$ORACLE_SID/root_wallet \
> -dn C=JP,ST=Hokkaido,L=Sapporo,O=K.K.Ashisuto,OU=AHC,CN=Lin96.ashisuto.co.jp \
> -cert $ORACLE_BASE/admin/$ORACLE_SID/root_wallet/rootCA.crt -pwd "Welcome#1"
Oracle PKI Tool Release 23.0.0.0.0 - Production
23.0.0.0.0: バージョン{1}
Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved.
操作は正常に完了しました。
$ orapki wallet create -wallet $ORACLE_BASE/admin/$ORACLE_SID/tls -auto_login -pwd "Welcome#1"
Oracle PKI Tool Release 23.0.0.0.0 - Production
23.0.0.0.0: バージョン{1}
Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved.
操作は正常に完了しました。
$ orapki wallet add -wallet $ORACLE_BASE/admin/$ORACLE_SID/tls -trusted_cert \ > -cert $ORACLE_BASE/admin/$ORACLE_SID/root_wallet/rootCA.crt -pwd "Welcome#1" Oracle PKI Tool Release 23.0.0.0.0 - Production 23.0.0.0.0: バージョン{1} Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. 操作は正常に完了しました。
$ orapki wallet add -wallet $ORACLE_BASE/admin/$ORACLE_SID/tls \ > -keysize 2048 -dn CN=FREE.Lin96.ashisuto.co.jp -pwd "Welcome#1" Oracle PKI Tool Release 23.0.0.0.0 - Production 23.0.0.0.0: バージョン{1} Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. 操作は正常に完了しました。
$ orapki wallet export -wallet $ORACLE_BASE/admin/$ORACLE_SID/tls \ > -dn CN=FREE.Lin96.ashisuto.co.jp -request $ORACLE_BASE/admin/$ORACLE_SID/tls/request.csr -pwd "Welcome#1" Oracle PKI Tool Release 23.0.0.0.0 - Production 23.0.0.0.0: バージョン{1} Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. 操作は正常に完了しました。
$ orapki cert create -wallet $ORACLE_BASE/admin/$ORACLE_SID/root_wallet \ > -request $ORACLE_BASE/admin/$ORACLE_SID/tls/request.csr \ > -cert $ORACLE_BASE/admin/$ORACLE_SID/tls/signed_server.crt -validity 3650 -sign_alg sha256 -pwd "Welcome#1" Oracle PKI Tool Release 23.0.0.0.0 - Production 23.0.0.0.0: バージョン{1} Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. 操作は正常に完了しました。
$ orapki wallet add -wallet $ORACLE_BASE/admin/$ORACLE_SID/tls -user_cert \ > -cert $ORACLE_BASE/admin/$ORACLE_SID/tls/signed_server.crt -pwd "Welcome#1" Oracle PKI Tool Release 23.0.0.0.0 - Production 23.0.0.0.0: バージョン{1} Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. 操作は正常に完了しました。
これで、TCPS通信に必要なウォレットの準備が整いました。
$ orapki wallet display -wallet $ORACLE_BASE/admin/$ORACLE_SID/tls
Oracle PKI Tool Release 23.0.0.0.0 - Production
23.0.0.0.0: バージョン{1}
Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved.
Requested Certificates:
User Certificates:
Subject: CN=FREE.Lin96.ashisuto.co.jp
Trusted Certificates:
Subject: C=JP,ST=Hokkaido,L=Sapporo,O=K.K.Ashisuto,OU=AHC,CN=Lin96.ashisuto.co.jp
次のステップでは、このウォレットをデータベースとリスナーにデプロイしていきます。
従来サーバウォレットの配置を指定していたsqlnet.oraのWALLET_LOCATIONパラメータは、23aiでの使用は非推奨となっています。
その代わりに初期化パラメータWALLET_ROOTの使用が推奨されます。
Oracle Database『データベース・リファレンス 23ai』(オラクル社のサイトに移動します)
2.431 WALLET_ROOT
WALLET_ROOTはサーバウォレットのルートディレクトリを設定し、コンポーネント(TLSやTDEなど)ごとのサブディレクトリにウォレットを作成します。
wallet_root/tls/ewallet.p12
wallet_root/tde/ewallet.p12
また、PDBのウォレットはWALLET_ROOT直下にPDB GUIDのディレクトリを作成し、コンポーネントごとにウォレットを格納します。
wallet_root/3F848B8F83862A82E0650A002774607D/tls/ewallet.p12
wallet_root/3F848B8F83862A82E0650A002774607D/tde/ewallet.p12
なお、上述のとおりデータベースへウォレットを認識させるためのWALLET_LOCATIONパラメータの利用は非推奨となりましたが、listener.oraでウォレットを指定する場合およびOracle Clientのsqlnet.oraにおいては、引き続きWALLET_LOCATIONパラメータを使用します。
SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> alter system set WALLET_ROOT='/opt/oracle/admin/FREE' scope=spfile; システムが変更されました。
WALLET_ROOTは静的パラメータのため、設定は後述する再起動のタイミングで反映されます。
SQL> select CON_ID,NAME,GUID from V$CONTAINERS order by 1;
CON_ID NAME GUID
---------- -------------------- --------------------------------
1 CDB$ROOT 3AB34F3EF20C6FBFE063C6845E64C78C
2 PDB$SEED 3AB34F3EF20D6FBFE063C6845E64C78C
3 FREEPDB1 3F848B8F83862A82E0650A002774607D
上記の場合、ユーザー用PDB(CON_ID=3)のGUIDは「3F848B8F83862A82E0650A002774607D」ということになります。
WALLET_ROOTは先の手順で「/opt/oracle/admin/FREE」とSPFILEに格納したため、ここでは「/opt/oracle/admin/FREE/3F848B8F83862A82E0650A002774607D/tls」というディレクトリを作成します。
$ mkdir -p -v /opt/oracle/admin/FREE/3F848B8F83862A82E0650A002774607D/tls
mkdir: ディレクトリ '/opt/oracle/admin/FREE/3F848B8F83862A82E0650A002774607D' を作成しました
mkdir: ディレクトリ '/opt/oracle/admin/FREE/3F848B8F83862A82E0650A002774607D/tls' を作成しました
$ cd $ORACLE_BASE/admin/$ORACLE_SID/tls $ cp ./ewallet.p12 ./cwallet.sso $ORACLE_BASE/admin/$ORACLE_SID/3F848B8F83862A82E0650A002774607D/tls
SQL> shutdown immediate データベースがクローズされました。 データベースがディスマウントされました。 ORACLEインスタンスがシャットダウンされました。 SQL> startup ORACLEインスタンスが起動しました。 Total System Global Area 1603293992 bytes Fixed Size 4928296 bytes Variable Size 452984832 bytes Database Buffers 1140850688 bytes Redo Buffers 4530176 bytes データベースがマウントされました。 データベースがオープンされました。 SQL> alter pluggable database ALL OPEN; プラガブル・データベースが変更されました。 SQL> show parameter wallet_root NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ wallet_root string /opt/oracle/admin/FREE
sqlnet.oraのSSL_CLIENT_AUTHENTICATIONパラメータをFALSEに設定します。
このパラメータをFALSEに設定することでサーバがクライアントの認証を必須としなくなり、一方向TLSでの接続が可能になります。
$ vi $ORACLE_HOME/network/admin/sqlnet.ora # sqlnet.ora Network Configuration File: /opt/oracle/product/23ai/dbhomeFree/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) SSL_CLIENT_AUTHENTICATION=FALSE
以下を設定します。
$ vi $ORACLE_HOME/network/admin/listener.ora # listener.ora Network Configuration File: /opt/oracle/product/23ai/dbhomeFree/network/admin/listener.ora # Generated by Oracle configuration tools. DEFAULT_SERVICE_LISTENER = FREE LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = Lin96.ashisuto.co.jp)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCPS)(HOST = Lin96.ashisuto.co.jp)(PORT = 1522)) ) ) WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY = $ORACLE_BASE/admin/$ORACLE_SID/3F848B8F83862A82E0650A002774607D/tls) ) ) SSL_CLIENT_AUTHENTICATION=FALSE
TCPSプロトコルで定義したリスナーがすでに起動している場合は再起動を、新規作成の場合には起動します。
$ lsnrctl stop LSNRCTL for Linux: Version 23.0.0.0.0 - Production on 24-9月 -2025 15:08:51 Copyright (c) 1991, 2025, Oracle. All rights reserved. (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Lin96.ashisuto.co.jp)(PORT=1521)))に接続中 コマンドは正常に終了しました。 $ lsnrctl start LSNRCTL for Linux: Version 23.0.0.0.0 - Production on 24-9月 -2025 15:08:59 Copyright (c) 1991, 2025, Oracle. All rights reserved. /opt/oracle/product/23ai/dbhomeFree/bin/tnslsnrを起動しています。お待ちください... TNSLSNR for Linux: Version 23.0.0.0.0 - Production システム・パラメータ・ファイルは/opt/oracle/product/23ai/dbhomeFree/network/admin/listener.oraです。 ログ・メッセージを/opt/oracle/diag/tnslsnr/Lin96/listener/alert/log.xmlに書き込みました。 リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Lin96.ashisuto.co.jp)(PORT=1521))) リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=Lin96.ashisuto.co.jp)(PORT=1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Lin96.ashisuto.co.jp)(PORT=1521)))に接続中 リスナーのステータス ------------------------ 別名 LISTENER バージョン TNSLSNR for Linux: Version 23.0.0.0.0 - Production 開始日 24-9月 -2025 15:08:59 稼働時間 0 日 0 時間 0 分 1 秒 トレース・レベル off セキュリティ ON: Local OS Authentication SNMP OFF デフォルト・サービス FREE パラメータ・ファイル /opt/oracle/product/23ai/dbhomeFree/network/admin/listener.ora ログ・ファイル /opt/oracle/diag/tnslsnr/Lin96/listener/alert/log.xml リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Lin96.ashisuto.co.jp)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=Lin96.ashisuto.co.jp)(PORT=1522))) リスナーはサービスをサポートしていません。 コマンドは正常に終了しました。
以上でサーバ側の設定は完了です。
最後に、クライアント側の設定を行い、実際に接続を確認しましょう。
先の手順で、サーバ側で一方向TLSが許可されました。
さらに、以下の手順でクライアントOSの証明書ストアにルート証明書がインストールされることで、クライアントウォレットを必要としないTLS通信が可能になります。
Oracle Database『セキュリティ・ガイド 23ai』(オラクル社のサイトに移動します)
21.1.3 クライアント・ウォレットの使用の有無を問わないTLS
C:\Windows\System32>certutil -addstore -f "ROOT" "C:\temp\rootCA.crt" ROOT "信頼されたルート証明機関" 署名は公開キーと一致します 証明書 "Lin96.ashisuto.co.jp" がストアに追加されました。 CertUtil: -addstore コマンドは正常に完了しました。
freepdb1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = Lin96.ashisuto.co.jp)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = freepdb1) ) )
C:\>sqlplus system/Ashisuto-9@freepdb1 SQL*Plus: Release 23.0.0.0.0 - Production on 水 9月 24 15:37:59 2025 Version 23.5.0.24.07 Copyright (c) 1982, 2024, Oracle. All rights reserved. 最終正常ログイン時間: 水 9月 24 2025 15:36:50 +09:00 Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free Version 23.9.0.25.07 に接続されました。 SQL> select sys_context('USERENV','NETWORK_PROTOCOL'); SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') -------------------------------------------------------------------------------- tcps SQL> select sys_context('USERENV','TLS_VERSION'); SYS_CONTEXT('USERENV','TLS_VERSION') -------------------------------------------------------------------------------- TLS 1.3 SQL> select sys_context('USERENV','TLS_CIPHERSUITE'); SYS_CONTEXT('USERENV','TLS_CIPHERSUITE') -------------------------------------------------------------------------------- TLS_AES_256_GCM_SHA384
ネットワーク・プロトコルはTCPSが利用され、TLS 1.3の暗号スイートで暗号化通信が確立されていることが確認できました。
セキュリティ要件が高まる現代において、Oracle Database 23aiが提供する最新のセキュア通信機能は、すべてのOracle DB利用者が検討すべき重要な選択肢ではないでしょうか。
本記事でご紹介したように、23aiではTCPSプロトコルを用いたセキュア通信においてTLS 1.3がサポートされるようになりました。
これにより、ネットワーク接続の安全性がさらに向上したほか、TLS 1.3では従来の規格と比較し接続時のオーバーヘッドも改良されており、接続と再接続が頻繁に行われるようなアプリケーションにおいてもパフォーマンスの優位性が期待できます。
また、クライアントウォレットが不要となる一方向TLSは、これまでTCPS通信の導入・運用における工数の大幅な削減が見込めます。
セキュリティと利便性を両立したOracle Database 23aiのセキュア通信がもたらすメリットを、ぜひご体感ください。
アシストは、23aiの最新機能に関する深い検証実績と豊富なデータベース運用支援経験があります。セキュアな通信導入に関するご相談や、バージョンアップ計画でお困りの際は、ぜひ当社にご相談ください。
|
|---|
アシスト北海道
2016年アシスト北海道へ入社後、Oracle Databaseのサポート業務に従事。現在はサポートチームのリーダーとしてメンバーのバックフォローの傍ら、Oracle Databaseの技術検証に勤しんでいる。...show more
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
「Oracle Exadata ExascaleをOracle Cloud Infrastructure以外のクラウドサービスで使えないだろうか?」と考える方もいらっしゃるかと思います。本記事では他のクラウドサービスプロバイダーでのExascaleの使い方について検証結果をとおしてご紹介します。
イベント名が「Oracle AI World」へ変更された意図とは?オラクルが発表した「AI Data Platform」「Oracle AI Database 26ai」をはじめとする最重要ハイライトを、現地の熱気とともにお届けします。
Oracle Database 23aiの新機能「ローカル・ローリング・データベース・メンテナンス」をExaDB-Dで徹底検証。RAC環境でのパッチ適用時に、ローリングアップデートでいかにシステム停止時間を短縮できるのか、具体的な手順や注意点を解説します。