Anthos でプラットフォームとアプリケーションのセキュリティとガバナンスを改善する方法
Google Cloud Japan Team
※この投稿は米国時間 2023 年 2 月 10 日に、Google Cloud blog に投稿されたものの抄訳です。
現代のあらゆる最新のアプリケーションとプラットフォームにおいて、セキュリティは不可欠な要素です。複数のプラットフォームにまたがって運用されるアプリケーションを保護できるセキュリティ ポリシーを実装しようとする際に、IT 管理者がよく直面するのが、ポリシーの効果的な適用方法がない、またはポリシー違反があっても見つけられないという問題です。また、アプリケーションの運用担当者は、ポリシーのデプロイをリアルタイムで適切にモニタリングする手段がなく、プラットフォーム ポリシーが変更されるたびに問題の原因を把握できずに苦労します。
Anthos は、オンプレミスとパブリック クラウドで動作する安全なコンテナ アプリケーション プラットフォームです。Google Cloud の集中コントロール プレーンに接続され、統合性が高く、運用化が容易なセキュリティ機能を備えており、Kubernetes クラスタのポリシーとセキュリティを自動化します。また、Anthos の Config Sync は、クラスタの状態を 1 つ以上の Git リポジトリと調整します。さらに、Policy Controller を使用すると、クラスタに対して完全にプログラム可能なポリシーを適用できます。こうした機能を Anthos Service Mesh(ASM)および Anthos セキュリティ ダッシュボード(プレビュー版)と併用することで、セキュリティとガバナンスの課題に対処できます。また、管理者と開発者は、プラットフォームとアプリケーションのセキュリティ体制の強化に活用できます。
Anthos を使用して Online Boutique アプリを安全にデプロイし、同時に一元化されたポリシーを適用する方法を、例を挙げて詳しくご紹介します。このアプリケーションは、フロントエンド、カートサービス、チェックアウト サービスなど数々の主要サービスで構成されています。
アプリケーションの運用者になったつもりで考えてみましょう。あなたは、安全なサービス通信をめざしてサービス全体の状態をモニタリングし、「フロントエンド」サービスにサービスレベル目標(SLO)アラートを作成します。また、「カートサービス」を詳しく調査して、顧客の問題解決を図ります。これらすべての業務に、Anthos Service Mesh が役立ちます。Anthos Service Mesh を使うと、トラフィック管理から圧縮メッシュ テレメトリーまで、サービス運用全体をシンプルにできます。また、ゼロトラスト セキュリティ モデルの採用にも役立ちます。アプリケーション自体にほとんど、あるいはまったく変更を加えなくても、サービス間の認証、認可、暗号化、通信を管理できます。
多くのセキュリティ管理者は、ポリシーを複数のプラットフォームに適用し、違反を監査および排除できる機能を求めています。また、クラウドとオンプレミスで実行しているインベントリの全クラスタの構成作業を個別に行うのではなく、ガバナンスを一元化できる方が望ましいと考えています。
こうした目標を達成するために、まず Anthos Policy Controller を使用してポリシーを作成しましょう。Anthos Policy Controller は、オープンソースの Open Policy Agent Gatekeeper プロジェクトをベースに、一般的なセキュリティおよびコンプライアンス管理用にあらかじめ構築されたポリシーの完全なライブラリを備えています。また、Policy Controller にはインストール不要ですぐ使えるポリシー バンドルが付属しており、Kubernetes 標準、業界基準、Google Cloud がおすすめするベスト プラクティスに照らしてクラスタの監査を行えます。
さらに、Policy Controller で「制約」オブジェクトを使用することで、クラスタをポリシーに準拠させることができます。たとえば、アプリケーション内の全サービスにサイドカー プロキシ インジェクションが適用されるよう制約を作成すると、アプリケーションの状況を簡単にモニタリングできるようになります。また、厳格な mTLS でトラフィックを暗号化するよう制約を作成すれば、アプリケーション サービス内のすべての通信を安全に保護できます。
制約を作成したら、Config Sync を使用してクラスタに同期します。GitOps モデルを使用したチーム間の共同作業に Config Sync を活用することで、全般的な開発サイクルを高速化できます。また、複数のポリシーレイヤを適用する際にも役立ちます。たとえば、ポリシーの一部を組織レベルで適用し、残りを特定の名前空間に適用するといったことが可能です。
図 1 は、Anthos の Policy Controller ダッシュボードのスナップショットです。Online Boutique アプリの全サービスが、厳格な mTLS、サイドカー プロキシ インジェクションなどのポリシーに準拠するよう、Anthos クラスタに 7 つの制約が適用されています。
また、ポリシーの適用を行わず、監査のみ行うことも可能です。Policy Controller ダッシュボードは、クラスタのフリートで発生したすべての違反をまとめて確認し、必要に応じてアクションを起こすために活用できます。たとえば、各サービスにきめ細かくアクセス制御を適用することで、アプリケーションのサービスごとにアクセスできるリソースを指定できます。図 2 と 3 では、アプリケーションにポリシー違反(istio-system にデフォルトの拒否認証ポリシーがない)が 1 件あります。特定のサービスに詳細なアクセス制御を設定して問題を解決すると、ポリシー違反ダッシュボードに表示された赤いアラートは非表示になります。
Anthos Policy Controller は継続的な監査を実施するだけでなく、CI / CD のサイクルを通じてリソース構成を分析します。これにより、構成変更の過程で貴重なフィードバックが得られます。また、ポリシー違反の変更をパイプライン内で早期に発見できます。一方、Binary Authorization も便利な Anthos のセキュリティ機能です。デプロイ時のセキュリティ コントロールとして、信頼済みのコンテナ イメージのみを GKE にデプロイできます。開発プロセス中にイメージに対して信頼できる機関による署名を必須にしたり、デプロイ時に署名の検証を強制適用することが可能です。
最後に、Anthos セキュリティ ダッシュボードでは、図 4 のように、フリート全体の Kubernetes ネットワーク セキュリティ、Binary Authorization、mTLS や認証ベースのポリシーなどのメッシュ ポリシーをまとめて確認できます。図 5 のワークロードのセキュリティ構成の詳細は、セキュリティ体制の強化に利用できます。
Google Cloud には、優れたセキュリティ機能があらゆるレベルで組み込まれています。このセキュリティ機能が個別および連携して動作することで、皆様のプラットフォームを危険なエクスプロイトから保護します。Anthos でアプリとインフラストラクチャをモダナイズして、一貫したガバナンスとセキュリティを大規模に実現する詳しい方法については、こちらのウェブサイトをご覧ください。
参考情報
Anthos でアプリケーションのセキュリティを強化する方法を学べるチュートリアル
Google Kubernete Engine と Anthos に関する詳細
Google Cloud Next 2022 で行われた発表とセッション
- シニア プロダクト マネージャー Lisa Shen
- グループ プロダクト マネージャー Ninad Desai