Azure Virtual Machines ランディング ゾーン アクセラレータ上の Oracle ワークロードのセキュリティ ガイドライン
この記事では、ライフサイクルのすべての段階で、Azure Virtual Machines ランディング ゾーン アクセラレータで Oracle ワークロードを安全に実行する方法について説明します。 この記事では、特定の設計コンポーネントを扱い、Oracle ワークロード用 Azure サービスとしてのインフラストラクチャ (IaaS) セキュリティに関する的を絞った提案を行います。
概要
セキュリティは、あらゆるアーキテクチャに不可欠です。 Azure には、Oracle ワークロードを効果的にセキュリティで保護するのに役立つ包括的なツールが用意されています。 この記事の目的は、仮想マシンにデプロイされる Oracle アプリケーション ワークロードに関連する Azure コントロール プレーンのセキュリティに関する推奨事項を提供することです。 Oracle Database 内のセキュリティ対策に関する詳細な情報と実装ガイドラインについては、「Oracle Database のセキュリティ ガイド」を参照してください。
ほとんどのデータベースには機密データが格納されています。 これらのワークロードをデプロイするアーキテクチャを保護するには、データベース レベルのみにセキュリティを実装するだけでは不十分です。 多層防御は、データを保護するための防御メカニズムを多層に実装する、セキュリティに対する包括的なアプローチです。 たとえば、ネットワーク セキュリティ メカニズムのみに重点を置くなど、ある特定のレベルで 1 つのセキュリティ対策に依存するのではなく、多層防御戦略では、さまざまなレイヤーセキュリティ対策を組み合わせて堅牢なセキュリティ態勢を作成します。 強力な認証と承認のフレームワーク、強化されたネットワーク セキュリティ、保存データと転送中データの暗号化により、Oracle ワークロードに対する多層防御アプローチを設計できます。
Azure には、IaaS クラウド モデルとして Oracle ワークロードをデプロイできます。 共有責任マトリックスを見直して、クラウド プロバイダーおよび顧客に割り当てられている特定のタスクと責任をより明確に理解してください。 詳細については、「クラウドにおける共同責任」を参照してください。
セキュリティ対策を変化する脅威の状況と合致させるために、使用するサービスとテクノロジを定期的に評価することをお勧めします。
一元化された ID 管理を使用する
ID 管理は、重要なリソースへのアクセスを管理する基本的なフレームワークです。 一時的インターン、パートタイムの従業員、フルタイムの従業員など、複数の種類の従業員と作業する場合、ID 管理が重要になります。 これらの要員には、必要に応じて監視、保守、および迅速な取消が必要となる、さまざまなレベルのアクセスが求められます。 Oracle ワークロードについて考慮すべき、4 つの個別 ID 管理ユース ケースがあります。各ユース ケースごとに、別々の ID 管理ソリューションを必要とします。
Oracle アプリケーション: ユーザーは、シングル サインオン (SSO) によって承認された後に資格情報を再入力しなくても、Oracle アプリケーションにアクセスできます。 Microsoft Entra ID 統合を使用して Oracle アプリケーションにアクセスします。 各 Oracle ソリューションでサポートされている SSO 戦略を次の表に示します。
Oracle アプリケーション ドキュメントへのリンク E-Business Suite (EBS) EBS R12.2 の SSO を有効にする JD Edwards (JDE) JDE SSO のセットアップ PeopleSoft PeopleSoft の SSO を有効にする Hyperion Oracle サポート ドキュメント #2144637.1 Siebel Oracle サポート ドキュメント #2664515.1 オペレーティング システム (OS) レベルのセキュリティ: Oracle ワークロードは、Linux OS または Windos OS のさまざまなバリアント上で実行できます。 組織は、Microsoft Entra ID との統合により、Azure での Windows および Linux 仮想マシン (VM) のセキュリティを向上させることができます。 詳細については、以下を参照してください:
- Microsoft Entra ID と OpenSSH を使用して Azure の Linux VM にログインする
- 2023 年 7 月時点、Oracle Linux (OL) と Red Hat Enterprise Linux (RHEL) は 100% バイナリ互換であるため、RHEL に関連するすべての手順は OL にも適用されます。
- 2023 年 7 月の時点で、IBM は RHEL ソース コードを一般共有しなくなりました。 OL と RHEL が将来分岐する可能性があるため、以前のステートメントが無効になる可能性があります。
- Microsoft Entra ID を使用して、Azure の Windows VM にサインインします。
- Microsoft Entra ID と OpenSSH を使用して Azure の Linux VM にログインする
Azure Key Vault で資格情報を格納する: Key Vault は、クラウド アプリケーションおよびサービス用のシークレット (パスワードやデータベース 接続文字列など) の安全な保管のために使用できる強力なツールです。 Key Vault を使用すると、OS に関係なく、Windows と Linux 両方の VM の資格情報を一元的かつ安全な方法で格納できます。
- Key Vault を使用すると、コードまたは構成ファイル内のプレーン テキストに資格情報を格納する必要がなくなります。 実行時に Key Vault から資格情報を取得すると、アプリケーションにセキュリティレイヤーが追加されるため、VM への不正アクセスを防ぐことができます。 Key Vault は、Virtual Machines などの他の Azure サービスとシームレスに統合され、Microsoft Entra ID を使用して Key Vault へのアクセスを制御できます。 このプロセスにより、承認されたユーザーとアプリケーションのみが保存された資格情報にアクセスできるようになります。
強化されたオペレーティング システム イメージ: Center for Internet Security (CIS) で強化された、Azure での Windows または Linux イメージにより、複数の利点が得られます。 CIS ベンチマーク は、IT システムとデータを保護するためのベスト プラクティスとしてグローバルに認識されています。 これらのイメージは、CIS のセキュリティに関する推奨事項を満たすように事前構成されており、OS のセキュリティ強化にかかる時間と労力を節約できます。 強化された OS イメージは、組織がセキュリティ態勢を改善し、国立標準技術研究所 (National Institute of Standards and Technology、NIST) や Peripheral Component Interconnect (PCI) などのセキュリティ フレームワークに準拠するのに役立ちます。
OS を強化する
OS が、Oracle データベースへの攻撃に悪用される可能性のある脆弱性を排除するようセキュリティ強化されていることを確認します。
- Linux アカウント アクセスには、パスワードの代わりに Secure Shell (SSH) キー ペアを使用します。
- パスワードで保護された Linux アカウントを無効にし、要求された場合に限り短期間有効にします。
- 特権 Linux アカウント (ルートまたは Oracle) のサインイン アクセスを無効にします。これにより、個人用アカウントへのサインイン アクセスのみが許可されます。
- 直接サインイン アクセスではなく、 sudo を使用して、個人用アカウントから特権 Linux アカウントへのアクセスを許可します。
- Linux SYSLOG ユーティリティを使用して、Azure Monitor ログ内の Linux 監査証跡ログと sudo アクセス ログをキャプチャします。
- セキュリティ パッチと OS パッチ/更新プログラムを、信頼された発行元からのみ定期的に適用します。
- OS へのアクセスを限定する制限を実装します。
- サーバーへの不正アクセスを制限します。
- 全体的なセキュリティを強化するために、ネットワーク レベルでサーバー アクセスを制御します。
- Linux ファイアウォール デーモンを、Azure ネットワーク セキュリティ グループ (NSG) への追加のローカル保護として使用することを検討してください。
- Linux ファイアウォール デーモンを、起動時に自動的に実行されるように構成します。
- リッスンされているネットワーク ポートをスキャンして潜在的なアクセス ポイントを理解し、Azure NSG または Linux ファイアウォール デーモンがそれらのポートへのアクセスを制御していることを確認します。 Linux コマンド
netstat –l
を使ってポートを見つけます。 - 潜在的に破壊的な Linux コマンド (
rm
やmv
など) をエイリアス化して対話型モードを強制し、非可逆的コマンドが実行される前に少なくとも 1 回は確認のメッセージが表示されるようにします。 上級ユーザーは、必要に応じて unalias コマンドを実行してもかまいません。 - Linux SYSLOG ユーティリティを使用して Oracle 監査ログのコピーを Azure Monitor Logs に送信するように Oracle データベース統合システム ログを構成します。
ネットワーク セキュリティを使用する
ネットワーク セキュリティは、Azure 上の Oracle ワークロードに対する階層型セキュリティ アプローチにおける基本的なコンポーネントです。
NSG の使用: Azure 仮想ネットワーク内の Azure リソース間のネットワーク トラフィックは、Azure NSG を使ってフィルター処理できます。 NSG には、Azure リソースへの受信ネットワーク トラフィックまたは Azure リソースからの送信ネットワーク トラフィックを許可または拒否するセキュリティ規則が含まれます。 NSG では、オンプレミス ネットワークと Azure との間のトラフィックを、IP アドレス範囲と特定のポートを使用してフィルター処理できます。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。
次の表に、Oracle データベース VM の受信ポートの割り当てを示します。
Protocol ポート番号 サービス名 コメント TCP 22 SSH Linux VM の管理ポート TCP 1521 Oracle TNS リスナー セキュリティまたは接続の負荷分散目的で頻繁に使用されるその他のポート番号 TCP 3389 RDP Windows VM の管理ポート VM への接続方法を決定する: Oracle データベース ワークロードを持つ VM は、不正アクセスから保護する必要があります。 管理アクセスは、管理ユーザーに必要となるアクセス許可が高いため、機密性が高くなります。 Azure では、承認されたユーザーには、VM を安全に管理するためのメカニズムがいくつか用意されています。
- Microsoft Defender for Cloud の Just-In-Time (JIT) アクセスは、Azure のネットワーク セキュリティ メカニズムをインテリジェントに使用して、VM 上の管理ポートにアクセスする時間制限付きの機会を提供します。
- Azure Bastion は、Azure でデプロイするサービスとしてのプラットフォーム (PaaS) ソリューションです。 Azure Bastion はジャンプ ボックスをホストします。
どちらのソリューションでも、Oracle データベース VM の管理を保護できます。 必要に応じて、両方のソリューションを組み合わせて高度な 多層アプローチを実現できます。
一般に、JIT アクセスは、SSH または RDP の管理ポートが使用可能な時間を制限することで、リスクを最低限に抑えますが、完全に排除することはできません。 JIT では、取得した JIT 期間中に他のセッションがアクセスする可能性が残ります。 ただし、テールゲーターは公開されている SSH または RDP ポートを突破する必要があるため、リスクにさらされる可能性は小さくなります。 ただし、このような露出のために、オープン インターネットからのアクセスをブロックする上で、JIT アクセスの方が受け入れられる可能性が低くなります。
Azure Bastion は基本的に、オープン インターネットからのアクセスを防ぐのに役立つ強化されたジャンプ ボックスです。 ただし、Azure Bastion には考慮すべき多くの制限があります。
X-Windows と Virtual Networking Computing (VNC) の使用: Oracle データベース ソフトウェアでは、通常、X-Windows を使用する必要があります。これは、Azure の Linux VM とデスクトップまたはラップトップ間の接続がファイアウォールと Azure NSG を横断する可能性があるためです。 このため、SSH ポートフォワーディングを使用して、SSH 経由で X-Windows または VNC 接続をトンネリングする必要があります。
-L 5901:localhost:5901
パラメーターを使用する例については、「VNC クライアントを開いてデプロイをテストする」を参照してください。クラウド間相互接続オプション: Azure で実行される Oracle データベース ワークロードと、Oracle Cloud Infrastructure (OCI) のワークロード間の接続を有効にします。 Azure と OCI の特定のリージョン間の Azure または OCI 相互接続を使用すると、アプリケーション間のプライベート リンクまたはパイプラインを作成できます。 詳しくは、「Azure と Oracle Cloud Infrastructure 間の直接相互接続をセットアップする」をご覧ください。 このドキュメントでは、Azure または OCI 相互接続でのファイアウォールの作成は扱っていません。これは一般に、クラウド間のあらゆるイングレスまたはエグレスの要件です。 このアプローチでは、Microsoft ゼロ トラスト ネットワークに関する推奨事項を取り入れます。
Azure ポリシーベースのセキュリティ
Azure Virtual Machines ランディング ゾーン アクセラレータ上には、 Oracle に対する特定のビルトイン Azure ポリシー定義はありません。 ただし、Azure Policy では、VM、ストレージ、ネットワークなど、Azure 上の任意の Oracle ソリューションで使用される基本的なリソースに関する包括的なカバレッジが提供されます。 詳細については、「Azure Policy の組み込みのポリシー定義」を参照してください。
また、ギャップを埋めるために組織の要件に対応するカスタム ポリシーを作成することもできます。 たとえば、カスタム Oracle ポリシーを使用して、ストレージ暗号化を実施したり、NSG ルールを管理したり、Oracle VM へのパブリック IP アドレスの割り当てを禁止したりします。
暗号化を使用してデータを格納する
転送中データの暗号化: ある場所から別の場所へと、通常はネットワーク接続を介して移動するデータの状態に適用されます。 転送中のデータは、接続の性質に応じて、いくつかの方法で暗号化できます。 既定では、Azure データセンター内で転送中のデータのデータ暗号化を手動で有効にする必要があります。 Azure ドキュメントの詳細については、「転送中のデータの暗号化」をご覧ください。
- Oracle ネイティブ ネットワーク暗号化とデータ整合性機能を使用することをお勧めします。 詳細については、「Oracle データベースのネイティブ ネットワーク暗号化とデータ整合性の構成」を参照してください。
保存中データの暗号化: 保存中にストレージに書き込まれるデータも保護する必要があります。 ストレージ メディアが使用中に削除またはアクセスされると、機密データが公開または変更される可能性があります。 そのため、承認されたユーザーと認証されたユーザーのみがデータを表示または変更できるように、データを暗号化する必要があります。 Azure には、保存時には 3 層の暗号化が用意されています。
- すべてのデータは、Azure Storage サービス側の暗号化 により Azure Storage デバイスに保持されるとき、最も低いレベルで暗号化されます。 サービス側の暗号化により、Azure テナントがストレージ使用を完了したときに、ストレージ メディアを消去または破棄する必要がなくなります。 保存時に常に暗号化されているデータは、プラットフォーム マネージド キーが破棄されると、永続的に失われる可能性があります。 サービス側の暗号化は、ストレージからすべてのデータを削除するよりも迅速かつ安全です。
- Azure ではさらに、2 つの個別のプラットフォーム マネージド キーを使用したStorage インフラストラクチャ暗号化により、ストレージ インフラストラクチャ内に格納されているデータを 2 重に暗号化することもできます。
- さらに、Azure Disk Encryption は、ゲスト OS 内で管理される保存データ暗号化機能です (Windows の場合は BitLocker、Linux の場合は DM-CRYPT)。
ストレージ インフラストラクチャは、保存データ暗号化のレイヤーを最大 3 つまで持つことができます。 Oracle Advanced Security オプションがある場合、Oracle データベースは Transparent Data Encryption (TDE) を使用してデータベース ファイルを暗号化し、保存時に別のレベルの暗号化を行うこともできます。
さらに、Oracle Advanced Security オプションでは、動的データ マスクの一種であるデータ編集と呼ばれる機能も用意されています。 データベースがデータを取得すると、格納されているデータ値を変更せずに、データ値をマスクします。
これらの保存時における多層の暗号化は、多層防御の定義そのものを示すものです。 何らかの理由で保存時における暗号化の 1 形式が侵害されても、その他の暗号化層があるため、データは保護されます。
- キー管理: Oracle TDE を別の暗号化レイヤーとして実装する場合は、Oracle は Azure または他のクラウド プロバイダーが提供する、Key Vault などのネイティブ キー管理ソリューションをサポートしていないことに注意が必要です。 Oracle ウォレットの既定の位置は、Oracle データベース VM のファイルシステム内にあります。
詳細については、「Azure での Oracle Key Vault のプロビジョニング」を参照すると、Azure キー管理ソリューションとして Oracle Key Vault を使用する方法をご覧になれます。
監査証跡の統合
アプリケーション ログの監視は、アプリケーション レベルでセキュリティの脅威を検出するために不可欠です。 Oracle Database ワークロードには Microsoft Sentinel ソリューションを使用してください。 Oracle Database 監査コネクタは、業界標準の SYSLOG インターフェイスを使用して、すべての Oracle データベース監査レコードを取得し、Azure Monitor ログに取り込みます。 このプロセスにより、それらのレビュー対象のレコードを、Azure インフラストラクチャ監査レコードとゲスト OS (Linux または Windows) 監査レコードと共に確認できます。 Microsoft Sentinel ソリューションは、Linux または Windows の仮想マシンで実行されている Oracle ワークロード用に構築されたクラウドネイティブのセキュリティ情報イベント管理 (SIEM) ソリューションです。 詳細については、「Microsoft Sentinel の Oracle データベース監査コネクタ」を参照してください。
次のステップ
Azure 上の Oracle ワークロードの容量要件を計画する方法については、Oracle ワークロードを Azure ランディング ゾーンに移行するための容量計画に関するページを参照してください。