Skip to content

Cilium Service Mesh 安全测验 ​

本测验用于测试你对 Cilium Service Mesh 中的 mTLS、网络策略、加密、基于 Identity 的安全性和零信任网络的理解。

测验问题 ​

1. Cilium Service Mesh 使用什么技术来实现透明 mTLS? ​

A. Istio sidecar B. SPIFFE/SPIRE 集成 C. Nginx proxy D. HAProxy

显示答案

答案:B. SPIFFE/SPIRE 集成

说明: Cilium Service Mesh 与 SPIFFE(Secure Production Identity Framework for Everyone)和 SPIRE 集成,以实现透明 mTLS。这样可在无需更改应用程序代码的情况下,实现 workload 之间的加密通信。

2. 当认证模式设为 'required' 时,CiliumNetworkPolicy 的行为是什么? ​

A. 无需认证即可允许所有流量 B. 仅允许通过双向认证的流量 C. 仅在认证失败时记录警告 D. 禁用 mTLS

显示答案

答案:B. 仅允许通过双向认证的流量

说明: 当认证模式设为 'required' 时,仅允许成功完成双向认证的流量。认证失败的流量会被阻止。这对于实现零信任安全模型至关重要。

3. 以下哪项不是 Cilium 中 WireGuard 加密的优势? ​

A. 在 kernel 层运行,性能高 B. 自动密钥管理 C. IETF 标准协议 D. ChaCha20Poly1305 加密

显示答案

答案:C. IETF 标准协议

说明: WireGuard 不是标准协议。IPsec 是 IETF 标准协议。不过,WireGuard 内置于 Linux kernel 5.6+,并提供高性能、自动密钥管理和 ChaCha20Poly1305 加密。

4. 在 CiliumNetworkPolicy 中,使用 L7 HTTP 规则限制特定路径和方法的正确配置是什么? ​

A. 在 toEndpoints 中指定路径和方法 B. 在 toPorts.rules.http 中指定方法和路径 C. 直接在 ingress.http 中指定 D. 在 spec.http 中定义规则

显示答案

答案:B. 在 toPorts.rules.http 中指定方法和路径

说明: 在 CiliumNetworkPolicy 中,L7 HTTP 规则定义在 toPorts 部分的 rules.http 下。在此处可以指定方法(GET、POST 等)和路径(支持 regex),以实现细粒度访问控制。

5. Cilium 基于 Identity 的安全性的主要优势是什么? ​

A. 不受 IP 地址变化影响 B. 因基于 MAC 地址而更安全 C. 可以手动管理 ID D. 支持 VLAN tagging

显示答案

答案:A. 不受 IP 地址变化影响

说明: Cilium Identity 基于 Pod labels 生成,因此即使 Pod 重启且其 IP 地址发生变化,也会保持相同的 Identity。这克服了基于 IP 的安全策略的局限性。

6. 在 Cilium 中,使用 DNS L7 策略限制外部域名访问时使用哪些规则? ​

A. toFQDNs 和 dns 规则的组合 B. 仅 toEndpoints C. 仅 toCIDR D. 仅 toEntities

显示答案

答案:A. toFQDNs 和 dns 规则的组合

说明: 外部域名访问限制分两步配置:1) 使用 DNS L7 规则(toPorts.rules.dns)仅允许特定域名查询;2) 使用 toFQDNs 允许实际连接到这些域名。此组合可对 workload 的外部访问提供细粒度控制。

7. 使用 CiliumClusterwideNetworkPolicy 实施默认拒绝策略时,通常需要允许哪些流量? ​

A. 所有外部流量 B. DNS 查询和 host 网络流量 C. 所有互联网流量 D. 仅特定 IP 范围

显示答案

答案:B. DNS 查询和 host 网络流量

说明: 实施默认拒绝策略时,至少需要允许到 kube-dns(端口 53/UDP)的 DNS 查询和 host 网络流量(reserved:host),以使集群正常运行。否则,服务发现和 node 通信将无法进行。

8. SPIRE 中 workload attestation 的作用是什么? ​

A. 签发证书 B. 验证 workload Identity C. 应用网络策略 D. 加密流量

显示答案

答案:B. 验证 workload Identity

说明: Workload attestation 是 SPIRE Agent 验证 workload Identity 的过程。在 Kubernetes 环境中,它会验证 Pod 的 service account、namespace、labels 等,以便向该 workload 签发相应的 SVID(SPIFFE Verifiable Identity Document)。

9. 在 audit mode 中测试网络策略时,Cilium 的行为是什么? ​

A. 阻止所有流量 B. 记录策略违规,但允许流量 C. 完全禁用策略 D. 仅发送告警

显示答案

答案:B. 记录策略违规,但允许流量

说明: 在 audit mode(cilium.io/audit-mode: "true" annotation)中,违反策略的流量不会被阻止,只会被记录。这样可以在将新策略应用到生产环境之前评估其影响。

10. 在三层架构中实施 microsegmentation 时,backend 服务的正确策略是什么? ​

A. 允许所有流量 B. 仅允许来自 frontend 的 ingress,并且仅允许到 database 的 egress C. 阻止所有 ingress D. 允许互联网访问

显示答案

答案:B. 仅允许来自 frontend 的 ingress,并且仅允许到 database 的 egress

说明: 在 microsegmentation 中,backend 服务遵循最小权限原则:仅允许来自 frontend 层的 ingress,并且仅允许到 database 层的 egress。这样可以明确定义和控制各层之间的流量。

11. 以下哪项正确描述了 Cilium 中 IPsec 和 WireGuard 加密的差异? ​

A. 只有 IPsec 在 kernel 中运行 B. WireGuard 需要手动密钥管理 C. IPsec 是 IETF 标准,WireGuard 是非标准协议 D. 只有 WireGuard 支持 node-to-node 加密

显示答案

答案:C. IPsec 是 IETF 标准,WireGuard 是非标准协议

说明: IPsec 是 IETF 标准协议,而 WireGuard 是非标准协议。两者都在 kernel 中运行,WireGuard 提供自动密钥管理。两者都支持 node-to-node 加密。

12. 使用 Hubble 监控策略违规时使用哪个命令? ​

A. hubble observe --verdict FORWARDED B. hubble observe --verdict DROPPED C. hubble policy list D. hubble status --violations

显示答案

答案:B. hubble observe --verdict DROPPED

说明:hubble observe --verdict DROPPED 命令监控被网络策略拒绝(DROPPED)的流量。这样可以实时检测和分析策略违规。

向文档提问

按 Enter 发送,按 Shift+Enter 换行。