mTLS と Service Mesh とは何か - サーバ同士の本人確認

中級 | 9分 で読める | 2026.06.14

公式ドキュメント

mTLS とは

mTLS は mutual TLS の略です。日本語では相互TLSと呼ばれます。

通常のHTTPSでは、主にブラウザがサーバ証明書を確認します。

Browser -> Server
Browser checks Server certificate

mTLSでは、通信する両者がお互いの証明書を確認します。

Service A <-> Service B
Service A checks Service B certificate
Service B checks Service A certificate

つまり、サーバ同士が「あなたは本当にそのサービスか」を確認する仕組みです。

なぜサーバ同士の本人確認が必要か

マイクロサービスでは、サービス同士の通信が大量に発生します。

  • 注文サービスが決済サービスを呼ぶ
  • 決済サービスが通知サービスを呼ぶ
  • 在庫サービスが注文サービスに応答する

このとき、ネットワーク内から来たリクエストだから信頼する、という考え方は危険です。

ゼロトラストの考え方では、内部通信でも認証・暗号化・認可を行います。

JWT との違い

JWTとmTLSは役割が違います。

方式主に確認するもの
JWTユーザー、権限、委譲された認可情報
mTLS通信相手のサービス本人性

たとえば、BFFが注文APIを呼ぶとします。

GET /orders HTTP/1.1
Authorization: Bearer user_access_token

JWTで「どのユーザーの権限か」を伝え、mTLSで「この通信相手は本当にBFFか」を確認する、という組み合わせができます。

Service Mesh とは

Service Mesh は、マイクロサービス間通信を共通の仕組みで管理するための基盤です。

代表的な役割は次の通りです。

役割内容
mTLSサービス間通信の暗号化と本人確認
ルーティング通信先や割合を制御
リトライ一時的な失敗に再試行
タイムアウト待ち続けを防ぐ
観測メトリクス、ログ、トレース
認可どのサービスがどこへアクセスできるか制御

アプリケーションコードに毎回これらを書くのではなく、Service Meshの層で共通化します。

ポイント: JWT はアプリケーションレイヤーの認可情報、mTLS は通信相手の本人確認、Service Mesh はそれらを運用しやすくする基盤と考えると整理しやすいです。

ブラウザ認証とは別の層

mTLSやService Meshは、主にサーバ間・サービス間の話です。

ブラウザとBFFの間では、通常はCookieや通常のHTTPSを使います。

Browser -> Cookie over HTTPS -> BFF
BFF -> JWT + mTLS -> API
Service -> mTLS -> Service

つまり、ブラウザにJWTを置くかどうかの問題とは別の層で、サーバ同士の安全な通信を作るための技術です。

いつ必要になるか

mTLSやService Meshは、すべての小さなアプリで必要なわけではありません。

必要性が高くなるのは、次のような場面です。

  • マイクロサービスが多い
  • Kubernetes上で多数のサービスが通信している
  • 内部通信も暗号化したい
  • サービスごとのアクセス制御が必要
  • 監査や可観測性が重要
  • ゼロトラストを強めたい

一方、単体のWebアプリや小規模APIでは、まず通常のHTTPS、Cookie設定、認証認可、ログ設計を固める方が先です。

まとめ

mTLSは、サーバ同士が証明書で相互に本人確認する仕組みです。

Service Meshは、マイクロサービス間通信の認証、暗号化、観測、制御を共通化する基盤です。

  • 通常のHTTPSは主にクライアントがサーバを確認する
  • mTLSは双方が証明書を確認する
  • JWTはユーザーや権限を伝える
  • mTLSはサービス本人性を確認する
  • Service Meshはサービス間通信の運用を支える
  • ブラウザ認証とは別のサーバ間レイヤーの話

参考リソース

  • 公式ドキュメント - mTLS と Service Mesh とは何か - サーバ同士の本人確認 を確認するための一次情報

次に読む記事

← 一覧に戻る
PR
PR
PR
PR