本页面概述了 Google Cloud NetApp Volumes 的安全性注意事项。
网络安全注意事项
Google Cloud NetApp Volumes 提供了一个安全架构框架,其中包含以下隔离的安全层:
项目级安全性:管理员用于通过 Google Cloud 控制台、Google Cloud SDK 或 API 管理 NetApp Volumes 资源(如存储池或卷)的管理安全性层。IAM 角色和权限可保护此层。如需详细了解项目级安全性,请参阅设置 IAM 权限。
网络级安全性:用于通过网络连接存储 (NAS) 协议(服务器消息块 [SMB] 和网络文件系统 [NFS])访问数据卷的网络层。
您可以通过 Virtual Private Cloud 网络使用 NAS 协议访问卷中的数据。除非您明确使用第三方解决方案来替换 VPC 对等互连路由到您的 VPC,否则只能通过您的 VPC 访问 NetApp Volumes 的所有数据。
在 VPC 中,您可以通过防火墙和设置特定于协议的访问权限控制机制来进一步限制访问权限。
用于控制卷访问权限的防火墙规则
防火墙规则可保护 Google Cloud VPC。如需允许客户端访问 NetApp Volumes,您需要允许特定的网络流量。
NFS 卷访问的防火墙规则
NFS 使用各种端口在客户端和服务器之间进行通信。为确保正常通信并成功挂载卷,您必须在防火墙上启用端口。
NetApp Volumes 充当 NFS 服务器,并公开 NFS 所需的网络端口。确保 NFS 客户端有权与以下 NetApp Volumes 端口通信:
111 TCP/UDP portmapper
635 TCP/UDP mountd
2049 TCP/UDP nfsd
4045 TCP/UDP nlockmgr
(仅限 NFSv3)4046 TCP/UDP status
(仅限 NFSv3)
NetApp Volumes 的 IP 地址会自动从您在网络对等互连期间分配给服务的 CIDR 范围中分配。如需了解详情,请参阅选择 CIDR。
将建议性锁定与 NFSv3 搭配使用
如果您将咨询锁与 NFSv3 搭配使用,则需要在客户端上运行 rpc.statd
守护程序,以支持网络锁管理器。网络锁管理器是一种与 NFS 协同工作的机制,可在网络上提供 System V
样式的咨询文件和记录锁定。您的 NFS 客户端必须为 rpc.statd
打开一个入站端口,以接收网络锁管理器回调。在大多数 Linux 发行版中,当您装载第一个 NFS 共享时,rpc.statd
会启动。它使用随机端口,您可以使用 rpcinfo -p
命令识别该端口。为了使 rpc.statd
更适合防火墙,请将其配置为使用静态端口。
如需为 rpc.statd
设置静态端口,请参阅以下资源:
如果您不使用 NFSv3 咨询锁或网络锁管理器,建议您使用 nolock
装载选项装载 NFSv3 共享。
NFSv4.1 在 NFSv4.1 协议本身内实现锁定功能,该功能通过客户端发起的 TCP 连接在端口 2049 上运行到 NFSv4.1 服务器。客户端无需为入站流量打开防火墙端口。
用于 SMB 卷访问的防火墙规则
SMB 使用各种端口在客户端和服务器之间进行通信。为确保正常通信,您必须在防火墙上启用端口。
NetApp Volumes 充当 SMB 服务器,并公开 SMB 所需的网络端口。确保您的 SMB 客户端可以与以下 NetApp Volumes 端口通信:
445 TCP SMB2/3
135 TCP msrpc
和40001 TCP SMB CA
:仅用于 SMB 3.x 持续可用的共享。对于非持续可用的共享,这些端口不是必需的。
该服务公开端口 139/TCP
,但不使用该端口。
NetApp Volumes 的 IP 地址会自动从您在网络对等互连期间分配给服务的 CIDR 范围中分配。如需了解详情,请参阅选择 CIDR。
您的中小企业客户无需公开入站端口即可使 SMB 正常运行。
用于 Active Directory 访问的防火墙规则
NetApp Volumes 需要访问 Active Directory 政策中配置的 DNS 服务器上的以下端口,才能识别 Active Directory 网域控制器。NetApp Volumes 使用 DNS 查找来发现 Active Directory 域控制器。
ICMPV4
DNS 53 TCP
DNS 53 UDP
在所有 Active Directory 网域控制器上打开以下端口,以允许来自 NetApp Volumes 的 CIDR 范围的流量:
ICMPV4
LDAP 389 TCP
SMB over IP 445 TCP
Secure LDAP 636 TCP
Kerberos 464 TCP
Kerberos 464 UDP
Kerberos 88 TCP
Kerberos 88 UDP
将防火墙标记附加到 Active Directory 服务器
按照以下说明将防火墙标记附加到您的 Active Directory 服务器。
将防火墙规则附加到 Active Directory DNS 服务器:
gcloud compute firewall-rules create netappvolumes-to-dns \ --allow=icmp,TCP:53,UDP:53 \ --direction=ingress \ --target-tags=allow-netappvolumes-to-dns \ --source-ranges=NETAPP_VOLUMES_CIDR \ --network=VPC_NAME
将防火墙规则附加到您的 Active Directory 网域控制器:
gcloud compute firewall-rules create netappvolumes-to-activedirectory \ --allow=icmp,TCP:88,UDP:88,TCP:389,TCP:445,TCP:464,UDP:464,TCP:636 \ --direction=ingress \ --target-tags=allow-netappvolumes-to-activedirectory \ --source-ranges=NETAPP_VOLUMES_CIDR \ --network=VPC_NAME
替换以下信息:
NETAPP_VOLUMES_CIDR
:NetApp Volumes CIDRVPC_NAME
:VPC 的名称
将以下标记附加到您的 DNS 服务器:
allow-netappvolumes-to-dns
将以下标记附加到您的网域控制器:
allow-netappvolumes-to-activedirectory
NFS 协议的卷访问权限控制
NetApp Volumes 通过 NFS 协议使用单个导出政策(最多包含 20 条导出规则)来保护访问权限。导出规则是以英文逗号分隔的 IPv4 地址和 IPv4 CIDR 列表,用于指定哪些客户端有权挂载卷。NetApp Volumes 会按顺序评估导出规则,并在首次匹配后停止。我们建议您按从最具体到最通用的顺序排列导出规则,以获得最佳效果。
使用以下标签页可根据 NFS 版本查看政策:
不含 Kerberos 的 NFS
所有不使用 Kerberos 的 NFS 版本都使用 AUTH_SYS
安全风格。在此模式下,您必须严格管理导出规则,以仅允许您信任且能够确保用户 ID 和群组 ID 完整性的客户端。
作为一项安全措施,NFS 服务器会自动将带有 UID=0
(根)的 NFS 调用映射到 UID=65535
(匿名),后者在文件系统上具有有限的权限。在创建卷期间,您可以启用根访问权限选项来控制此行为。如果您启用根访问权限,用户 ID 0
将保持为 0
。最佳实践是,创建专用导出规则,为知名管理员主机启用 root 访问权限,并为所有其他客户端停用 root 访问权限。
使用 Kerberos 的 NFSv4.1
使用 Kerberos 的 NFSv4.1 使用导出政策和额外的 Kerberos 身份验证来访问卷。您可以配置导出规则,以应用于以下内容:
仅限 Kerberos (
krb5
)Kerberos 签名 (
krb5i
)Kerberos 隐私权 (
krb5p
)
SMB 协议的卷访问权限控制
SMB 使用共享级权限来保护卷访问权限,并要求针对 Active Directory 进行身份验证。通过这些权限,您可以控制谁能通过网络访问共享内容。
创建的卷具有所有人和完全控制共享级权限。您可以使用 Windows 控制台或 Windows CLI 修改共享级权限。
请按照以下说明使用 Windows 控制台或 Windows CLI 修改 SMB 共享级权限:
Windows 控制台
右键点击 Windows“开始”图标,然后选择计算机管理。
计算机管理控制台打开后,依次点击操作 > 连接到另一台计算机。
在选择计算机对话框中,输入 SMB 共享的 NetBIOS 名称,然后点击确定。
连接到文件共享后,依次前往系统工具 > 共享文件夹 > 共享,查找您的共享。
双击共享名称,然后选择共享权限标签页以控制共享的权限。
Windows CLI
打开 Windows 命令行。
连接到文件共享。
fsmgmt.msc /computer=<netbios_name_of_share>
连接到文件共享后,依次前往系统工具 > 共享文件夹 > 共享,查找您的共享。
双击共享名称,然后选择共享权限标签页以控制共享的权限。
文件访问权限控制
以下部分详细介绍了 NetApp Volumes 文件级访问权限控制。
卷安全防护方式
NetApp Volumes 为卷提供两种安全样式:UNIX 和 NTFS,以适应 Linux 和 Windows 平台的不同权限集。
UNIX:配置为使用 UNIX 安全样式的卷使用 UNIX 模式位和 NFSv4 ACL 来控制文件访问权限。
NTFS:以 NTFS 安全样式配置的卷使用 NTFS ACL 来控制文件访问权限。
卷的安全样式取决于为卷选择的协议:
协议类型 | 卷安全防护方式 |
---|---|
NFSv3 | UNIX |
NFSv4.1 | UNIX |
两者(NFSv3 和 NFSv4.1) | UNIX |
SMB | NTFS |
双协议(SMB 和 NFSv3) | UNIX 或 NTFS |
双协议(SMB 和 NFSv4.1) | UNIX 或 NTFS |
对于双协议,您只能在创建卷时选择安全样式。
针对 UNIX 样式卷的 NFS 文件级访问权限控制
客户端成功装载卷后,NetApp Volumes 会使用称为模式位的标准 UNIX 权限模型来检查对文件和目录的访问权限。您可以使用 chmod
设置和修改权限。
NFSv4.1 卷还可以使用 NFSv4 访问权限控制列表 (ACL)。如果文件或目录同时具有模式位和 NFSv4 ACL,则使用 ACL 进行权限检查。这同样适用于同时使用 NFSv3 和 NFSv4.1 协议类型的卷。您可以使用 nfs4_getfacl
和 nfs4_setfacl
设置和修改 NFSv4 ACL。
创建新的 UNIX 样式卷时,root:root
拥有根 inode 的所有权和 0770
权限。由于此所有权和权限设置,非根用户在装载后访问卷时会收到 permission denied
错误。如需为非 root 用户启用对卷的访问权限,根用户必须使用 chown
更改 root inode 的所有权,并使用 chmod
修改文件权限。
NTFS 样式卷的 SMB 文件访问权限控制
对于 NTFS 样式的卷,我们建议您使用 NTFS 权限模型。
每个文件和目录都有一个 NTFS ACL,您可以使用文件资源管理器、icacls
命令行工具或 PowerShell 修改该 ACL。在 NTFS 权限模型中,新文件和文件夹会继承其父文件夹的权限。
多协议用户映射
对于双协议卷,客户端可以使用 NFS 和 SMB 访问相同的数据。通过将卷的安全样式设置为具有 UNIX 或 NTFS 权限来配置卷。
创建双协议 SMB 和 NFS 卷时,我们强烈建议 Active Directory 包含默认用户。当 NFS 客户端发送的 NFS 调用包含 Active Directory 中没有的用户 ID 时,系统会使用默认用户。
然后,NetApp Volumes 会尝试查找名为 pcuser
的用户,该用户充当默认 UNIX 用户。如果找不到该用户,则会拒绝 NFS 调用。
我们建议您在 Active Directory 中创建一个具有以下属性的默认用户:
uid
=pcuser
uidnumber
=65534
cn
=pcuser
gidNumber
=65534
objectClass
=user
根据客户端使用的协议(NFS 或 SMB)和卷的安全样式(UNIX 或 NTFS),NetApp Volumes 可以直接检查用户的访问权限,也可以先将用户映射到其他平台的身份。
访问协议 | 安全防护方式 | 协议使用的身份 | 必需的映射 |
---|---|---|---|
NFSv3 | UNIX | 用户 ID 和群组 ID | 不适用 |
NFSv3 | NTFS | 用户 ID 和群组 ID | 用户 ID 到用户名到安全标识符 |
SMB | UNIX | 安全标识符 | 从安全标识符到用户名再到用户 ID |
SMB | NTFS | 安全标识符 | 不适用 |
如果需要映射,NetApp Volumes 会依赖存储在 Active Directory LDAP 中的数据。如需了解详情,请参阅 Active Directory 使用场景。
多协议用户映射方案:通过 SMB 访问 UNIX 卷
科学家 Charlie E. (charliee) 希望通过 Windows 客户端使用 SMB 访问 NetApp Volumes 卷。由于该卷包含 Linux 计算集群提供的机器生成的结果,因此该卷配置为存储 UNIX 权限。
Windows 客户端向卷发送 SMB 调用。SMB 调用包含用户身份(以安全标识符的形式)。安全标识符无法与用户 ID 和群组 ID 文件权限进行比较,需要进行映射。
为了完成所需的映射,NetApp Volumes 会执行以下步骤:
NetApp Volumes 会要求 Active Directory 将安全标识符解析为用户名,例如将
S-1-5-21-2761044393-2226150802-3019316526-1224
解析为charliee
。NetApp Volumes 会请求 Active Directory 返回
charliee
的用户 ID 和群组 ID。NetApp Volumes 会使用返回的用户 ID 和组 ID,根据文件的所有权用户 ID 和组 ID 检查访问权限。
多协议用户映射方案:NFS 访问 NTFS 卷
工程师 Amal L. 需要使用 NFS 从 Linux 客户端访问卷上的某些数据。由于该卷主要用于存储 Windows 数据,因此配置为 NTFS 安全样式。
Linux 客户端向 NetApp Volumes 发送 NFS 调用。NFS 调用包含用户 ID 和群组 ID 标识符,如果不进行映射,则无法将其与安全标识符相匹配。
为了完成所需的映射,NetApp Volumes 会向 Active Directory 请求用户 ID 的用户名,并返回该用户名的安全标识符,然后使用返回的安全标识符针对所访问文件的所有者安全标识符检查访问权限。
传输加密
NFS
对于 NFS 卷,请使用 NFSv4.1 并启用 Kerberos krb5p 加密,以实现最高安全性。
SMB
对于 SMB 卷,请在 Active Directory 政策中启用 AES 加密,并在卷上启用 SMB 加密,以实现最高安全性。
卷复制
NetApp Volumes 可以跨 Google Cloud 区域复制卷,以提供数据保护。由于流量位于 Google Cloud中,因此传输过程是安全的,因为该过程使用 Google 的网络基础设施,而该基础设施的访问权限受到限制,可防止未经授权的拦截。此外,复制流量使用符合 FIPS 140-2 标准的 TLS 1.2 标准进行加密。
集成式备份
集成备份会在服务中创建 NetApp Volumes 的备份。备份流量会保留在 Google 的安全网络基础设施中,并使用符合 FIPS 140-2 标准的 TLS 1.2 标准加密。此外,备份保险柜会使用 Google-owned and Google-managed encryption key 存储这些备份,以提高安全性。
卷迁移
卷迁移会将数据从源 ONTAP 或 Cloud Volumes ONTAP 系统发送到 NetApp Volumes。源系统与 NetApp Volumes 之间的通信使用符合 FIPS 140-2 标准的 TLS 1.2 标准进行加密。
NetApp Volumes 会启动迁移,并使用以下协议和端口:
ICMP
10000/TCP
11104/TCP
11105/TCP
确保 ONTAP 系统的集群间逻辑接口 (LIF) 与 NetApp Volumes 的迁移 IP 地址之间的任何防火墙都允许使用这些端口。