マネージド Anthos Service Mesh でオプション機能を有効にする

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

マネージド Anthos Service Mesh をプロビジョニングする場合、デフォルトで有効になっている機能はプラットフォームによって異なります。現在、IstioOperator ベースの構成を使用している場合は、Migrate from IstioOperator ツールを使用してマネージド コントロール プレーンでサポートされる構成に変換できます。

Envoy アクセスログ

次のコマンドを実行して、Envoy アクセス ロギングを有効にします。

  1. 次のコマンドを実行して accessLogFile: /dev/stdout を追加します。

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    data:
      mesh: |-
        accessLogFile: /dev/stdout
    kind: ConfigMap
    metadata:
      name: istio-release-channel
      namespace: istio-system
    EOF
    

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

  2. 次のコマンドを実行して ConfigMap を表示します。

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  3. アクセス ロギングが有効になっていることを確認するには、accessLogFile: /dev/stdout 行が mesh: セクションに表示されていることを確認します。

    ...
    apiVersion: v1
    data:
      mesh: |
        ....
        accessLogFile: /dev/stdout
    ...
    

Cloud Trace を有効にする

次のコマンドを実行して Cloud Trace を有効にします。

  1. 次のコマンドを実行します。

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    data:
      mesh: |-
        defaultConfig:
          tracing:
            stackdriver: {}
    kind: ConfigMap
    metadata:
      name: istio-release-channel
      namespace: istio-system
    EOF
    

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

  2. 次のコマンドを実行して ConfigMap を表示します。

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  3. Cloud Trace が有効になっていることを確認するには、次の行が mesh: セクションに表示されていることを確認します。

    ...
    apiVersion: v1
    data:
      mesh: |
        ....
        defaultConfig:
          tracing:
            stackdriver:{}
    ...
    
  4. プロキシを再起動します。

    現在、トレーサー構成はプロキシ ブートストラップ構成の一部になっているため、トレーサーの更新を取得するためには、各 Pod を再起動して、再挿入する必要があります。たとえば、次のコマンドを使用して Deployment に属する Pod を再起動します。

    kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

サポートされるトレース ヘッダーの詳細については、トレースへのアクセスをご覧ください。

Distroless プロキシ イメージ

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

次の構成では、Anthos Service Mesh 全体で distroless イメージを有効にします。イメージタイプを変更するには、各 Pod を再起動して再挿入する必要があります。

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

distroless プロキシ イメージには、プロキシ以外のバイナリが含まれていません。したがって、シェルで exec を実行することはできません。また、コンテナ内で curlping などのデバッグ ユーティリティを使用することもできません。特定の Deployment でこれらのツールにアクセスする必要がある場合は、次の Pod アノテーションを使用して imageType をオーバーライドできます。

sidecar.istio.io/proxyImageType: debug

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

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

ほとんどの種類のプロキシ デバッグでは、デバッグ ベースイメージを必要としない istioctl proxy-cmd を使用してください。

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

デフォルトでは 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
    ...
    

エンドユーザー認証

デプロイされたワークロードへのブラウザベースのエンドユーザー認証とアクセス制御のためにマネージド Anthos Service Mesh ユーザー認証を構成できます。詳細については、Anthos 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