コンプライアンス要件を満たし、クラスターのセキュリティを強化するには、ポリシーガバナンス機能を有効にすることを推奨します。 ポリシーガバナンス機能は、インフラ (インフラストラクチャリソース) 、コンプライアンス (Kubernetesセキュリティコンプライアンス) 、PSP (PodSecurityPolicyベースの拡張) 、K8s-general (汎用ポリシー) など、Kubernetesシナリオに適したセキュリティポリシーを提供します。 Container Service for Kubernetes (ACK) コンソールでコンテナ化されたアプリケーションのセキュリティポリシーを有効化またはカスタマイズして、ポッドのデプロイと更新のセキュリティを確認できます。
政策ガバナンスの概要
PSPは、Kubernetes 1.21以降で非推奨としてマークされます。 したがって、ACKは、PSPベースのポリシーガバナンス機能を最適化する。 ACKは、OPAをゲートキーパーのアドミッションコントローラーとして使用して、ポリシーガバナンスのステータスモニタリング、ログ収集、ログ取得などの機能を拡張します。 さらに、Kubernetesシナリオを対象とするより多くのセキュリティポリシーを使用できるように、さまざまなポリシーライブラリが提供されています。 コンソールでセキュリティポリシーを直接設定できます。これにより、ポリシーガバナンスの設定が大幅に簡素化されます。
前提条件
クラスターはKubernetes 1.16以降を実行します。 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: ポリシーガバナンスコンポーネントのインストールまたは更新
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[ポリシーガバナンス] ページで、画面の指示に従ってコンポーネントをインストールまたは更新します。
ポリシーガバナンスを有効にするには、次のコンポーネントをインストールする必要があります。
gatekeeper: OPAベースのKubernetesアドミッションコントローラー。 このコンポーネントを使用して、ACKクラスターでOPAによって実行されるセキュリティポリシーを管理および使用できます。 これにより、名前空間ラベルを管理できます。
説明ACKで提供されるゲートキーパーコンポーネントのみを使用できます。 ACKで提供されないゲートキーパーコンポーネントを使用する場合は、それをアンインストールしてから、ACKで提供されるコンポーネントをインストールします。 gatekeeperコンポーネントのリリースノートの詳細については、「gatekeeper」をご参照ください。
alibaba-log-controller: このコンポーネントを使用して、セキュリティポリシーのコンプライアンスの問題によって生成されたブロッキングまたはアラートイベントを収集および取得できます。
policy-template-controller: Alibaba Cloudセキュリティポリシーテンプレートに基づいて開発されたKubernetesコントローラー。 このコンポーネントを使用して、異なるポリシーテンプレートからデプロイされたACKクラスターおよびポリシーインスタンスのステータスを管理できます。
手順2: ポリシーガバナンス機能の操作
プラットフォーム
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[ポリシーガバナンス] ページで、画面の指示に従ってコンポーネントをインストールまたは更新し、必要に応じて次の操作を実行します。
現在のクラスターのセキュリティポリシーに関する情報の表示
[概要] タブをクリックすると、現在のクラスターのセキュリティポリシーに関する情報を表示できます。
高リスクポリシー、有効化されている高リスクポリシー、中リスクポリシー、および有効化されている中リスクポリシーの数を含む、クラスター内のセキュリティポリシーの概要。 システムが有効にすることを提案するセキュリティポリシーも一覧表示されます。
過去7日間に生成されたブロッキングイベントおよびアラートイベントの数。
過去7日以内に生成された最新の100イベントのレコード。 監査ログの詳細を表示するには、[過去7日間のアクション] の横にあるアイコンをクリックします。 表示されるツールチップで、ハイパーリンクをクリックして、Log ServiceコンソールのLogstoreの詳細ページに移動します。 Logstoreに保存されているログを表示できます。
ポリシーインスタンスの作成と管理
[マイポリシー] タブをクリックします。 次に、[ポリシーインスタンスの作成] をクリックし、[ポリシーインスタンスの作成] ダイアログボックスでパラメーターを設定します。
パラメーター | 説明 |
ポリシータイプ | ポリシータイプを選択します。 有効な値:
詳細については、「」「ACKの定義済みセキュリティポリシー」をご参照ください。 |
ポリシー名 | ドロップダウンリストからポリシー名を選択します。 |
Action |
|
適用範囲 | ポリシーインスタンスを適用する名前空間を選択します。 |
Parameters |
|
現在のクラスターのポリシーとポリシーインスタンスの表示
[マイポリシー] タブをクリックして、現在のクラスター内のすべてのポリシーを表示します。
リストの右上隅にあるフィルター条件をクリックして、ポリシーをフィルター処理できます。 有効なポリシーは、リストの上部に表示されます。 [インスタンス] 列には、各ポリシーにデプロイされたポリシーインスタンスの数が表示されます。
ポリシーインスタンスの数がゼロの場合、対応するポリシーはクラスターにデプロイされません。 ポリシーの [操作] 列の [有効化] をクリックして、ポリシーインスタンスを設定およびデプロイできます。
ポリシーインスタンスの設定を変更するには、[操作] 列の [変更] をクリックします。
ポリシーに複数のポリシーインスタンスがデプロイされている場合は、[操作] 列の [インスタンスの表示] をクリックし、[変更] をクリックして設定を変更できます。
[操作] 列の [削除] をクリックして、ポリシーにデプロイされているすべてのポリシーインスタンスを削除します。
セキュリティポリシーとそのテンプレートの詳細については、「」「ACKの定義済みセキュリティポリシー」をご参照ください。
関連操作: 名前空間またはサービスの削除保護の有効化
手順1: ポリシーガバナンスコンポーネントのインストールまたは更新を実行してポリシーガバナンス機能を有効にした後、ビジネスクリティカルで機密性の高いデータを含む名前空間またはサービスの削除保護を有効にして、誤った名前空間またはサービスの削除によるメンテナンスコストの発生を回避することもできます。 削除保護を有効にすると、削除保護を手動で無効にした後にのみリソースを削除できます。
次のコンテンツでは、既存の名前空間とサービスの削除保護を有効にする方法について説明します。 コンソールの対応するページに移動し、画面の指示に従って他のリソースの削除保護を有効にすることもできます。
既存の名前空間の削除保護を有効にする
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[名前空間とクォータ] をクリックします。
名前空間ページで、管理する名前空間を見つけ、[操作] 列の [編集] をクリックします。 表示されるダイアログボックスで、削除保護を有効にします。
既存のサービスの削除保護を有効にする
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[サービス] ページで、管理するサービスを見つけ、[操作] 列の
を選択します。 表示されるダイアログボックスで、プロンプトに従って削除保護を有効にします。
関連ドキュメント
クラスター検査を設定して、クラスターのワークロード設定で潜在的なセキュリティリスクを特定できます。 詳細については、「」「検査機能を使用してACKクラスターのワークロードのセキュリティリスクを検出する」をご参照ください。