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

このページでは、マネージド istiod を使用して 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 バージョンを構成する

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