本页面简要介绍了 Google Cloud NetApp Volumes 的安全注意事项。
网络安全注意事项
Google Cloud NetApp Volumes 提供安全的架构框架,其中包含以下隔离的安全层:
项目级安全:管理员使用此管理安全层来管理 NetApp Volumes 资源(例如存储池或卷),所用工具包括 Google Cloud 控制台、Google Cloud SDK 或 API。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 客户端无需公开入站端口,SMB 便可正常运行。
用于访问 Active Directory 的防火墙规则
在所有 Active Directory 网域控制器上,为来自 NetApp Volumes CIDR 范围的流量打开以下端口:
ICMPV4
DNS 53 TCP
DNS 53 UDP
LDAP 389 TCP
LDAP 389 UDP
LDAP (GC) 3268 TCP
SAM/LSA 445 TCP
SAM/LSA 445 UDP
Secure LDAP 636 TCP
Secure LDAP 3269 TCP
W32Time 123 UDP
AD Web Svc 9389 TCP
Kerberos 464 TCP
Kerberos 464 UDP
Kerberos 88 TCP
Kerberos 88 UDP
将防火墙标记附加到 Active Directory 服务器
按照以下说明将防火墙标记附加到您的 Active Directory 服务器。
将防火墙标记附加到您的 Active Directory 服务器:
gcloud compute firewall-rules create netappvolumes-to-activedirectory \ --allow=icmp,TCP:53,UDP:53,TCP:88,UDP:88,UDP:123,TCP:389,UDP:389,TCP:445,UDP:445,TCP:464,UDP:464,TCP:636,TCP:3268,TCP:3269,TCP:9389 \ --direction=ingress \ --target-tags=allow-netappvolumes-to-activedirectory \ --source-ranges=NETAPP_VOLUMES_CIDR \ --network=VPC_NAME
替换以下信息:
NETAPP_VOLUMES_CIDR
:NetApp Volumes CIDRVPC_NAME
:VPC 的名称
将以下标记附加到您的网域控制器:
allow-netappvolumes-to-activedirectory
NFS 协议的卷访问权限控制
NetApp Volumes 通过单个导出政策(最多包含 20 条导出规则)来防范 NFS 协议的访问。导出规则是 IPv4 地址和 IPv4 CIDR 的逗号分隔列表,用于指定哪些客户端有权挂载卷。NetApp Volumes 会按顺序评估导出规则,并在首次匹配后停止。我们建议您按从最具体到最通用的顺序排列导出规则,以获得最佳效果。
您可以使用以下标签页根据 NFS 版本查看政策:
不使用 Kerberos 的 NFS
所有不支持 Kerberos 的 NFS 版本均使用 AUTH_SYS
安全变种。在此模式下,您必须严格管理导出规则,以便仅允许您信任且能够确保用户 ID 和群组 ID 完整性的客户端。
作为一项安全措施,NFS 服务器会自动将使用 UID=0
(root)的 NFS 调用映射到 UID=65535
(匿名),后者对文件系统的权限有限。在创建卷期间,您可以启用 root 访问权限选项来控制此行为。如果您启用 root 访问权限,用户 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 开始图标,然后选择计算机管理。
计算机管理控制台打开后,点击操作 > 连接到其他计算机。
在 Select Computer 对话框中,输入 SMB 共享的 NetBIOS 名称,然后点击 OK。
连接到文件共享后,依次前往 System Tools(系统工具)> Shared Folders(共享文件夹)> Shares(共享内容),查找您的共享内容。
双击共享名称,然后选择共享权限标签页以控制共享的权限。
Windows CLI
打开 Windows 命令行。
连接到文件共享。
fsmgmt.msc /computer=<netbios_name_of_share>
连接到文件共享后,依次前往 System Tools(系统工具)> Shared Folders(共享文件夹)> Shares(共享内容),查找您的共享内容。
双击共享名称,然后选择共享权限标签页以控制共享的权限。
文件访问权限控制
以下部分详细介绍了 NetApp Volumes 文件级访问权限控制。
音量安全防护方式
NetApp 卷为卷提供了两种安全样式,即 UNIX 和 NTFS,以适应 Linux 和 Windows 平台的不同权限集。
UNIX:使用 UNIX 安全样式配置的卷使用 UNIX 模式位和 NFSv4 ACL 来控制文件访问权限。
NTFS:使用 NTFS 安全样式配置的卷使用 NTFS ACL 来控制文件访问权限。
卷的安全模式取决于卷的协议选择:
协议类型 | 音量安全防护方式 |
---|---|
NFSv3 | UNIX |
NFSv4.1 | UNIX |
两者(NFSv3 和 NFSv4.1) | UNIX |
中小型企业 | 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
更改根 inode 的所有权,并使用 chmod
修改文件权限。
适用于 NTFS 格式卷的 SMB 文件访问权限控制
对于 NTFS 类型的卷,我们建议您使用 NTFS 权限模型。每个文件和目录都有一个 NTFS ACL,您可以使用文件资源管理器、icacls
命令行工具或 PowerShell 对其进行修改。在 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 到用户名到安全标识符 |
中小型企业 | UNIX | 安全标识符 | 安全标识符到用户名到用户 ID |
中小型企业 | NTFS | 安全标识符 | 不适用 |
需要进行映射时,NetApp Volumes 会依赖于存储在 Active Directory LDAP 中的数据。如需了解详情,请参阅 Active Directory 用例。
多协议用户映射场景:对 UNIX 卷的 SMB 访问
科学家 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 卷,请使用启用了 Kerberos krb5p 加密的 NFSv4.1,以实现最大安全性。
中小型企业
对于 SMB 卷,请在 Active Directory 政策中启用 AES 加密,并在卷上启用 SMB 加密,以实现最大安全性。
卷复制
NetApp Volumes 可以跨 Google Cloud 区域复制卷,以提供数据保护。由于流量位于 Google Cloud中,因此传输过程是安全的,因为它使用 Google 的网络基础架构,该基础架构的访问权限受到限制,以防止未经授权的拦截。此外,复制流量使用符合 FIPS 140-2 标准的 TLS 1.2 加密。
集成备份
集成式备份会在该服务中创建 NetApp Volumes 的备份。备份流量会使用符合 FIPS 140-2 标准的 TLS 1.2 加密,保留在 Google 的安全网络基础架构中。此外,备份保险柜使用 且归 Google 所有并由 Google 管理的 加密密钥来存储这些备份,从而进一步增强安全性。