网络策略
Azure
缺省情况下,您可以连接到 NPSaaS 数据库,或者从数据库连接到具有任何 IP 地址或主机名的任何设备。 通过使用 Web 控制台中的网络策略功能,您可以控制 NPSaaS 数据库可以连接到或可以连接到的 IP 地址和主机名的集合。 仅在 Azure 上支持网络策略功能。
-
如果要限制 NPSaaS 实例可访问或可从其访问的目标,请参阅 仅允许来自具有指定 IP 地址和主机名的一组已定义源的连接。
-
如果要限制可以访问 NPSaaS 实例或从中可以访问实例的源,请参阅 仅允许来自本地的连接,并使用 Cloud Object Store 进行备份,装入或卸载数据。
限制
- 网络策略仅支持
IPv4
地址。 - 网络策略最多可支持 1000 个网络策略。
- 网络策略只限制 NPSaaS 数据库的流量。 它们不适用于其他组件,例如 Web 控制台。
外形规格
网络策略由下列各项定义:
通过使用这些外形规格,可以将网络策略创建为 allow
或 block
策略。
阻止并允许策略
块策略
指定阻止您执行以下操作的策略类型:
-
使用任何设备或服务连接到 NPSaaS 数据库。
-
从 NPSaaS 数据库连接到具有 CIDR 指定的范围内的指定主机名或 IP 地址的任何设备或服务。
允许策略
指定允许您执行以下操作的策略:
-
使用任何设备或服务连接到 NPSaaS 数据库。
-
从 NPSaaS 数据库连接到具有 CIDR 指定的范围内的指定主机名或 IP 地址的任何设备或服务。
您可以使用 allow 和 block (deny) 策略的组合,将与 NPSaaS 数据库的连接限制为提供的一组 IP 地址和主机名。
定义网络策略
使用无类域间路由 (CIDR) 定义网络策略
通过 NPSaaS,可以在网络策略中使用无类域间路由 (CIDR) 来指定 IP 地址范围。
CIDR 表示法是 IP 地址及其关联网络掩码的紧凑表示法。
<ip_address>/<prefix_length>
例如,76.168.0.0/24
表示 76.168.0.0
和 76.168.0.62
范围内的 IP 地址
0.0.0.0/0
是允许的 CIDR 表示法的特殊情况。 由于以下原因,请谨慎使用此命令:
-
将
0.0.0.0/0
用作块策略时,将限制进出 NPSaaS 数据库的所有流量。 -
将
0.0.0.0/0
用作允许策略时,允许进出 NPSaaS 数据库的所有流量。
您可以使用 CIDR 范围来表示公共和专用 IP 地址。 使用专用 IP 地址的专用网络或企业网络中的设备或服务具有网关。 这些网关通常具有具有公共 IP 地址的网络接口,这些公共 IP 地址执行网络地址转换 (NAT)。 这允许专用网络中的实体连接到外部服务。
在设置 allow
和 block
策略时,必须使用仅表示网关公共 IP 地址的 CIDR 范围。
请勿指定将专用 IP 地址空间表示为块策略的 CIDR 范围。 您可能会影响数据库的功能。
使用 DNS 主机名定义网络策略
通过 NPSaaS,可以在网络策略中指定 DNS 主机名。
DNS 主机名是分配给充当其网络身份的设备或服务的名称,用于与这些设备或服务进行连接。 DNS 主机名的示例为 cloud.ibm.com
。
如果在策略中使用 DNS 主机名,那么本地 DNS 名称会将主机名解析为 NPSaaS 实例中的单个静态 IP 地址,以便策略可以有效工作。
如果主机名解析为多个 IP 地址,或者如果分配的 IP 地址可以更改 (例如,负载均衡器),请确保在策略中提供这些 IP 地址的 CIDR 范围,而不是 DNS 主机名。
域名服务器 (DNS) 解析
在策略中使用 DNS 主机名时,数据库会尝试使用节点上的本地名称服务器来解析域。 如果使用通常不是由本地名称服务器高速缓存的域名,例如,并非由云基础结构提供者本机提供或由云基础结构提供者提供的服务,那么本地名称服务器无法对其进行解析。
在此类场景中,您可以执行下列其中一项操作:
-
在允许规则中添加 DNS 服务器的 IP 地址,以便数据库可以将主机名解析为其 IP 地址。
-
提供设备或服务所使用的完整 CIDR 范围。
网络策略的评估顺序
首先对 allow 策略进行求值。 然后,deny 策略。
在评估期间,将按照定义策略的顺序 (从第一个策略到最后一个策略) 对每个策略进行评估。
将应用与传入或传出连接匹配的第一个规则,并且将忽略该连接的后续规则。
您可以在 网络策略示例中找到创建策略的示例。
创建和列示网络策略
如果您属于 ADMINISTRATORS
组,那么可以创建网络策略。
要在 NPSaaS Web 控制台中创建和查看现有网络策略,请选择 管理> 设置> 网络策略。 有关使用 Web 控制台创建网络策略的更多信息,请参阅 使用 Web 控制台的网络策略。
示例
以下是如何应用网络策略的示例。
仅允许来自具有指定 IP 地址和主机名的一组已定义源的连接
如果要仅允许从 IP 地址在 CIDR-1,CIDR-2和主机名 H1 和 H2表示的范围内的设备连接到 NPSaaS 数据库,并拒绝来自所有其他源的连接,请执行以下步骤。
-
按从
Rule 1
到Rule 5
的顺序创建策略。Rule 1: CIDR-1 (allow) Rule 2: CIDR-2 (allow) Rule 3: H1 (allow) Rule 4: H2 (allow) Rule 5: 0.0.0.0/0 (deny)
这些规则确保将连接与
Rule 1-4
进行匹配,以确定是否允许这些连接。 如果不允许它们,那么Rule 5
将拒绝它们。如果有人尝试使用主机名
H1
和H2
连接到 NPSaaS 数据库,那么数据库首先尝试将主机名解析为其 IP 地址以完成连接。 由于数据库可能未在本地高速缓存 DNS 条目,因此数据库尝试使用公共 DNS 服务器来解析主机名。 DNS 查找失败,因为规则 5 已就位。 因此,连接尝试失败。 -
将公共授权 DNS 服务器主机名或 CIDR (DNS-1) 添加到允许成功执行 DNS 查找的规则。
Rule 1: CIDR-1 (allow) Rule 2: CIDR-2 (allow) Rule 3: H1 (allow) Rule 4: H2 (allow) Rule 5: DNS-1 (allow) Rule 6: 0.0.0.0/0 (deny)
新规则将添加为 allow 规则 (Rule 5)。
仅允许来自本地的连接,并使用 Cloud Object Store 进行备份,装入或卸载数据
如果希望应用程序或用户仅从其本地网络连接到其 NPSaaS 数据库,请执行以下步骤。
-
使用公共 NAT 网关。
本地网络是专用企业网络,它使用专用 IP 地址空间。 如果应用程序和用户想要连接到本地网络外部的服务,那么他们必须使用公共 NAT 网关。
公共 NAT 网关具有由 CIDR-1 表示的范围内的公共 IP 地址接口,并将企业网络中实例的源 IP 地址替换为 NAT 网关的其中一个公共 IP 地址。
因此,外部应用程序将看到来自由 CIDR-1表示的 NAT 网关的其中一个公共接口的所有流量。
-
将 CIDR-1 添加为
allow
规则 (规则 1)。Rule 1: CIDR-1 (allow)
-
添加 deny all 规则 (Rule 2) 以限制仅源自本地网络的连接。
Rule 1: CIDR-1 (allow) Rule 2: 0.0.0.0/0 (deny)
-
从数据库连接到相应的 Cloud Object Store 端点 (例如 AWS S3 和 Azure Blob Storage)。
如果您希望数据库管理员将数据备份到 Cloud Object Store,并且开发人员在应用程序中使用外部表来装入和卸载数据,那么必须将端点添加到允许列表。
将 AWS S3 端点添加到网络允许策略
例如,如果您在 us-east-1
区域中有一个存储区,并且想要将其用于备份以及装入和卸载外部表,请执行以下步骤。
-
提供表示与 S3 端点关联的完整 IP 地址范围的 CIDR 范围。
要检索特定 AWS 区域中的 S3 端点所使用的 CIDR 范围:
-
遵循 如何查找 Amazon S3所使用的 IP 地址范围? 中的指示信息。
curl https://ip-ranges.amazonaws.com/ip-ranges.json |\ jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="S3") | .ip_prefix' 18.34.0.0/19 54.231.0.0/16 52.216.0.0/15 18.34.232.0/21 3.5.0.0/19 44.192.134.240/28 44.192.140.64/28
-
将 CIDR 范围添加到允许列表。
Rule 1: CIDR-1 (allow) Rule 2: 18.34.0.0/19 (allow) Rule 3: 54.231.0.0/16 (allow) Rule 4: 52.216.0.0/15 (allow) Rule 5: 18.34.232.0/21 (allow) Rule 6: 3.5.0.0/19 (allow) Rule 7: 44.192.134.240/28 (allow) Rule 8: 44.192.140.64/28 (allow) Rule 2: 0.0.0.0/0 (deny)
AWS S3 端点没有与它们关联的单个 IP 地址。 将 S3 端点主机名添加到允许列表可能会产生不一致的结果。
-
-
如果要从任何其他 AWS 服务使用或连接,请将与这些相应服务端点相关联的 CIDR 范围添加到
allow
规则。要检索各种 AWS 服务的 CIDR 范围:
-
遵循 此处 中的指示信息。
-
根据需要将其作为允许规则添加。
-
将 Azure blob 存储端点添加到网络允许策略。
如果您具有存储帐户 (例如,在具有 Azure Blob Storage 的 East US 2
区域中),用于备份以及装入和卸载外部表,请执行以下步骤。
-
提供表示与 Azure Blob Storage 端点关联的完整 IP 地址范围的 CIDR 范围。
要检索特定 Azure 区域中的存储端点所使用的 CIDR 范围:
-
请按照 AzureIP 地址范围通知"{: external}中的说明进行操作。
> $serviceTags = Get-AzNetworkServiceTag -Location eastus2 > $serviceTags.Values | Where-Object { $_.Name -like "Storage*" -and $_.Properties.Region -eq "eastus2" } Name : Storage.EastUS2 System Service : AzureStorage Region : eastus2 Address Prefixes : {13.68.120.64/28, 13.77.112.16/28, 13.77.112.32/28, 13.77.112.112/28…} Change Number : 6 Name : Storage.EastUS2Stage System Service : AzureStorage Region : eastus2 Address Prefixes : 137.116.2.64/27 Change Number : 1
-
将 CIDR 范围添加到允许列表。
Rule 1: CIDR-1 (allow) Rule 2: 13.68.120.64/28 (allow) Rule 3: 13.77.112.16/28 (allow) Rule 4: 13.77.112.32/28 (allow) Rule 5: 13.77.112.112/28 (allow) Rule 6: 137.116.2.64/27 (allow) Rule 2: 0.0.0.0/0 (deny)
-
-
如果要使用或连接任何其他 Azure 服务,请在允许规则中添加与这些服务端点相关联的 CIDR 范围。 检索各种 Azure 服务的 CIDR 范围:
-
请按照 "{: external} 中 的说明操作。
-
根据需要添加 CIDR 范围作为允许规则。
Azure Blob Storage 端点没有与它们关联的单个 IP 地址。 将端点主机名添加到允许列表可能会产生不一致的结果。
-
AWS
默认情况下,NPSaaS 数据库可从任何 IP 地址的任何设备访问。 但是,AWS
针对入口连接的新网络策略功能可让您指定和控制允许连接到 NPSaaS 数据库的 IP 地址,类似于 Azure 网络策略提供的功能。
如何启用
要使用此功能,您必须向 IBM 创建支持票单,并提供要列入白名单的 CIDR 格式的 IPv4 地址或范围列表。
实施此功能后,任何未列入白名单的 IP 地址都将被阻止访问 NPSaaS 数据库。
限制
- 仅支持 IPv4 地址或 CIDR 格式的范围。
- 它不支持允许或阻止出口连接。
- 限制流量仅用于 NPSaaS 数据库,而不适用于 Web 控制台等其他组件。