マネージド コントロール プレーンでオプション機能を有効にする

このページでは、マネージド Cloud Service Mesh でオプション機能を有効にする方法について説明します。クラスタ内のコントロール プレーンについては、クラスタ内のコントロール プレーンでオプション機能を有効にするをご覧ください。

マネージド Cloud Service Mesh をプロビジョニングする場合、サポートされる機能はコントロール プレーンの実装によって異なり、特定の機能は許可リストでのみ使用できます。詳しくは、サポートされている機能をご覧ください。現在、IstioOperator ベースの構成を使用している場合は、Migrate from IstioOperator ツールを使用してマネージド コントロール プレーンでサポートされる構成に変換できます。

Distroless プロキシ イメージ

  • マネージド TRAFFIC_DIRECTOR コントロール プレーンの実装を使用して Cloud Service Mesh に直接オンボーディングした場合は、distroless イメージタイプのみがサポートされます。これは変更できません。

  • フリートが元々 ISTIOD コントロール プレーン実装を使用していて TRAFFIC_DIRECTOR 実装に移行された場合、イメージタイプは移行時には変更されないまま残されますが、ユーザー自身で distroless に変更できます。

コンテナ ランタイムの内容は、必要なパッケージのみに制限することをおすすめします。この方法により、セキュリティと共通脆弱性識別子(CVE)スキャナの信号対雑音比が改善されます。Istio は、distroless ベースイメージに基づくプロキシ イメージを提供します。

distroless プロキシ イメージには、プロキシ以外のバイナリが含まれていません。 したがって、コンテナ内でシェルを exec することはできません。また、curlping などのデバッグ ユーティリティを使用することもできません。ただし、エフェメラル コンテナを使用して実行中のワークロード Pod にアタッチし、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

アノテーションを使用して Deployment のイメージタイプを変更した後、Deployment を再起動する必要があります。

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

デバッグ ベースイメージを必要としないため、ほとんどのタイプのプロキシ デバッグでは gcloud beta container fleet mesh debug proxy-status / proxy-config を使用する必要があります(詳細)。

アウトバウンド トラフィック ポリシー

デフォルトでは outboundTrafficPolicyALLOW_ANY に設定されています。このモードでは、外部サービスへのトラフィックはすべて許可されます。トラフィックを制御し、サービス エントリが定義されている外部サービスのみに制限するには、ALLOW_ANY のデフォルト動作を REGISTRY_ONLY に変更します。

  1. 次の構成では、outboundTrafficPolicyREGISTRY_ONLY に構成します。

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

    release-channel は、リリース チャンネルasm-managedasm-managed-stable または asm-managed-rapid)です。

  2. 次のコマンドを使用して、事前に必要な構成の変更を ConfigMap で行うことができます。

    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. outboundTrafficPolicyREGISTRY_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