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

Container Compute Service:Pod セキュリティポリシーを設定するためのポリシーガバナンスの使用

最終更新日:Dec 27, 2024

Gatekeeper は、Open Policy Agent (OPA) をアドミッションコントローラーとして使用して、Kubernetes のシナリオに適したセキュリティポリシーを適用します。Container Service for Kubernetes (ACK) クラスタに Gatekeeper コンポーネントが導入されると、ACK コンソールでセキュリティポリシーを有効化またはカスタマイズして、Pod のデプロイと更新のセキュリティを検証できます。

ポリシーガバナンスの概要

PodSecurityPolicy (PSP) は、Kubernetes 1.21 以降では非推奨とマークされています。そのため、ACK は PSP ベースのポリシーガバナンス機能を最適化しています。ACK は、OPA を Gatekeeper アドミッションコントローラーとして使用して、ポリシーガバナンスの状態監視、ログ収集、ログ取得に関連する機能を拡張します。さらに、さまざまなポリシーライブラリが提供されており、Kubernetes のシナリオに適したより多くのセキュリティポリシーを使用できます。コンソールでセキュリティポリシーを直接設定できるため、ポリシーガバナンスの設定が大幅に簡素化されます。

前提条件

  • ACK マネージドクラスタまたはACK 専用クラスタが作成されており、クラスタで Kubernetes 1.16 以降が実行されていること。詳細については、ACK 専用クラスタの作成またはACK マネージドクラスタの作成を参照してください。ACK クラスタの更新方法の詳細については、ACK クラスタの更新を参照してください。

  • Resource Access Management (RAM) ユーザーとしてセキュリティポリシーを管理する場合は、RAM ユーザーに次の権限が付与されていることを確認してください。

    • cs:DescribePolicies: ポリシーをクエリします。

    • cs:DescribePoliceDetails: ポリシーに関する情報をクエリします。

    • cs:DescribePolicyGovernanceInCluster: クラスタ内のポリシーに関する情報をクエリします。

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

    • cs:DescribePolicyInstancesStatus: クラスタ内のポリシーインスタンスに関する情報をクエリします。

    • cs:DeployPolicyInstance: クラスタにポリシーインスタンスをデプロイします。

    • cs:DeletePolicyInstance: クラスタ内のポリシーインスタンスを削除します。

    • cs:ModifyPolicyInstance: クラスタ内のポリシーインスタンスを変更します。

    カスタム RAM ポリシーの作成方法の詳細については、カスタム RAM ポリシーの作成を参照してください。

考慮事項

  • ポリシーガバナンス機能は、Linux ノードにのみ適用されます。

  • ポリシーガバナンス機能では、カスタムポリシーを設定できません。ACK の定義済みポリシーのみを使用できます。

手順 1: ポリシーガバナンスコンポーネントをインストールまたは更新する

ポリシーガバナンス機能を有効にするには、次のコンポーネントをインストールする必要があります。

  • gatekeeper: OPA ベースの Kubernetes アドミッションコントローラー。このコンポーネントを使用して、ACK クラスタで OPA によって実行されるセキュリティポリシーを管理および適用できます。これにより、名前空間ラベルを管理できます。

    説明

    ACK が提供する gatekeeper コンポーネントのみを使用できます。ACK が提供していない gatekeeper コンポーネントを使用している場合は、アンインストールしてから、ACK が提供するコンポーネントをインストールしてください。gatekeeper コンポーネントのリリースノートの詳細については、gatekeeper を参照してください。

  • logtail-ds: ログコンポーネント。このコンポーネントを使用して、セキュリティポリシーのコンプライアンスの問題によって生成されたブロッキングイベントまたはアラートイベントを収集および取得できます。

  • policy-template-controller: Alibaba Cloud セキュリティポリシーテンプレートに基づいて開発された Kubernetes コントローラー。このコンポーネントを使用して、ACK クラスタと、さまざまなポリシーテンプレートからデプロイされたポリシーインスタンスの状態を管理できます。

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

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

  3. ポリシーガバナンスページで、画面上の指示に従ってコンポーネントをインストールまたは更新します。

