你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 虚拟机登陆区域加速器上 Oracle 工作负荷的安全准则
本文介绍如何在其生命周期的每个阶段安全地在 Azure 虚拟机登陆区域加速器上运行 Oracle 工作负荷。 本文讨论特定的设计组件,并提供有关 Oracle 工作负载的 Azure 基础结构即服务(IaaS)安全性的集中建议。
概述
安全对于任何体系结构都至关重要。 Azure 提供了一系列全面的工具,可帮助你有效地保护 Oracle 工作负载。 本文的目的是为与部署在 虚拟机 上的 Oracle 应用程序工作负荷相关的 Azure 控制平面提供安全建议。 有关 Oracle 数据库中安全措施的详细信息和实施指南,请参阅 Oracle 数据库安全指南。
大多数数据库存储敏感数据。 仅在数据库级别实现安全性不足以保护部署这些工作负载的体系结构。 深层防御是一种全面的安全方法,可实现多层防御机制来保护数据。 防御深度策略使用不同层安全措施的组合来创建可靠的安全态势,而不是依赖于特定级别的单个安全措施,例如仅专注于网络安全机制。 可以使用强身份验证和授权框架、强化的网络安全以及静态数据和传输中的数据加密来构建 Oracle 工作负载的防御深度方法。
可以将 Oracle 工作负载部署为 Azure 上的 IaaS 云模型。 重新访问共享责任矩阵,以便更清楚地了解分配给云提供商和客户的特定任务和职责。 有关详细信息,请参阅云中责任分担。
应定期评估所使用的服务和技术,以确保安全措施与不断变化的威胁环境保持一致。
使用集中式标识管理
标识管理是一个基本框架,用于控制对重要资源的访问。 与不同类型的人员合作(如临时实习生、兼职员工或全职员工)时,标识管理变得至关重要。 这些人员需要需要监视、维护并在必要时及时撤销的不同访问权限级别。 对于 Oracle 工作负载,需要考虑四个不同的标识管理用例,每个用例都需要不同的标识管理解决方案。
Oracle 应用程序:用户可以访问 Oracle 应用程序,而无需在通过单一登录(SSO)获得授权后重新输入其凭据。 使用 Microsoft Entra ID 集成访问 Oracle 应用程序。 下表列出了每个 Oracle 解决方案支持的 SSO 策略。
Oracle 应用程序 文档链接 电子商务套件 (EBS) 为 EBS R12.2 启用 SSO JD 爱德华兹 (JDE) 设置 JDE SSO PeopleSoft 为 PeopleSoft 启用 SSO Hyperion Oracle 支持文档 #2144637.1 Siebel Oracle 支持文档 #2664515.1 操作系统(OS)级别安全性:Oracle 工作负载可以在 Linux OS 或 Windows OS 的不同变体上运行。 组织可以通过将 Windows 和 Linux 虚拟机(VM)与 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 密钥库:密钥库是一种功能强大的云应用程序和服务工具,可用于保护机密的存储,例如密码和数据库连接字符串。 无论 OS 如何,都可以使用密钥库以集中且安全的方式存储 Windows 和 Linux VM 的凭据。
- 可以使用密钥库避免在代码或配置文件中以纯文本形式存储凭据。 可以在运行时从密钥库检索凭据,这会向应用程序添加额外的安全层,并帮助防止对 VM 进行未经授权的访问。 密钥库与其他 Azure 服务(如 虚拟机)无缝集成,可以使用 Microsoft Entra ID 控制对密钥库的访问。 此过程可确保只有经过授权的用户和应用程序才能访问存储的凭据。
强化的 OS 映像:Azure 中适用于 Windows 或 Linux 的 Internet 安全中心(CIS)强化映像具有多种优势。 CIS 基准在全球 被公认为保护 IT 系统和数据的最佳做法。 这些映像已预配置以满足 CIS 的安全建议,这可以节省时间和精力来强化 OS。 强化的 OS 映像可以帮助组织改善其安全状况,并遵守国家标准与技术研究所(NIST)和外围组件互连(PCI)等安全框架。
强化 OS
确保 OS 已强化,以消除可能用于攻击 Oracle 数据库的漏洞。
- 使用安全外壳 (SSH) 密钥对访问 Linux 帐户,而不是使用密码。
- 禁用受密码保护的 Linux 帐户,并在短时间内仅在请求时启用它们。
- 禁用特权 Linux 帐户(根或 Oracle)的登录访问权限,该帐户仅允许对个性化帐户进行登录访问。
- 使用 sudo 授予从个性化帐户访问特权 Linux 帐户的权限,而不是直接登录访问权限。
- 使用 Linux SYSLOG 实用工具捕获 Azure Monitor 日志中的 Linux 审核跟踪日志和 sudo 访问日志。
- 仅从受信任的源应用安全修补程序和 OS 修补程序或更新。
- 实施限制以限制对 OS 的访问。
- 限制对服务器的未经授权的访问。
- 控制网络级别的服务器访问,以提高整体安全性。
- 除了 Azure 网络安全组(NSG)外,请考虑使用 Linux 防火墙守护程序进行本地保护。
- 将 Linux 防火墙守护程序配置为在启动时自动运行。
- 扫描正在侦听的网络端口以了解潜在的接入点,并确保 Azure NSG 或 Linux 防火墙守护程序控制对这些端口的访问。 使用 Linux 命令
netstat –l
查找端口。 - 别名可能具有破坏性的 Linux 命令,例如
rm
,强制mv
它们进入交互模式,以便在执行不可逆命令之前至少提示一次。 如果需要,高级用户可以运行 unalias 命令。 - 配置 Oracle 数据库统一系统日志,以使用 Linux SYSLOG 实用工具将 Oracle 审核日志的副本发送到 Azure Monitor 日志。
使用网络安全
网络安全是 Azure 上 Oracle 工作负载分层安全方法的基本组成部分。
使用 NSG:可以使用 Azure NSG 筛选 Azure 虚拟网络中 Azure 资源之间的网络流量。 NSG 包含安全规则,这些规则允许或拒绝发到 Azure 资源的入站网络流量或来自 Azure 资源的出站网络流量。 NSG 可以使用 IP 地址范围和特定端口筛选本地网络与 Azure 之间的流量。 有关详细信息,请参阅 网络安全组。
下表列出了 Oracle 数据库 VM 的入站端口分配:
协议 端口号 服务名称 注释 TCP 22 SSH Linux VM 的管理端口 TCP 1521 Oracle TNS 侦听器 用于安全目的或连接负载均衡目的的其他端口号 TCP 3389 RDP Windows VM 的管理端口 决定如何连接到 VM:必须保护 Oracle 数据库工作负荷所在的 VM 免受未经授权的访问。 由于管理用户所需的权限较高,管理访问很敏感。 在 Azure 中,授权用户有多个机制可用于安全管理 VM。
- Microsoft Defender for Cloud 的实时(JIT)访问 可智能地利用 Azure 的网络安全机制,提供访问 VM 上的管理端口的有限机会。
- Azure Bastion 是在 Azure 中部署的平台即服务(PaaS)解决方案。 Azure Bastion 托管跳转盒。
可以使用任一解决方案来保护 Oracle 数据库 VM 的管理。 如果需要,可以将这两种解决方案组合在一起,实现高级 多层方法。
通常,JIT 访问将最小化,但不会通过限制 SSH 或 RDP 的管理端口可用的时间来消除风险。 JIT 确实使其他会话在获取的 JIT 窗口期间保持访问权限的可能性。 此类尾门仍必须突破公开的 SSH 或 RDP 端口,因此暴露风险很小。 但是,此类曝光可能会使 JIT 访问变得不那么可口,从而阻止从开放 Internet 进行访问。
Azure Bastion 本质上是一个强化的跳转盒,可帮助防止从打开的 Internet 进行访问。 但是, 可以考虑 Azure Bastion 存在许多限制。
使用 X-Windows 和虚拟网络计算(VNC):Oracle 数据库软件通常需要使用 X-Windows,因为 Azure 中的 Linux VM 与台式机或笔记本电脑之间的连接可能会遍历防火墙和 Azure NSG。 因此,应使用 SSH 端口转发通过 SSH 隧道传输 X-Windows 或 VNC 连接。 有关使用
-L 5901:localhost:5901
参数的示例,请参阅 打开 VNC 客户端并测试部署。跨云互连选项:启用在 Azure 中运行的 Oracle 数据库工作负荷与 Oracle 云基础结构(OCI)中的工作负荷之间的连接。 可以使用 Azure 中的特定区域与 OCI 之间的 Azure 或 OCI 互连在应用程序之间创建专用链接或管道。 有关详细信息,请参阅 设置 Azure 与 Oracle 云基础结构之间的直接互连。 本文不涉及在 Azure 或 OCI 互连的任何一端创建防火墙,这通常是跨云的任何入口或出口的要求。 此方法采用Microsoft零信任网络建议。
基于 Azure 策略的安全性
虚拟机登陆区域加速器上,Oracle 工作负载没有特定的内置 Azure 策略定义。 但是,Azure Policy 为 Azure 上任何 Oracle 解决方案(包括 VM、存储和网络)使用的基本资源提供全面覆盖。 有关详细信息,请参阅 Azure Policy 内置策略定义。
还可以创建自定义策略来满足组织要求,以弥合差距。 例如,使用自定义 Oracle 策略强制实施存储加密、管理 NSG 规则或禁止将公共 IP 地址分配给 Oracle VM。
使用加密存储数据
加密传输中的数据:适用于从一个位置移动到另一个位置的数据的状态,通常通过网络连接移动。 传输中的数据可以通过多种方式进行加密,具体取决于连接的性质。 默认情况下,必须为 Azure 数据中心内传输中的数据手动启用数据加密。 有关 Azure 文档中的详细信息,请参阅 传输中的数据加密。
- 建议使用 Oracle 本机网络加密和数据完整性功能。 有关详细信息,请参阅 配置 Oracle 数据库本机网络加密和数据完整性。
加密静态数据:在将数据写入存储时,还必须保护数据,同时静态数据。 在使用期间删除或访问存储介质时,可以公开或更改机密数据。 因此,应对数据进行加密,以确保只有经过授权和经过身份验证的用户才能查看或修改数据。 Azure 提供三层静态加密。
- 所有数据在存储服务端加密保存到任何Azure 存储设备时,在最低级别进行加密。 服务端加密可确保在使用存储完成 Azure 租户后,不需要擦除或销毁存储媒体。 如果放弃平台管理的密钥,始终静态加密的数据可能会永久丢失。 与尝试从存储中删除所有数据相比,服务端加密更快、更安全。
- Azure 还提供了使用存储基础结构加密(使用两个单独的平台托管密钥)在存储基础结构中加密存储数据的机会。
- 此外, Azure 磁盘加密 是在来宾 OS(适用于 Windows 的 BitLocker 和适用于 Linux 的 DM-CRYPT)中管理的静态加密数据。
存储基础结构最多具有三个可能的静态数据层加密。 如果你有 Oracle 高级安全性选项,Oracle 数据库还可以使用透明数据加密(TDE)加密数据库文件,并提供另一级别的静态加密。
Oracle 高级安全选项还提供一种称为 数据修订的功能,这是动态数据掩码的一种形式。 当数据库检索数据时,它会屏蔽数据值,而不更改存储的数据值。
这些多层静态加密表示深度防御的定义。 如果出于某种原因,静态加密形式之一遭到入侵,仍有其他加密层来保护数据。
- 管理密钥:如果将 Oracle TDE 实现为另一个加密层,请务必注意 Oracle 不支持本机密钥管理解决方案,例如 Azure 或其他云提供商提供的密钥库。 相反,Oracle 钱包的默认位置位于 Oracle 数据库 VM 的文件系统中。
有关详细信息,请参阅在 Azure 中预配 Oracle 密钥库,了解如何将 Oracle 密钥库用作 Azure 密钥管理解决方案。
集成审核线索
应用程序日志监视对于在应用程序级别检测安全威胁至关重要。 对 Oracle 数据库工作负荷使用 Microsoft Sentinel 解决方案。 Oracle 数据库审核连接器使用行业标准 SYSLOG 接口检索和引入所有 Oracle 数据库审核记录到 Azure Monitor 日志中。 此过程允许与 Azure 基础结构审核记录和来宾 OS(Linux 或 Windows)审核记录一起查看这些记录。 Microsoft Sentinel 解决方案是一种云原生安全信息和事件管理(SIEM)解决方案,专为在 Linux 或 Windows VM 上运行的 Oracle 工作负荷而构建。 有关详细信息,请参阅 用于 Microsoft Sentinel 的 Oracle 数据库审核连接器。
下一步
若要了解如何规划 Azure 上 Oracle 工作负荷的容量要求,请参阅 将 Oracle 工作负载迁移到 Azure 登陆区域的容量规划。