このページでは、マネージド Anthos Service Mesh のコントロール プレーンでオプション機能を有効にする方法について説明します。クラスタ内のコントロール プレーンについては、クラスタ内のコントロール プレーンでオプション機能を有効にするをご覧ください。
マネージド Anthos Service Mesh をプロビジョニングする場合、デフォルトで有効になっている機能はプラットフォームによって異なります。現在、IstioOperator
ベースの構成を使用している場合は、Migrate from IstioOperator ツールを使用してマネージド コントロール プレーンでサポートされる構成に変換できます。
Envoy アクセスログ
次のコマンドを実行して、Envoy アクセス ロギングを有効にします。
次のコマンドを実行して
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-managed
、asm-managed-stable
またはasm-managed-rapid
)です。次のコマンドを実行して ConfigMap を表示します。
kubectl get configmap istio-release-channel -n istio-system -o yaml
アクセス ロギングが有効になっていることを確認するには、
accessLogFile: /dev/stdout
行がmesh:
セクションに表示されていることを確認します。... apiVersion: v1 data: mesh: | .... accessLogFile: /dev/stdout ...
Cloud Trace を有効にする
次のコマンドを実行して Cloud Trace を有効にします。
次のコマンドを実行します。
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-managed
、asm-managed-stable
またはasm-managed-rapid
)です。次のコマンドを実行して ConfigMap を表示します。
kubectl get configmap istio-release-channel -n istio-system -o yaml
Cloud Trace が有効になっていることを確認するには、次の行が
mesh:
セクションに表示されていることを確認します。... apiVersion: v1 data: mesh: | .... defaultConfig: tracing: stackdriver:{} ...
プロキシを再起動します。
現在、トレーサー構成はプロキシ ブートストラップ構成の一部になっているため、トレーサーの更新を取得するためには、各 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
を実行することはできません。また、コンテナ内で curl
、ping
などのデバッグ ユーティリティを使用することもできません。特定の Deployment でこれらのツールにアクセスする必要がある場合は、次の Pod アノテーションを使用して imageType
をオーバーライドできます。
sidecar.istio.io/proxyImageType: debug
アノテーションを使用して Deployment のイメージタイプを変更した後、Deployment を再起動する必要があります。
kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME
ほとんどの種類のプロキシ デバッグでは、デバッグ ベースイメージを必要としない istioctl proxy-cmd
を使用してください。
アウトバウンド トラフィック ポリシー
デフォルトでは 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 ...
エンドユーザー認証
デプロイされたワークロードへのブラウザベースのエンドユーザー認証とアクセス制御のためにマネージド 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