このページでは、マネージド 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
することはできません。また、curl
、ping
などのデバッグ ユーティリティを使用することもできません。ただし、エフェメラル コンテナを使用して実行中のワークロード 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
を使用する必要があります(詳細)。
アウトバウンド トラフィック ポリシー
デフォルトでは outboundTrafficPolicy
は ALLOW_ANY
に設定されています。このモードでは、外部サービスへのトラフィックはすべて許可されます。トラフィックを制御し、サービス エントリが定義されている外部サービスのみに制限するには、ALLOW_ANY
のデフォルト動作を REGISTRY_ONLY
に変更します。
次の構成では、
outboundTrafficPolicy
をREGISTRY_ONLY
に構成します。apiVersion: v1 kind: ConfigMap metadata: name: istio-release-channel namespace: istio-system data: mesh: |- outboundTrafficPolicy: mode: REGISTRY_ONLY
release-channel は、リリース チャンネル(
asm-managed
、asm-managed-stable
またはasm-managed-rapid
)です。次のコマンドを使用して、事前に必要な構成の変更を ConfigMap で行うことができます。
kubectl edit configmap istio-release-channel -n istio-system -o yaml
次のコマンドを実行して ConfigMap を表示します。
kubectl get configmap istio-release-channel -n istio-system -o yaml
outboundTrafficPolicy
がREGISTRY_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