手順 2: ポリシーガバナンス機能を操作する

プラットフォーム

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

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

  3. ポリシーガバナンスページで、画面上の指示に従ってコンポーネントをインストールまたは更新し、必要に応じて次の操作を実行します。

現在のクラスタのセキュリティポリシーに関する情報を表示する

概要タブをクリックして、現在のクラスタのセキュリティポリシーに関する情報を表示できます。

  • クラスタのセキュリティポリシーの概要。高リスクポリシーの数、有効になっている高リスクポリシー、中リスクポリシー、有効になっている中リスクポリシーなどが含まれます。システムが有効にすることを推奨するセキュリティポリシーも一覧表示されます。

  • 過去 7 日間に生成されたブロッキングイベントとアラートイベントの数。

  • 過去 7 日間のポリシー適用レコード。デフォルトでは、テーブルには過去 7 日間の最新の 100 件のブロッキングイベントまたはアラートイベントが表示されます。より多くのイベントを表示するには、未知過去 7 日間のアクションの横にある 策略实施总览 アイコンにポインタを移動し、ポップアップメッセージの Simple Log Service ハイパーリンクをクリックして Simple Log Service コンソールにログインし、対応するログストアのすべてのログを表示します。

ポリシーインスタンスを作成および管理する

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

パラメータ

説明

ポリシータイプ

ポリシータイプを選択します。有効な値:

  • Infra: このタイプのポリシーは、インフラストラクチャリソースに対するセキュリティ制御を適用するために使用されます。

  • コンプライアンス: このタイプのポリシーは、Alibaba Cloud Kubernetes セキュリティ強化などのセキュリティ強化機能で定義されたセキュリティベースラインに Kubernetes が準拠していることを確認するために使用されます。

  • PSP: このタイプのポリシーは、PSP リソースを置き換えるために使用されます。

  • K8s-general: このタイプのポリシーは、Alibaba Cloud セキュリティベストプラクティスの標準に基づいて Kubernetes リソースに対するセキュリティ制御を適用するために使用されます。

アクション

  • ブロック: ポリシーに一致するリソースデプロイをブロックします。

  • アラート: ポリシーに一致するリソースデプロイに対してアラートを生成します。リソースデプロイは引き続き実行できます。

ポリシー名

ドロップダウンリストからポリシー名を選択します。

適用範囲

ポリシーインスタンスを適用する名前空間を選択します。

パラメータ

  • エディタが空の場合は、ポリシーにパラメータは必要ありません。

  • エディタにパラメータが表示されている場合は、説明に基づいてパラメータを設定します。

現在のクラスタのポリシーとポリシーインスタンスを表示する

マイポリシータブをクリックして、現在のクラスタのすべてのポリシーを表示します。

リストの右上隅にあるフィルタ条件をクリックして、ポリシーをフィルタできます。有効なポリシーは、リストの上部に表示されます。[インスタンス] 列には、各ポリシーにデプロイされているポリシーインスタンスの数が表示されます。

ポリシーインスタンスの数がゼロの場合は、対応するポリシーはクラスタにデプロイされていません。ポリシーの アクション列の 有効化をクリックして、ポリシーインスタンスを設定およびデプロイできます。策略规则说明

  • ポリシーインスタンスの設定を変更するには、アクション列の 変更をクリックします。

    1 つのポリシーに複数のポリシーインスタンスがデプロイされている場合は、アクション列の インスタンスの表示をクリックし、変更をクリックして設定を変更できます。

  • ポリシーにデプロイされているすべてのポリシーインスタンスを削除するには、アクション列の 削除をクリックします。

セキュリティポリシーとそのテンプレートの詳細については、ACK の定義済みセキュリティポリシーを参照してください。

参考資料