基本数据库服务安全指南
安全概览
本主题概述了基本数据库服务中的安全性。Oracle 负责管理大多数组件的安全性,而用户负责某些组件的安全性。
云服务组件分为用户可访问的服务和由 Oracle 管理的基础设施。用户可访问的服务是指用户在订阅基本数据库服务时可以访问的组件。这些虚拟机和数据库服务通常分别称为数据库系统和数据库。Oracle 托管基础设施是指 Oracle 拥有并运营的用于支持用户可访问服务的硬件。它由基于 AMD 或 Intel 的数据库计算配置组成。
Oracle 将管理对 Oracle 管理的基础设施组件的安全性和访问。用户将管理对用户可访问服务的安全性和访问,包括对数据库系统和数据库服务的访问、对数据库系统的网络访问、访问数据库系统的验证以及访问数据库系统上运行的数据库的验证。Oracle 员工无权访问用户可访问的服务。
用户使用标准的 Oracle Database 连接方法(例如端口 1521 上的 Oracle Net),通过第 2 层(标记 VLAN)连接从用户设备访问在数据库系统上运行的 Oracle 数据库。用户可以使用标准 Oracle Linux 方法连接到运行 Oracle 数据库的数据库系统,例如端口 22 上的基于令牌的 SSH。
基本数据库服务采用了多重、独立且相互增强的安全控制措施,以帮助组织为其工作负载和数据创建一个安全的操作环境。基本数据库服务提供以下安全控制:
用于保护操作环境的深度防御
基本数据库服务提供多种控制,以在整个服务中保持机密性、完整性和问责制。基本数据库服务促进深入防御原则,如下所示:
- 数据库系统的虚拟机是基于 Oracle Linux 7 的强化操作系统映像构建的。它通过将安装映像仅限于所需的软件包、禁用不必要的服务以及在整个系统中实施安全的配置参数来保护核心操作环境。
- 除了继承成熟的 Oracle Linux 平台的所有优势之外,还会在服务实例中实施其他安全默认配置选项。例如,所有数据库表空间都需要透明数据加密 (Transparent Data Encryption,TDE)、对初始数据库用户和超级用户实施强密码以及增强的审计和事件规则。
- 基本数据库服务也构成完整的部署和服务,并受行业标准的外部审计,例如 PCI、HIPPA 和 ISO27001。这些外部审计要求引入了附加增值服务功能,例如防病毒扫描、系统意外更改的自动预警以及组中所有 Oracle 管理的基础设施系统的漏洞扫描。
服务和用户的最小特权
Oracle 安全编码标准需要最少的特权范式。确保应用程序、服务和用户能够访问他们执行任务所需的功能,这只是最小权限原则的一面。同样重要的是,确保对不必要的功能、服务和接口的访问受到限制。基本数据库服务提倡最低权限原则,如下所示:
- 每个进程和守护进程必须以正常的非特权用户身份运行,除非它可以证明要求具有更高级别的特权。这有助于包含对非特权用户空间的任何不可预见的问题或漏洞,而不会损害整个系统。
- 此原则也适用于使用单个指定帐户访问基础结构以进行维护或故障排除的 Oracle 运营团队成员。只有在必要时,他们才会使用审计的访问权限来解决或解决问题。大多数问题都是通过自动化解决的,所以我们也采用最少的特权,不允许人类操作员访问系统,除非自动化无法解决问题。
事件和操作的审计和责任性
系统必须能够在事故发生时识别和通知事故。同样,当事件无法避免时,组织必须能够识别其发生情况,以便采取适当的操作。基本数据库服务通过以下方式鼓励审计和问责:
- 审计和问责制可确保 Oracle 和用户都了解在系统上执行的活动及其时间。这些细节不仅确保我们始终符合外部审计的报告要求,而且还可以帮助识别导致意外行为的活动。
- 为所有基础设施组件提供了审计功能,以确保捕获所有操作。用户还可以为其数据库和用户域 (domU) 配置配置审计,并可以选择将其与其他企业审计系统集成。
- Oracle 不访问用户 domU。
实现云运营自动化
通过消除预配、修补、维护、故障排除和配置系统所需的手动操作,可以减少出错的可能性,并确保安全配置。
基本数据库服务通过自动执行所有预配、配置和大多数其他操作任务来确保安全。通过自动化,可以避免错过配置并确保正确配置进入系统的所有必要路径。
安全功能
强化操作系统映像
- 最少的软件包安装:仅安装运行高效系统所需的必要软件包。通过安装一组较小的软件包,操作系统的攻击面减少了,系统保持更安全。
- 安全配置:在安装期间设置了许多非默认配置参数,以增强系统及其内容的安全状况。例如,SSH 配置为仅侦听特定网络接口,sendmail 配置为仅接受本地主机连接,并且在安装期间实施了许多其他类似限制。
- 仅运行必要的服务:缺省情况下,可能会在系统上安装但正常操作不需要的任何服务都处于禁用状态。例如,虽然 NFS 是用户经常为各种应用程序目的配置的服务,但默认情况下会禁用它,因为正常数据库操作不需要它。用户可以选择根据需要配置服务。
最小化攻击面
作为加固映像的一部分,通过仅安装和运行交付服务所需的软件来减少攻击面。
启用其他安全功能
- 基本数据库服务设计为默认安全,并提供从网络防火墙控制到访问控制安全策略的完整安全堆栈。
- 此外,还可以启用 FIPS、SE Linux 和 STIG,以使用
dbcli secure-dbsystem
CLI 提高系统上的安全性。 - 提供 STIG 工具是为了在预配系统中的每个系统节点上提高对 DISA Oracle Linux 7 STIG 的合规性。
安全访问方法
- 使用强加密密码通过 SSH 访问数据库服务器。缺省情况下,弱密码将被禁用。
- 通过加密的 Oracle Net 连接访问数据库。默认情况下,我们的服务使用加密渠道提供,默认配置的 Oracle Net 客户端将使用加密会话。
审计和记录
默认情况下,审计和日志记录不会为操作系统提供的商业部署添加任何其他配置,但可以通过启用 STIG 添加其他安全设置来改进该配置。
有关详细信息,请参见以下主题:
用户安全性
本主题介绍基本数据库服务中可用的用户安全性。基本数据库服务组件由多个用户帐户定期管理。Oracle 仅使用并建议基于令牌的 SSH 登录。Oracle 用户或进程不使用基于密码的验证。
默认情况下会创建以下类型的用户:
默认用户:无登录权限
此用户列表由默认操作系统用户组成。不应更改这些用户。这些用户无法登录到系统。
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
polkitd:x:999:996:User for polkitd:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the
tcsd daemon:/dev/null:/sbin/nologin
sssd:x:998:994:User for sssd:/:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
saslauth:x:997:76:Saslauthd user:/run/saslauthd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
默认用户:具有登录权限
这些特权用户负责完成系统中大部分任务。不应更改或删除这些用户,因为这会对正在运行的系统产生重大影响。SSH 密钥用于登录。
以下是具有登录权限的默认用户列表。
root
是 Linux 要求。它很少用于运行本地特权命令。根也用于 TFA 代理等某些进程。它运行为 RDBMS 软件执行生命周期操作的本地代理(即“DCS 代理”)(打补丁、创建数据库等)oracle
拥有 Oracle Database 软件安装并运行 RDBMS 进程。grid
拥有 Oracle Grid Infrastructure 软件安装并运行 GI 进程。- Oracle Cloud Automation 使用
opc
执行自动化任务。用户无需进一步验证即可运行某些特权命令(以支持自动化功能)。 mysql
是关键用户,它需要启动并运行才能成功操作 DCS 代理,因为它拥有 DCS 代理的 Metastore。
root:x:0:0:root:/root:/bin/bash
opc:x:54322:54323::/home/opc:/bin/bash
mysql:x:54323:54331::/home/mysql:/bin/bash
grid:x:102:1001::/home/grid:/bin/bash
oracle:x:101:1001::/home/oracle:/bin/bash
安全设置
本主题介绍了基本数据库服务中可用的安全设置。以下是系统中提供的默认安全设置。
表 - 安全性设置和默认值
安全设置 | 默认值 |
---|---|
口令复杂性 |
|
用户账户配置 |
|
已禁用选项 |
|
SSH 配置 |
|
程序包 |
|
日志记录 |
|
其他人 |
|
此外,默认情况下,ONSR 区域允许 FIPS、SE Linux 和 STIG 符合要求标准。可以通过启用其他配置来提高系统安全性。配置标准 (STIG) 可以设置为遵循限制性最强的标准,并提高 DISA Oracle Linux 7 STIG 的安全性合规性。在映像中提供了用于启用 FIPS、SE Linux 和 STIG 的工具。
有关详细信息,请参见以下主题:
安全性流程
本主题介绍基本数据库服务中可用的默认安全进程。以下是默认情况下在用户虚拟机(DB 系统)上运行的进程列表(也称为 domU)。
表 - 安全进程
进程数 | 说明 |
---|---|
domU 代理 |
它是用于处理数据库生命周期操作的云代理。
|
TFA 代理 |
Oracle Trace File Analyzer (TFA) 在一个捆绑包中提供了多个诊断工具,因此可以轻松地收集有关 Oracle Database 和 Clusterware 的诊断信息,这反过来有助于在处理 Oracle 支持时解决问题。
|
数据库和 GI (clusterware) |
|
网络安全
本主题介绍基本数据库服务中的网络安全性。以下是默认情况下在用户虚拟机(DB 系统)上运行的默认端口、进程和 iptables 规则的列表,这些规则也称为 domU。
domU 服务的端口
下表提供了 domU 服务的默认端口列表。
表 - domU 服务的默认端口矩阵
接口类型 | 接口的名称 | 端口 | 流程正在运行 |
---|---|---|---|
在所有接口上监听 | 0.0.0.0 | 22 | SSH |
1522 | RDBMS:TNS 监听程序 | ||
7060 | DCS 管理 | ||
7070 | DCS 代理 | ||
2181 | Zookeeper | ||
8888, 8895 | RAC:管理服务质量 (Quality of Management Service,QOMS) 服务器 | ||
9000 | RAC:Oracle Clusterware | ||
68 | DHCP | ||
123 | NTP | ||
5353 | 多播 DNS | ||
客户端界面 | ens3 | 1521 | RDBMS:TNS 监听程序 |
5000 | RDBMS:自治健康框架 (AHF)(包括 TFA) | ||
ens3:1 | 1521 | RDBMS:TNS 监听程序 | |
ens3:2 | 1521 | RDBMS:TNS 监听程序 | |
ens3:3 | 1521 | RDBMS:TNS 监听程序 | |
集群互连 | ens4 | 1525 | RDBMS:TNS 监听程序 |
2888 | Zookeeper | ||
3888 | Zookeeper | ||
6000 | RAC:网格进程间通信 | ||
7000 | RAC:高可用性服务 |
domU 的 iptables 规则
在输入链、转发链和输出链上,默认 iptables 设置为 ACCEPT
连接。
以下是 domU 服务的默认 iptables 规则:
CHAIN INPUT
CHAIN FORWARD
CHAIN OUTPUT
示例 - iptables 规则
以下示例提供了 domU 服务的默认 iptables 规则。
iptables -L -n -v
输出:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
43M 110G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2664 224K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
40793 2441K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- ens4 * 0.0.0.0/0 0.0.0.0/0
3 192 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
40 2400 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:1521 /* Required for access to Database Listener, Do not remove or modify. */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5000 /* Required for TFA traffic. */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:6200 /* This rule is recommended and enables the Oracle Notification Services (ONS) to communicate about Fast Application Notification (FAN) events. */
343 20580 ACCEPT tcp -- * * 169.254.0.0/16 0.0.0.0/0 state NEW tcp dpt:7070 /* Required for instance management by the Database Service, Do not remove or modify. */
132 7920 ACCEPT tcp -- * * 169.254.0.0/16 0.0.0.0/0 state NEW tcp dpt:7060 /* Required for instance management by the Database Service, Do not remove or modify. */
0 0 ACCEPT tcp -- * * 169.254.0.0/16 0.0.0.0/0 state NEW tcp dpt:22 /* Required for instance management by the Database Service, Do not remove or modify. */
3 424 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 51078 packets, 3218K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * ens4 0.0.0.0/0 0.0.0.0/0
52M 170G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
8003 548K InstanceServices all -- * * 0.0.0.0/0 169.254.0.0/16
Chain InstanceServices (1 references)
pkts bytes target prot opt in out source destination
11 660 ACCEPT tcp -- * * 0.0.0.0/0 169.254.2.0/24 owner UID match 0 tcp dpt:3260 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
1 60 ACCEPT tcp -- * * 0.0.0.0/0 169.254.0.2 owner UID match 0 tcp dpt:3260 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 169.254.0.2 tcp dpt:80 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
678 63323 ACCEPT udp -- * * 0.0.0.0/0 169.254.169.254 udp dpt:53 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 169.254.169.254 tcp dpt:53 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 169.254.0.3 owner UID match 0 tcp dpt:80 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 169.254.0.4 tcp dpt:80 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
2569 195K ACCEPT udp -- * * 0.0.0.0/0 169.254.169.254 udp dpt:123 /* Allow access to OCI local NTP service */
4727 284K ACCEPT tcp -- * * 0.0.0.0/0 169.254.169.254 tcp dpt:80 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
15 4920 ACCEPT udp -- * * 0.0.0.0/0 169.254.169.254 udp dpt:67 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT udp -- * * 0.0.0.0/0 169.254.169.254 udp dpt:69 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 REJECT tcp -- * * 0.0.0.0/0 169.254.0.0/16 tcp /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */ reject-with tcp-reset
0 0 REJECT udp -- * * 0.0.0.0/0 169.254.0.0/16 udp /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */ reject-with icmp-port-unreachable
安全设置的用户责任
本主题介绍了基本数据库服务中安全设置的 Oracle Cloud 操作责任和用户责任。下表提供了 Oracle Cloud 操作和用户需要执行的安全设置列表。
表 - 面向各种运营的 Oracle Cloud 运营和用户责任
操作 | Oracle 云平台 | 用户/租户实例 | ||
---|---|---|---|---|
Oracle Cloud 责任 | 用户责任 | Oracle Cloud 责任 | 用户责任 | |
数据库部署 | 基本数据库服务部署的软件基础结构和指南 |
网络管理:配置云网络基础设施(VCN 和子网、网关等)。 数据库管理:设置数据库要求(内存、存储、计算、数据库版本、数据库类型等)。 |
安装操作系统、数据库和网格基础结构系统(如果选中) | 数据库管理:根据需要,根据工作负载(升级/降级资源)更新 Oracle Database 软件版本、虚拟机要求配置(CPU/内存)、数据存储和恢复存储配置大小资源。 |
MONITORING | 物理安全、基础设施、控制层、硬件故障、可用性、容量 | 不需要 | 支持用户监视用户服务的基础结构可用性。 | 数据库管理:监视用户操作系统、数据库、应用和网格基础结构 |
事件管理和解决 | 事件管理和补救备件和现场调度 | 不需要 | 支持与底层平台相关的任何事件 | 数据库管理:用户应用的事故管理和解决方法 |
补丁程序管理 | 主动为硬件、IaaS/PaaS 控制堆栈打补丁 | 不需要 | 暂存可用补丁程序,例如 Oracle Database 补丁程序集 |
数据库管理:为租户实例打补丁,测试 OS 管理员:为 OS 打补丁 |
备份和还原 | 基础设施和控制平面备份和恢复,重新创建用户虚拟机 | 不需要 | 提供正在运行且用户可访问的虚拟机 | 数据库管理:使用 Oracle 本机或第三方功能对用户 IaaS 和 PaaS 数据进行快照/备份和恢复 |
启用其他安全功能
基本数据库服务提供了以下附加安全功能:
dbcli NetSecurity
dbcli NetSecurity 处理数据在网络中传输时的加密。当数据从 Oracle Database 移至第三方或从服务器移至客户端时,必须在发送者端对其进行加密并在接收者端进行解密。在 NetSecurity 中,在预配和数据库主目录创建操作期间为客户机和服务器配置了默认值。dcs-agent
CLI 界面提供了用于更新这些 NetSecurity 规则以及增强加密算法、完整性算法和连接类型的安全性的命令。
默认情况下,dcs-agent
为数据库主目录配置以下默认规则:
SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1)
SQLNET.ENCRYPTION_CLIENT=REQUIRED
SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1)
有关更新设置的详细信息,请参见 Oracle Database CLI Reference。
OCI Vault 集成
现在,基本数据库服务与所有 OCI 商业区域中的 OCI Vault 服务集成。现在,您可以在 OCI Vault 中创建和管理用于保护数据库的 TDE 主密钥。使用此功能,您可以选择开始使用 OCI Vault 服务来存储和管理主加密密钥。用于保护数据库的 OCI Vault 密钥存储在高可用性、持久性和托管服务中。
注意:
OCI Vault 集成仅适用于 Oracle Database 版本 19.13 及更高版本。通过 OCI Vault 与基本数据库服务的集成,您可以:
- 在基本数据库服务中预配 Oracle 数据库时,通过启用基于 OCI Vault 的密钥加密来集中控制和管理 TDE 主密钥。
- 将您的 TDE 主密钥存储在高可用性、持久性和托管服务中,其中密钥受符合联邦信息处理标准 (Federal Information Processing Standards,FIPS) 140-2 安全级别 3 安全认证的硬件安全模块 (HSM) 保护。
- 定期轮换加密密钥以保持安全合规性,如果人员发生更改,则禁用对数据库的访问。
- 将现有数据库的密钥从 Oracle 管理的密钥迁移到用户管理的密钥。
- 使用您自己的密钥(即 BYOK(自带密钥)),并在使用用户管理的加密创建数据库时使用它们。
注意:
- BYOK 仅适用于容器数据库 (Container Database,CDB)。将为可插入数据库 (PDB) 分配自动生成的新密钥版本。
- 使用用户管理的加密的 Oracle 数据库支持数据库系统克隆、就地还原、异地还原、区域内 Data Guard 配置和特定于 PDB 的操作,例如 PDB 创建和本地克隆。
用于启用 FIPS 的 CLI
Oracle 为商业用户提供了默认提高安全性的工具。此工具用于使 FIPS、SE Linux 和 STIG 能够遵循最严格的标准。
有关更多信息,请参见在数据库系统组件上启用 FIPS、SE Linux 和 STIG。