Gatekeeper コンポーネントを使用すると、Container Service for Kubernetes (ACK) コンソールでセキュリティポリシーを有効化またはカスタマイズして、Pod のデプロイと更新が安全でコンプライアンスに準拠していることを確認できます。
ポリシーガバナンス
Pod Security Policy (PSP) は Kubernetes v1.21 以降、非推奨になりました。ACK は、PSP ベースのポリシー管理機能を再設計しました。Open Policy Agent (OPA) ポリシーを使用する Gatekeeper アドミッションコントローラーをベースに構築されており、ACK は現在、ポリシーガバナンスステータスのモニタリング、ログのレポートと取得などの強化された機能を提供しています。また、ACK には、幅広い Kubernetes アプリケーションシナリオをカバーする、ポリシーガバナンスルールの豊富な組み込みライブラリも含まれています。これらのルールはコンソールのシンプルな UI を通じて設定できるため、ポリシーガバナンス機能を使用する際のハードルが下がります。
前提条件
-
ACK クラスターが作成されます。 詳細については、「ACK クラスターを作成する」をご参照ください。
-
RAM ユーザーをポリシー管理に使用する場合は、その RAM ユーザーが次の権限を持っていることを確認してください。
-
cs:DescribePolicies: ポリシーガバナンスライブラリ内のルールを一覧表示します。 -
cs:DescribePolicyDetails: ポリシールールテンプレートの詳細を取得します。 -
cs:DescribePolicyGovernanceInCluster: クラスターのポリシーガバナンスの詳細を取得します。 -
cs:DescribePolicyInstances: クラスターにデプロイされたポリシーインスタンスのリストを取得します。 -
cs:DescribePolicyInstancesStatus: クラスター内の異なるポリシータイプのインスタンスのデプロイステータスを取得します。 -
cs:DeployPolicyInstance: 指定されたクラスターにポリシールールインスタンスをデプロイします。 -
cs:DeletePolicyInstance: 指定されたクラスターからポリシールールインスタンスを削除します。 -
cs:ModifyPolicyInstance: 指定されたクラスター内のポリシールールインスタンスを変更します。
カスタム RAM ポリシーの作成方法については、「RAM ユーザーまたは RAM ロールに権限を付与する」をご参照ください。
-
制限事項
-
この機能は Linux ノードにのみ適用されます。
-
カスタムポリシールールはサポートされていません。すべてのルールは ACK の組み込みルールライブラリから提供されます。
ステップ 1: ポリシーガバナンスコンポーネントのインストールまたはアップグレード
セキュリティポリシーガバナンス機能を有効にするには、次のコンポーネントをインストールする必要があります。
-
gatekeeper コンポーネント: OPA ポリシーエンジンをベースとした Kubernetes ポリシーアドミッションコントローラー。クラスター内で OPA ポリシーを管理および適用し、名前空間ラベル管理などの機能を実装します。
説明ACK が提供する gatekeeper コンポーネントのみがサポートされています。他のソースから gatekeeper コンポーネントをインストールした場合は、それをアンインストールし、ACK が提供するバージョンを再インストールする必要があります。gatekeeper コンポーネントのバージョン情報については、「gatekeeper」をご参照ください。
-
logtail-ds ログコンポーネント: ポリシー違反によって発生した
denyおよびwarnイベントのログを収集および取得します。 -
policy-template-controller コンポーネント: Alibaba Cloud ポリシーテンプレートをベースに開発された Kubernetes コントローラー。異なるテンプレートからのポリシーインスタンスの管理を簡素化し、クラスターの全体的なガバナンスステータスの監視を支援します。
ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、セキュリティ > ポリシーガバナンス を選択します。
-
ポリシーのガバナンス ページで、画面の指示に従ってコンポーネントをインストールまたはアップグレードします。
ステップ 2: ポリシーガバナンス機能の使用
機能へのアクセス
ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、セキュリティ > ポリシーガバナンス を選択します。
-
ポリシーのガバナンス ページで、プロンプトが表示された場合は、画面の指示に従ってコンポーネントをインストールまたはアップグレードします。その後、必要に応じて操作を実行します。
ポリシーガバナンスステータスの表示
概要 タブをクリックすると、クラスターの現在のポリシーガバナンスのステータスが表示されます。
-
このセクションでは、有効化されたポリシーの概要が表示されます。これには、高リスクおよび中リスクのポリシーの合計数と有効化数、および有効化を推奨するポリシーのリストも表示されます。
-
過去 7 日間の
denyおよびwarnアクションの統計情報。 -
過去 7 日間のポリシー適用レコードです。デフォルトでは、このページのテーブルに、過去 7 日間の最新 100 件の
denyまたはwarnログが表示されます。より多くの監査ログを表示するには、
アイコンの横にある 過去 7 日間の操作 をクリックします。ポップアップウィンドウで Log Service リンクをクリックすると、[Log Service (SLS)] コンソールで指定された Logstore のすべてのログを表示できます。ページ下部のテーブルには、適用時間、ポリシータイプ、ポリシー名、ポリシーの説明、リスクレベル、適用アクション、および詳細の各列が含まれます。
ポリシーインスタンスの作成と管理
マイポリシー タブをクリックし、ポリシーインスタンスの作成 をクリックします。ポリシーインスタンスの作成 ダイアログボックスで、パラメーターを設定します。
|
パラメーター |
説明 |
|
[ポリシータイプ] |
ポリシータイプを選択します。使用可能なカテゴリは次のとおりです。
|
|
[操作] |
|
|
[ポリシー名] |
ドロップダウンリストから、デプロイするポリシーテンプレートを選択します。 |
|
[適用範囲] |
ポリシーインスタンスが適用されるクラスター内の名前空間を選択します。 |
|
[パラメーター] |
|
ポリシーリストとインスタンスの表示
マイポリシー タブをクリックして、クラスターにデプロイ可能なすべてのポリシーを表示します。
リストの右上隅にあるコントロールを使用して、表示されるポリシーをフィルタリングできます。デフォルトでは、有効化されたポリシーが最初に表示されます。ポリシーインスタンス列には、クラスターにデプロイされたポリシーのインスタンス数が表示されます。
ポリシーインスタンスの数がゼロの場合、そのポリシーはクラスターにデプロイされていません。アクション 列の 有効化 をクリックして、ポリシーインスタンスを設定およびデプロイします。ポリシーリストには、[ポリシータイプ]、[ポリシー名]、[説明]、[リスクレベル]、[ポリシーインスタンス]、[操作] の各列が含まれます。有効化されていないポリシーの場合、[操作] 列に [有効化] リンクが表示されます。また、ページの上部には、リスクレベル別のポリシーの統計内訳として [高]、[中]、[低] が表示されます。
-
ポリシーインスタンスの設定を変更するには、アクション 列にある 編集 をクリックします。
ポリシーに複数のデプロイされたインスタンスがある場合、ポリシーインスタンスを表示をアクション列でクリックし、次に編集をクリックして特定のインスタンスを変更します。
-
アクション 列の 削除 をクリックして、クラスター内のポリシーのデプロイ済みインスタンスをすべて削除します。
ポリシーの説明とテンプレートの例の詳細については、「コンテナセキュリティポリシールールライブラリ」をご参照ください。
関連トピック
ポリシーガバナンスがサポートする 4 種類の組み込みルールライブラリ (Compliance、Infra、K8s-general、および PSP) の詳細については、「コンテナセキュリティポリシールールライブラリ」をご参照ください。