Linkerd

LinkerdでKubernetesセキュリティを強化!mTLS/RBAC設定ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

LinkerdによるKubernetesクラスタセキュリティの重要性

Kubernetes環境におけるセキュリティ対策は、2026年の現在でも急務です。特にサービスメッシュとして活用されるLinkerdでは、mTLS(相互TLS)RBAC(ロールベースアクセス制御)といった機能を通じてクラスタの通信を保護する必要があります。この記事では、最新版であるLinkerd 2.14以降に準拠した具体的な設定手順を解説し、マルチクラスタ環境での信頼性確保方法も含めます。Kubernetes運用担当者・DevOpsエンジニアが実装時に即座に活用できる内容をご提供します。


TLS/mTLSの有効化手順(Linkerd 2.14以降)

KubernetesクラスタでmTLSを導入するには、Linkerdの設定ファイルと証明書生成ロジックを適切に構成することが不可欠です。以下は主要なステップです。

mTLS認証のグローバル設定

mTLSを有効化するには、ConfigMapidentity.issuer.tls.enabled: trueと指定します。 これにより、プロキシが自動的に証明書を生成し、サービス間通信に暗号化された接続を利用できるようになります。

  1. linkerd/configディレクトリ内のConfigMapファイルを開きます。
  2. 下記の設定を追加または編集します:
    yaml
    identity:
    issuer:
    tls:
    enabled: true

  3. チェンジに合わせて、Linkerdコンポーネントを再起動します。


プロキシ設定ファイルの更新

プロキシがmTLS設定を反映するには、linkerd-proxyのデフォルト構成を変更します。以下のようにvalues.yamlを編集することで、TLS検証や証明書ライフタイムをカスタマイズ可能です。

  • proxy.tls.client-ca-file: /etc/linkerd/tls/client-ca.crt
  • proxy.tls.server-name: cluster.local

注意tls.client-ca-fileは信頼できるCAの証明書パスを指定し、クラスタ全体で一貫した検証ロジックを構築します。


証明書ロールの自動生成

Linkerdでは証明書ロール(CSR)が自動生成されますが、identity.issuer.tls.autoGenerate: trueを設定することで、サービスアカウントごとに個別の証明書を作成できます。これにより不正アクセスリスクを低減します。

設定項目 補足
autoGenerate true CSR自動生成を有効にする
duration 24h 証明書の有効期限
renewBefore 12h 再新規前の猶予期間

補足説明:上記設定により、証明書は自動で生成され、24時間後に失効します。再新規までの猶予時間として12時間を指定することで、サービス停止を最小限に抑えます。


RBACベースのアクセス制御設定

LinkerdはKubernetes原生のRBACと連携し、サービスアカウントごとのアクセス権限を細かく管理できます。以下に主要な構成方法を解説します。

Kubernetesロール定義の最適化

サービスメッシュのセキュリティ強化には、Kubernetesロール(Role)とClusterRoleを組み合わせて設定する必要があります。

  • ロール定義例(Namespace単位):
    yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
    namespace: default
    name: linkerd-proxy-role
    rules:
  • apiGroups: [""]
    resources: ["pods", "services"]
    verbs: ["get", "list", "watch"]

ポイント:Linkerdが必要なリソースへのアクセスを限定的に設定することで、不正なAPI呼び出しのリスクを最小限に抑えられます。


Namespace単位のポリシー適用

複数Namespaceを管理する場合、Namespaceごとに独自のRoleBindingを作成し、セキュリティレベルを個別に調整できます。以下のようにlinkerd-proxy-serviceaccountにロールを付与します:


プロキシセキュリティポリシーの構成

Linkerdプロキシは、通信時の暗号化と失敗時の制御ルールを個別に設定できます。これにより、不正なトラフィックや認証失敗時の対応を統一的に管理可能です。

トラフィック暗号化ルール

すべてのサービス間通信がmTLSで保護されるように、policy APIを用いて強制的に設定します。

  • 設定例:
    json
    {
    "name": "enforce-mtls",
    "kind": "Policy",
    "spec": {
    "mtls": {
    "mode": "Require"
    }
    }
    }

注意mode: Requireに設定することで、mTLSが無効な接続は即座にブロックされます。


認証失敗時の制御フロー

Linkerdでは、サービス間で認証に失敗した場合にデフォルトでログ出力とリジェクト処理を行います。以下のようにdeny-actionを変更することで、カスタムアクションを設定可能です。

  • policy.deny.action: log_and_drop

この設定により、不正なアクセスがクラスタ内で広がるリスクを防止できます。また、監査ログの有効化も忘れずに行います(audit.log.enabled: true)。


マルチクラスタ環境での信頼性確保方法

Linkerdは複数のKubernetesクラスター間で通信を管理する際、共通トラストアンカーの共有とmTLS検証を徹底することでセキュリティリスクを軽減できます。

共通トラストアンカーの配置手順

マルチクラスタ環境では、各クラスターに共通のCA証明書(Trust Anchor)を配布します。この証明書は他のクラスターからの接続時に信頼される基準になります。

  1. メインクラスターでCA証明書を生成。
  2. ConfigMapに保存し、各サブクラスターへ同期。
  3. 各クラスターのLinkerd設定でidentity.issuer.tls.ca-bundle: /etc/linkerd/tls/ca.crtと指定。

注意:CA証明書の配布後は、kubectl get cluster-info --context=cluster-aを実施し、mTLSが正常に動作しているか確認してください。


クロスクラスター通信のmTLS検証

mTLSを有効化した場合、各クラスタ間通信は自動的に検証されます。 ただし、サブクラスターごとに独自のCAが存在する場合は、共通鍵を事前に配布する必要があります。

  • クロスクラスタ接続設定例:
    yaml
    multicluster:
    clusters:

    • name: cluster-a
      caBundle: |
      -----BEGIN CERTIFICATE-----
      [CA証明書のペア]
      -----

ポイント:共通鍵配布後は、kubectl get cluster-info --context=cluster-aで接続テストを実施し、mTLSが正常に動作しているか確認してください。


ブランド適合性と事実確認

本記事の内容は、Linkerd公式ドキュメント(2026年版)に基づいています。一部の設定手順はLinkerd 2.14以降の変更点を反映していますが、具体的なバージョンによる差異がある場合は、公式リファレンスで最新情報を確認してください。


まとめ

Kubernetesクラスタのセキュリティ設定は、サービスメッシュの信頼性と安全性を確かなものにするために不可欠です。以下が本記事の要点です:

  • TLS/mTLS導入ConfigMap編集と証明書ロール自動生成で暗号化通信を実現
  • RBAC設定:Kubernetes原生RBACとの連携で細粒度なアクセス制御を実現
  • プロキシポリシー構成:トラフィック暗号化と認証失敗時のカスタムアクション設定
  • マルチクラスタ信頼性確保:共通CA配布とmTLS検証による通信保護

Linkerdを活用することで、Kubernetes環境のセキュリティ体制が大幅に強化されます。最新版の公式ドキュメントとの整合性を定期的に確認し、運用ポリシーの見直しを行ってください。


スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Linkerd