コンテンツに移動
Containers & Kubernetes

新しい PCI DSS ポリシー バンドルで Kubernetes クラスタを強化し、ワークロードのコンプライアンスを大規模にモニタリングする

2023年2月16日
https://storage.googleapis.com/gweb-cloudblog-publish/images/containers_2022.max-2500x2500.jpg
Google Cloud Japan Team

※この投稿は米国時間 2023 年 2 月 9 日に、Google Cloud blog に投稿されたものの抄訳です。

PCI DSS は、PCI Security Standards Council で採択された一連のネットワーク セキュリティおよびビジネス上のベスト プラクティス ガイドラインによって構成され、お客様の支払いカード情報を保護するための「最小限のセキュリティ基準」が設定されています。Google Cloud は少なくとも年に 1 回、第三者監査を実施し、PCI DSS に照らして個々のプロダクトの認証を受けています。お客様はこうした証明書に基づいて、アプリケーションのコンプライアンスを測定できます。このブログ投稿では、新しいアプリケーションと既存のアプリケーションを評価して PCI DSS のコンプライアンス状況を確認できるようにします。

Policy Controller を使用すると、クラスタに対して完全にプログラム可能なポリシーを適用できます。ポリシー バンドルは、すぐに使える一連の制約で、Google Cloud によって作成、管理されます。ポリシー バンドルにより、Kubernetes 基準、業界基準、Google Cloud 推奨のベスト プラクティスに照らしてクラスタ リソースを監査できます。多くのポリシー バンドルはすぐに利用可能であり、新規ユーザーでも既存ユーザーでもそのまま、つまり 1 行もコードを記述することなく簡単に使用できます。Policy Controller ダッシュボードを使用して、クラスタのフリートに対するポリシー バンドルのカバレッジとコンプライアンスの状況を確認することもできます。

PCI DSS v3.2.1 ポリシー バンドル

組織のセキュリティ管理者は、PCI DSS ポリシー バンドルの違反を確認することで、PCI DSS の要件に対するアプリケーションの対応状況を確認できます。PCI DSS バンドルの各制約には PCI DSS コントロール番号も設定されており、この番号を PCI の要件にマッピングできます。このマッピングはコンプライアンス報告時に必要に応じて使用できます。違反リストを表示する方法については、この投稿の次のセクションで説明します。

PCI DSS v3.2.1 ポリシー バンドルのポリシーは、次の分野に焦点を当てています。

安全なネットワークとシステム

  1. すべてのアプリに特定の監査ラベルを含めることを必須にすることで、ファイアウォールの要件を保証します。

  2. すべてのアプリに特定のアノテーションを含めることを必須にすることで、ネットワーク制御の要件を保証します。

  3. クラスタで定義されているすべての名前空間に NetworkPolicy が必要です。

  4. RoleBinding リソースに有効な app.kubernetes.io/managed-by= ラベルが必要です。

  5. デフォルトのサービス アカウントを使用したリソースの作成を制限します。

  6. Pod がデフォルトの名前空間を使用できないようにします。

安全なシステムとアプリケーション

  1. すべての PeerAuthentication が厳格な mTLS を上書きできないようにします。

  2. アンチウイルス DaemonSet が必要です。

  3. Anthos Config Management のプレゼンスと有効化を適用します。

  4. BackendConfig リソースに Cloud Armor の構成を適用します。

高度なアクセス制御とモニタリング

  1. basic-auth タイプのシークレットの使用を制限します。

  2. Container-Optimized OS を OS イメージとして確実に使用することで、ノード上での一貫性のある正確な時間を確保します。

PCI DSS v3.2.1 ポリシー バンドルを使用する

PCI DSS v.3.2.1 ポリシー バンドルは、Policy Controller v1.14.0 以降がインストールされている Anthos クラスタにインストールできます。含まれているポリシーは、デフォルトでは「監査」モードで構成されているので、既存または新しいワークロードに影響しません。ポリシー バンドルを適用するには、kubectl(以下で手順を説明します)、kpt、または Config Sync を使用できます。

1. Google Cloud CLI をインストールして初期化します。これにより、この手順で使用する gcloud コマンドと kubectl コマンドが提供されます。Cloud Shell を使用する場合、Google Cloud CLI がプリインストールされています。

2. 参照制約Policy Controller 制約テンプレート ライブラリを有効にして、Anthos クラスタに Policy Controller をインストールします。

3. 次の YAML マニフェストを policycontroller-config.yaml という名前のファイルに保存します。このマニフェストでは、特定の種類のオブジェクトを監視するように Policy Controller を構成します。

注: gatekeeper-system 名前空間にすでに既存の構成がある場合は、変更を維持するため、以前にカスタマイズした設定をすべて含める必要があります。

読み込んでいます...

4. policycontroller-config.yaml マニフェストを適用します。

読み込んでいます...

4. kubectl でポリシーの制約をプレビューします。

読み込んでいます...

5. kubectl でポリシーの制約を適用します。

読み込んでいます...

出力は次のようになります。

読み込んでいます...

6. ポリシーの制約がインストールされていることを確認し、クラスタ全体で違反の存在を確認します。

読み込んでいます...

出力は次のようになります。

読み込んでいます...

違反を修正するためには、リソースの yaml を更新することをおすすめします。ガイドラインをご覧ください。違反には、その違反の修正手順も含まれています。修正手順は CLI と Policy Controller ダッシュボードの両方から確認できます。

Policy ダッシュボードで PCI DSS ポリシー バンドルの違反を確認する

クラスタでの違反は、Policy Controller ダッシュボードを使用して UI からも確認できます。
https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Kubernetes_clusters.max-2000x2000.jpg

クラスタで PCI DSS ポリシー バンドル違反をモニタリングする

PCI DSS ポリシー バンドルは、デフォルトで適用アクションが dryrun に設定されています。この構成では、リソースをブロックまたは中止することなく Policy Controller で違反が表示されます。これにより、クラスタの監査、ワークロード オーナーとの違反の共有、重要なセキュリティ問題を共同で修正することが可能になります。

すべてのポリシー違反は自動的に Cloud Logging に記録され、ログ エクスプローラで以下のフィルタを適用して見つけることができます。
読み込んでいます...

また、ポリシー違反が発生するたびに通知を受け取るようにするため、Cloud Monitoring を使用してログベースのアラートを設定することもできます。

Policy Controller には、制約の数、制約テンプレート、検出された監査違反などをはじめとする、ポリシーの使用に関連する指標が含まれています(公開された指標のリストを参照)。インストール時にこれらの指標を Cloud Monitoring と Prometheus にエクスポートできます(ブログ投稿ドキュメント)。また、指標に基づいてアラートを設定することもできます。

まとめ

Policy Controller により、Google によって作成、管理されるポリシー バンドルカスタム ポリシーの両方をクラスタに適用できます。これにより、Kubernetes API に対する変更がセキュリティ、運用、コンプライアンスの管理に違反することを防止しますまた、Kubernetes クラスタへのデプロイ前にコンプライアンスを確認するために構成を分析するときに、必要に応じて Policy Controller を使用できます。

使ってみる

Anthos Policy Controller の使用を開始する際は、Policy Controller をインストールし、Google によって作成、管理されている他のポリシー バンドルを試してみることが最も簡単です。


- Google Cloud、プロダクト マネージャー Poonam Lamba
Google Cloud、テクニカル ソリューション コンサルタント Andrew Peabody
投稿先