在代管式控制平面上启用可选功能

本页介绍了如何为受管理的应用启用可选功能 Cloud Service Mesh。如需了解集群内控制平面,请参阅 在集群内控制平面上启用可选功能

预配代管式 Cloud Service Mesh 时,支持的功能会有所不同 基于控制平面实现,并且某些功能 可通过许可名单获取请参阅 支持的功能了解详情。 如果您当前正在使用基于 IstioOperator 的配置,从 IstioOperator 迁移工具可帮助转换为代管式控制平面支持的配置。

Distroless 代理映像

  • 如果您已通过代管式 TRAFFIC_DIRECTOR 直接开始使用 Cloud Service Mesh 控制平面实现 则仅支持 distroless 映像类型。您无法更改此 ID。

  • 如果您的舰队最初使用的是“ISTIOD”控制平面实现,并且 已迁移到 TRAFFIC_DIRECTOR 实现,您的图片类型保持不变 也可以自行将映像类型更改为 distroless

最佳做法是将容器运行时的内容限制为仅包含必要的软件包。此方法可提高常见漏洞和披露 (CVE) 扫描程序的安全性和信噪比。Istio 提供基于 Distroless 基础映像的代理映像。

Distroless 代理映像不包含代理以外的任何二进制文件。因此,无法对 shell 执行 exec 操作或使用 curlping 或其他方法, 以及容器内的调试实用程序不过,你可以使用临时容器 连接到正在运行的工作负载 Pod,以便能够对其进行检查, 命令。有关示例,请参见 收集 Cloud Service Mesh 日志

以下配置可为整个 Cloud Service Mesh 启用 Distroless 映像。映像类型更改要求每个 pod 重启并重新注入才能生效。

     apiVersion: v1
     kind: ConfigMap
     metadata:
       name: istio-release-channel
       namespace: istio-system
     data:
       mesh: |-
         defaultConfig:
           image:
             imageType: distroless

您可以使用以下 pod 注解替换 imageType

sidecar.istio.io/proxyImageType: debug

使用注解更改部署的映像类型后, 重新启动部署

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

由于它不需要调试基础映像,因此大多数类型的代理调试都应使用 gcloud beta container fleet mesh debug proxy-status / proxy-config详情)。

出站流量政策

默认情况下,outboundTrafficPolicy 设置为 ALLOW_ANY。在此模式下 允许向任何外部服务传输流量如需控制流量并将流量限制为仅定义了服务条目的外部服务,您可以将默认行为 ALLOW_ANY 更改为 REGISTRY_ONLY

  1. 以下配置将 outboundTrafficPolicy 配置为 REGISTRY_ONLY:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: istio-release-channel
        namespace: istio-system
      data:
        mesh: |-
          outboundTrafficPolicy:
           mode: REGISTRY_ONLY
    

    其中,release-channel 是您的发布渠道asm-managedasm-managed-stableasm-managed-rapid)。

  2. 您可以使用 以下命令:

    kubectl edit configmap istio-release-channel -n istio-system -o yaml
    
  3. 运行以下命令以查看 configmap:

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  4. 如需验证 outboundTrafficPolicy 是否已启用 REGISTRY_ONLY,请确保 mesh: 部分中显示以下行。

    ...
    apiVersion: v1
    data:
      mesh: |
        outboundTrafficPolicy:
         mode: REGISTRY_ONLY
    ...
    

最终用户身份验证

您可以为基于浏览器的最终用户身份验证和对已部署工作负载的访问权限控制配置代管式 Cloud Service Mesh 用户身份验证。如需了解详情,请参阅配置 Cloud Service Mesh 用户身份验证

为您的工作负载配置最低的 TLS 版本

如果您直接使用托管式 TRAFFIC_DIRECTOR控制平面实现加入了 Cloud Service Mesh,则无法更改此设置。

您可以使用 minProtocolVersion 字段指定工作负载中 TLS 连接的最低 TLS 版本。 如需详细了解如何设置最低 TLS 版本并检查工作负载的 TLS 配置,请参阅 Istio 工作负载最低 TLS 版本配置

下面的示例显示将工作负载的最低 TLS 版本设置为 1.3 的 ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio-release-channel
  namespace: istio-system
data:
  mesh: |-
    meshMTLS:
      minProtocolVersion: TLSV1_3