コンプライアンス要件を満たし、クラスタセキュリティを強化するために、[ポリシーガバナンス] 機能を有効にすることをお勧めします。 ポリシーガバナンス機能は、Infra(インフラストラクチャリソース)、Compliance(Kubernetes セキュリティコンプライアンス)、PSP(PodSecurityPolicy ベースの拡張)、および K8s-general(汎用ポリシー)を含む、Kubernetes シナリオに適したセキュリティポリシーを提供します。 Container Service for Kubernetes (ACK) コンソールでコンテナ化アプリケーションのセキュリティポリシーを有効化またはカスタマイズして、ポッドのデプロイと更新のセキュリティを検証できます。
ポリシーガバナンスの概要
PSP は、Kubernetes 1.21 以降では非推奨とマークされています。 そのため、ACK は PSP ベースのポリシーガバナンス機能を最適化します。 ACK は OPA を Gatekeeper アドミッションコントローラーとして使用して、ポリシーガバナンスステータスの監視、ログ収集、ログ取得などの機能を拡張します。 さらに、さまざまなポリシーライブラリが提供されているため、Kubernetes シナリオを対象としたより多くのセキュリティポリシーを使用できます。 コンソールでセキュリティポリシーを直接構成できるため、ポリシーガバナンスの構成が大幅に簡素化されます。
前提条件
クラスタは Kubernetes 1.16 以降を実行しています。 ACK クラスタの更新方法の詳細については、「ACK クラスタを手動で更新する」をご参照ください。
Resource Access Management (RAM) ユーザーとしてセキュリティポリシーを管理する場合は、RAM ユーザーに次の権限が付与されていることを確認してください。
cs:DescribePolicies
: ポリシーをクエリします。// queries policies.cs:DescribePoliceDetails
: ポリシーに関する情報をクエリします。// queries information about a policy.cs:DescribePolicyGovernanceInCluster
: クラスタ内のポリシーに関する情報をクエリします。// queries information about policies in a cluster.cs:DescribePolicyInstances
: クラスタにデプロイされているポリシーインスタンスをクエリします。// queries a policy instance that is deployed in a cluster.cs:DescribePolicyInstancesStatus
: クラスタ内のポリシーインスタンスに関する情報をクエリします。// queries information about policy instances in a cluster.cs:DeployPolicyInstance
: クラスタにポリシーインスタンスをデプロイします。// deploys a policy instance in a cluster.cs:DeletePolicyInstance
: クラスタ内のポリシーインスタンスを削除します。// deletes policy instances in a cluster.cs:ModifyPolicyInstance
: クラスタ内のポリシーインスタンスを変更します。// modifies a policy instance in a cluster.
カスタム RAM ポリシーの作成方法の詳細については、「カスタム RAM ポリシーを作成する」をご参照ください。
使用上の注意
ポリシーガバナンス機能は Linux ノードにのみ適用されます。
カスタムポリシーはサポートされていません。 すべてのポリシーは ACK の組み込みポリシーライブラリからのものです。
ステップ 1: [ポリシーガバナンス] コンポーネントをインストールまたは更新する
ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、目的のクラスタを見つけて名前をクリックします。 左側のウィンドウで、 を選択します。
[ポリシーガバナンス] ページで、画面上の指示に従ってコンポーネントをインストールまたは更新します。
ポリシーガバナンスを有効にするには、以下のコンポーネントをインストールする必要があります。 以下のコンポーネントは無料ですが、ポッドリソースを消費します。
gatekeeper: OPA ベースの Kubernetes アドミッションコントローラー。このコンポーネントを使用すると、ACK クラスタで OPA によって実行されるセキュリティポリシーを管理および使用できます。これにより、名前空間ラベルを管理できます。
説明ACK が提供する gatekeeper コンポーネントのみ使用できます。 ACK が提供していない gatekeeper コンポーネントを使用している場合は、アンインストールしてから、ACK が提供するコンポーネントをインストールしてください。 gatekeeper コンポーネントのリリースノートの詳細については、「gatekeeper」をご参照ください。
loongcollector: このコンポーネントは、セキュリティポリシーのコンプライアンスの問題が原因で生成されたブロックまたはアラートイベントを収集および取得するために使用できます。
policy-template-controller: Alibaba Cloud セキュリティポリシーテンプレートに基づいて開発された Kubernetes コントローラー。このコンポーネントを使用すると、さまざまなポリシーテンプレートからデプロイされた ACK クラスタとポリシーインスタンスのステータスを管理できます。
ステップ 2: [ポリシーガバナンス] 機能を操作する
プラットフォーム
ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、目的のクラスタを見つけて名前をクリックします。 左側のウィンドウで、 を選択します。
[ポリシーガバナンス] ページで、画面の指示に従ってコンポーネントをインストールまたは更新し、必要に応じて次の操作を実行します。
現在のクラスタのセキュリティポリシーに関する情報を表示する
[概要] タブをクリックして、現在のクラスタのセキュリティポリシーに関する情報を表示します。
高リスクポリシーの数、有効になっている高リスクポリシー、中リスクポリシー、および有効になっている中リスクポリシーを含む、クラスタ内のセキュリティポリシーの概要。 システムが有効にすることを推奨するセキュリティポリシーも一覧表示されます。
過去 7 日間に生成されたブロッキングイベントとアラートイベントの数。
過去 7 日間に生成された最新 100 件のイベントのレコード。監査ログの詳細を表示するには、[過去 7 日間のアクション] の横にある
アイコンをクリックします。表示されるツールチップでハイパーリンクをクリックすると、Log Service コンソールの Logstore 詳細ページに移動します。Logstore に保存されているログを表示できます。
ポリシーインスタンスを作成および管理する
[マイポリシー] タブをクリックします。 次に、[ポリシーインスタンスの作成] をクリックし、[ポリシーインスタンスの作成] ダイアログボックスでパラメータを構成します。
パラメータ | 説明 |
[ポリシータイプ] | ポリシータイプを選択します。 有効な値:
詳細については、「ACK の定義済みセキュリティポリシー」をご参照ください。 |
[ポリシー名] | ドロップダウンリストからポリシー名を選択します。 |
[アクション] |
|
[適用範囲] | ポリシーインスタンスを適用する名前空間を選択します。 |
[パラメータ] |
|
現在のクラスタのポリシーとポリシーインスタンスを表示する
[マイポリシー] タブをクリックして、現在のクラスタのすべてのポリシーを表示します。
リストの右上隅にあるフィルタ条件をクリックして、ポリシーをフィルタできます。 有効なポリシーは、リストの上部に表示されます。 [インスタンス] 列には、各ポリシーにデプロイされているポリシーインスタンスの数が表示されます。
ポリシーインスタンスの数がゼロの場合、対応するポリシーはクラスタにデプロイされていません。 ポリシーの [アクション] 列の [有効化] をクリックして、ポリシーインスタンスを構成およびデプロイできます。
ポリシーインスタンスの構成を変更するには、[アクション] 列の [変更] をクリックします。
1 つ以上のポリシーインスタンスがポリシーにデプロイされている場合は、[アクション] 列の [インスタンスの表示] をクリックし、[変更] をクリックして構成を変更できます。
[アクション] 列の [削除] をクリックして、ポリシーにデプロイされているすべてのポリシーインスタンスを削除します。
セキュリティポリシーとそのテンプレートの詳細については、「ACK の定義済みセキュリティポリシー」をご参照ください。
関連操作: 名前空間またはサービスの削除保護を有効にする
ステップ 1: ポリシーガバナンスコンポーネントをインストールまたは更新する を実行して [ポリシーガバナンス] 機能を有効にした後、ビジネスに不可欠な機密データを伴う名前空間またはサービスの削除保護を有効にして、誤って名前空間またはサービスを削除することによって発生するメンテナンスコストを回避することもできます。 削除保護を有効にした後、リソースは手動で削除保護を無効にした後にのみ削除できます。
次のコンテンツでは、既存の名前空間とサービスの削除保護を有効にする方法について説明します。 コンソールの対応するページに移動し、画面の指示に従って、他のリソースの削除保護を有効にすることもできます。
既存の名前空間の削除保護を有効にする
ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、目的のクラスタを見つけて名前をクリックします。 左側のナビゲーションウィンドウで、[名前空間とクォータ] をクリックします。
名前空間ページで、管理する名前空間を見つけて、[アクション] 列の [編集] をクリックします。 表示されるダイアログボックスで、削除保護を有効にします。
既存のサービスの削除保護を有効にする
ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、目的のクラスタを見つけて名前をクリックします。 左側のウィンドウで、 を選択します。
「サービス」ページで、管理するサービスを見つけ、[アクション] 列で
を選択します。 表示されるダイアログボックスで、プロンプトに従って削除保護を有効にします。
参考文献
クラスタ検査を構成して、クラスタのワークロード構成における潜在的なセキュリティリスクを特定できます。 詳細については、「検査機能を使用して ACK クラスタのワークロードのセキュリティリスクを検出する」をご参照ください。