监控应用安全
Google Cloud 在各个级别都内置了强大的安全功能,它们可独立工作,也可相互协作,从而帮助您防范安全问题,包括平台和应用安全保障。不过,利用这样的深度防御,并非总是能轻松选择哪些功能可使您的特定应用受益,也并非总是能轻松评估您的安全政策在运行时的工作情况。为了帮助您实现这一点,Anthos 安全信息中心提供应用当前安全功能的概览视图,还提供更详细的政策审核视图,显示您可在哪里修改安全配置或工作负载来提高安全状况。
本文档为平台和应用运营人员提供了 Anthos 应用安全保障监控的概览。如需详细了解各项安全功能及其监控,请点击后续步骤中的功能文档链接。
Anthos 安全信息中心目前监控 Google Cloud、VMware 和 Bare Metal 上的集群。
所需的角色
如需获得查看和审核应用安全所需的权限,请让管理员向您授予项目的以下 IAM 角色:
-
roles/monitoring.viewer
(Monitoring Viewer
) -
roles/logging.viewer
(Logs Viewer
) -
roles/serviceusage.serviceUsageViewer
(Service Usage Viewer
) -
roles/servicesecurityinsights.securityInsightsViewer
(Security Insights Viewer
)
如需详细了解如何授予角色,请参阅管理访问权限。
这些预定义角色包含查看和审核应用安全所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
查看和审核应用安全需要以下权限:
-
resourcemanager.projects.get
-
opsconfigmonitoring.resourceMetadata.list
-
serviceusage.services.list
-
servicesecurityinsights.projectStates.get
-
如需查看应用安全概览,您必须拥有以下权限:
-
logging.logEntries.list
-
servicesecurityinsights.clusterSecurityInfo.list
-
-
如需审核所有受监控的安全功能的当前状态,您需要拥有以下权限:
-
servicesecurityinsights.clusterSecurityInfo.list
-
servicesecurityinsights.securityViews.get
-
servicesecurityinsights.securityInfo.list
-
servicesecurityinsights.workloadPolicies.list
-
-
如需查看工作负载安全详情,您需要拥有以下权限:
-
monitoring.timeSeries.list
-
logging.logEntries.list
-
servicesecurityinsights.clusterSecurityInfo.get
-
servicesecurityinsights.workloadSecurityInfo.get
-
servicesecurityinsights.securityViews.get
-
servicesecurityinsights.workloadPolicies.list
-
支持的集群
Anthos 安全信息中心支持以下集群类型:
- Google Cloud 上的 GKE 集群
- GKE on VMware
- GKE on Bare Metal
如需监控 Vmware 和 Bare Metal 集群的安全性,您需要启用应用日志记录和监控。请按照 GKE on VMware 和 GKE on Bare Metal 文档中的说明执行此操作。
查看应用安全保障概览
如需在 Google Cloud 控制台中查看 Anthos 安全性信息中心,请执行以下操作:
在要监控的项目中,从 Google Cloud 控制台菜单选择 Anthos - 安全性。
默认情况下,系统会显示政策摘要标签页,其中显示项目中 Anthos 应用安全保障功能的状态,包括指向更多信息和启用功能的链接。功能列在两个标题下:访问权限控制和身份验证。
访问权限控制
本部分介绍所选 Anthos 授权功能的状态。它们是:
- Binary Authorization,让您能够确保仅在集群上部署可信映像。
- Kubernetes 网络政策,用于指定允许哪些 pod 互相通信和与其他网络端点通信。
- Anthos Service Mesh 服务访问权限控制,可让您根据服务账号和请求上下文为您的网格服务配置精细的访问权限控制。
对于项目中未启用的任何功能,您可以点击来启用(或了解如何启用)相应功能。
对于已启用的功能,您可以查看功能的当前状态,并且点击即可查看所选时间范围的更多详细信息,包括根据您的访问权限控制政策和其他感兴趣的事件而遭到拒绝的任何操作。例如在此项目中,由于 Binary Authorization 政策,在过去一小时内,3 个部署在 1 个群集上遭到阻止:
身份验证
本部分显示 Anthos 身份验证功能的状态。目前,此视图显示您是否创建了政策,以在您使用 Anthos Service Mesh 的每个集群中强制执行双向 TLS (mTLS)。mTLS 是一种安全协议,可确保流量在两个服务之间双向安全可信。
请注意,这仅显示您的服务网格是否具有 mTLS 政策。要查看该政策是否能够有效地保护您的流量,以及在运行时是否允许网格中未经加密的流量,您需要访问更详细的政策审核视图,如下一部分中所述。
审核应用安全保障
审核视图会逐个集群地提供当前应用安全状况的更详细的运行时评估。要切换到审核视图,请执行以下操作:
- 选择政策审核标签页。
- 从下拉列表中选择您想要监控的集群和(可选)命名空间。
与在摘要视图中一样,您可以查看所有受监控的安全功能的当前状态。对于 mTLS,您还可以查看您的政策目前是否允许此集群上的服务网格中未加密的流量。如果您在宽松权限模式下的任何位置启用了 mTLS,则可能会发生这种情况 - 该模式使服务能同时接收 mTLS 和明文流量。这样有助于防止在向严格 mTLS 迁移时服务意外中断,但如果您需要在整个网格中进行端到端加密,则应更新此设置。
然后,在工作负载列表中,您可以了解安全功能在工作负载级层的运行情况。对于每个工作负载,您可以查看以下信息:
- 它们是否已强制执行 Kubernetes 网络政策
- 适用于工作负载的 Anthos Service Mesh 服务访问权限控制政策
- 适用于工作负载的 Anthos Service Mesh mTLS 政策 - 宽容(如果您尚未创建任何适用于工作负载的显式政策,则默认为此模式)、停用或严格
查看工作负载安全详细信息
在审核视图工作负载列表中选择各个工作负载,更详细地了解它们在工作负载视图中的安全性。对于每个工作负载,您可以看到以下信息:
- 如果适用,可查看适用于工作负载的每个应用安全保障功能的特定政策定义的链接。
- 一般工作负载详情,包括名称、集群和相关服务。
- 发送至以及来自相应工作负载的服务请求,包括您的政策是否拒绝任何请求。如果请求被拒绝,您可展开细目,在 Cloud Logging 中查看相关日志,从而帮助您排查特定的拒绝问题并找到有关该请求的更有用的信息。
- 如果在您的集群上启用了 Dataplane V2 网络政策日志记录,则此工作负载发送和接收网络政策请求。在下一部分中,您可以详细了解如何查看网络政策信息,并了解它对工作负载有何影响。
- 由此工作负载管理的正在运行的 pod。
使用 Dataplane V2 查看工作负载连接
如果包含工作负载的集群启用了 Dataplane V2,则网络政策请求部分会在工作负载视图中显示。如果将网络政策日志记录配置为记录允许和拒绝的连接,则还会显示工作负载的入站和出站流量,如以下示例所示。
该表还提供了有关 Dataplane V2 网络政策日志记录所记录的连接的其他信息。如需查看特定工作负载的上述信息,请执行以下操作:
- 点击您感兴趣的工作负载对应的表行中的更多操作菜单 。
- 从该菜单中选择您要查看的其他信息:
- 选择在 GKE 中查看以转到 GKE 界面,详细了解该工作负载。
- 选择查看拒绝日志以转到过滤到相关日志条目的 Cloud Logging。
- 选择查看网络政策连接以查看连接图,其中显示了连接的每个方向(出站和入站)观察到的安全状况。示例图如下所示。
根据已部署的网络政策模拟工作负载之间的连接
如果包含工作负载的集群启用了网络政策强制执行,则工作负载视图视图顶部会显示模拟网络政策按钮。通过此功能,您可以模拟正在查看的工作负载是否可以根据当前部署的网络政策的配置分析发送或接收流量。
如需模拟工作负载之间的连接,请执行以下操作:
- 点击要测试流量的工作负载的模拟网络政策按钮。
- 选择工作负载的流量方向(入站或出站)。
- 选择要测试进出流量的命名空间和工作负载。
- 点击模拟。系统会显示一个连接图,其中显示连接的出站流量状态和入站流量的状态。显示的图表与查看使用 Dataplane V2 的工作负载连接时使用的图表类似。
以下是模拟网络政策连接的表单示例:
后续步骤
- 详细了解 Binary Authorization
- 详细了解如何配置 Kubernetes 网络政策
- 详细了解 Anthos Service Mesh 中的应用安全保障: