すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:クラスターでサイドカーインジェクションを強制するセキュリティポリシーの有効化

最終更新日:Jun 21, 2026

Container Service for Kubernetes (ACK) のポリシーガバナンス機能は、Kubernetes 環境向けのセキュリティポリシーを提供します。このドキュメントでは、ACK クラスターでこのポリシーを有効にする方法と、その効果について説明します。

背景情報

ポリシーガバナンス

PodSecurityPolicy (PSP) は Kubernetes 1.21 で非推奨になりました。これに対応して、Container Service for Kubernetes (ACK) は、元の PSP ベースのポリシー管理機能をアップグレードしました。ACK は、Open Policy Agent (OPA) ポリシーに基づく Gatekeeper アドミッションコントローラーを使用して機能を拡張しました。これらの拡張には、ポリシー管理ステータスの統計、ログのレポートと取得が含まれます。ACK はまた、より広範な Kubernetes アプリケーションシナリオに対応する、豊富な組み込みのポリシー管理ルールライブラリを提供します。コンソールのシンプルなインターフェイスを使用してルールを設定できます。これにより、ポリシー管理機能を使用するための障壁が低くなります。

ポリシータイプは次のように分類されます。

  • infra: インフラストラクチャ層リソースに関連するポリシー。

  • compliance: Kubernetes 向け Alibaba Cloud セキュリティ強化など、Kubernetes コンプライアンス仕様に基づいてカスタマイズされたポリシー。

  • psp: PSP の機能を置き換えるポリシー。

  • k8s-general: セキュリティのベストプラクティスに基づいて Kubernetes リソース構成にセキュリティ強化の制約を適用する一般ポリシー。

サイドカーインジェクション

アプリケーションのコンテナから機能を抽出し、サイドカープロキシにまとめることができます。このプロキシは、同じ Pod 内の別のコンテナとして実行されます。これらの機能を最大限に活用するには、アプリケーション内の各サービスが、その Pod 内でサイドカープロキシを実行する必要があります。サイドカープロキシは、サービスのすべてのインバウンドおよびアウトバウンド TCP トラフィックをインターセプトし、Service Mesh のコントロールプレーンと通信します。

前提条件

  • クラスターのバージョンが 1.16 以降であること。クラスターをアップグレードするには、「ACK クラスターを手動でアップグレードする」をご参照ください。

  • RAM (Resource Access Management) ユーザーを使用してポリシーを管理する場合、RAM ユーザーに次の権限があることを確認してください:

    • cs:DescribePolicies: ポリシー管理ルールライブラリをリストします。

    • cs:DescribePolicyDetails: ポリシールールテンプレートの詳細を取得します。

    • cs:DescribePolicyGovernanceInCluster: クラスターのポリシー管理詳細を取得します。

    • cs:DescribePolicyInstances: クラスターにデプロイされているポリシーインスタンスのリストを取得します。

    • cs:DescribePolicyInstancesStatus: クラスター内の異なるポリシータイプのインスタンスのデプロイメントステータスを取得します。

    • cs:DeployPolicyInstance: 指定されたクラスターにポリシールールインスタンスをデプロイします。

    • cs:DeletePolicyInstance: 指定されたクラスターのポリシールールインスタンスを削除します。

    • cs:ModifyPolicyInstance: 指定されたクラスターのポリシールールインスタンスを変更します。

    カスタム RAM ポリシーの作成方法の詳細については、「RAM を使用してクラスターとクラウドリソースへのアクセス権限を付与する」をご参照ください。

操作手順

このポリシーを有効にすると、指定した名前空間で Pod を作成しようとしても失敗するか、高リスクのセキュリティ警告と違反監査ログが生成されます。

image
  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[セキュリティ] > [ポリシーガバナンス] を選択します。

  3. ポリシーのガバナンス ページで、プロンプトが表示された場合はコンポーネントをインストールまたはアップグレードします。次に、以下のいずれかの方法でポリシーを有効にします。

    1. セキュリティポリシー一覧からインジェクションを強制するポリシーを有効にする。

      1. マイポリシー タブをクリックして、クラスターにデプロイ可能なすべてのポリシーを表示します。

      2. ポリシーリストで ASMSidecarInjectionEnforced ポリシーを探し、[操作] 列の 有効化 をクリックします。

      3. 次の表に従ってポリシーを設定し、作成 をクリックします。

        パラメーター

        説明

        [操作]

        アクションを選択します。

        • Block:ポリシーのルールに違反する指定されたリソースのデプロイをブロックします。

        • Alert:ポリシーのルールに違反する指定されたリソースのデプロイを許可しますが、対応する違反監査アラートログを生成します。

        [適用範囲]

        ポリシーインスタンスを適用するクラスター内の名前空間を指定します。すべての名前空間にポリシーを適用することもできますが、これは推奨しません。

        [パラメーター]

        このフィールドは空のままにします。

    2. ポリシーインスタンスを直接作成する。

      マイポリシー タブをクリックし、ポリシーインスタンスの作成 をクリックします。ポリシーインスタンスの作成 ダイアログボックスで、パラメーターを設定します。

      パラメーター

      説明

      [ポリシータイプ]

      infra ポリシータイプを選択します。詳細については、「ACK の事前定義済みセキュリティポリシー」をご参照ください。

      [ポリシー名]

      「ポリシー名」ドロップダウンリストから、ASMSidecarInjectionEnforced ポリシーテンプレートを選択します。

      [操作]

      アクションを選択します。

      • Block:ポリシーのルールに違反する指定されたリソースのデプロイをブロックします。

      • Alert:ポリシーのルールに違反する指定されたリソースのデプロイを許可しますが、対応する違反監査アラートログを生成します。

      [適用範囲]

      ポリシーインスタンスを適用するクラスター内の名前空間を指定します。すべての名前空間にポリシーを適用することもできますが、これは推奨しません。

      [パラメーター]

      このフィールドは空のままにします。

  4. ポリシーを検証します。

    1. このテストは、default 名前空間で自動インジェクションが有効になっていないこと、および強制インジェクションポリシーが有効で 操作ブロック に設定されていることを前提としています。

      1. httpbin アプリケーションをデプロイします

      2. ワークロードを確認します。

        Pod の作成に失敗します。

        httpbin Deployment のレプリカステータスは 0/1 と表示され、次のエラーメッセージが表示されます: admission webhook "validation.gatekeeper.sh" denied the request: Pod must contain at least one container or initContainer named 'istio-proxy'

      3. 概要 タブをクリックします。過去 7 日間の操作 リストにブロックレコードが表示されます。

        レコードには、ポリシータイプが infra、ポリシー名が ASMSidecarInjectionEnforced、ポリシーの説明が「Requires ASM sidecar injection for pods」と表示されます。詳細には、メッセージ Pod must contain at least one container or initContainer named 'istio-proxy' が表示されます。

    2. ポリシーを編集し、操作Warning に変更します。

      1. httpbin アプリケーションを再デプロイします。

      2. ワークロードを確認します。

        アプリケーションは正常にデプロイされます。

        [Stateless] ページでは、 httpbin アプリケーションの Pod ステータスが 1/1 になり、アプリケーションは正常に実行されています。

      3. 概要 タブをクリックします。過去 7 日間の操作 リストにアラートレコードが表示されます。

        アラートレコードには、ポリシータイプが infra、ポリシー名が ASMSidecarInjectionEnforced、ポリシーの説明が「Requires ASM sidecar injection for pods」、アクションが [Alert] と表示され、詳細にはメッセージ Pod must contain at least one container or initContainer named 'istio-proxy' が表示されます。