アプリケーションのセキュリティのモニタリング

Google Cloud には、すべてのレベルに組み込まれた強力なセキュリティ機能が備わっています。これらの機能は個別に動作し、連携することによってプラットフォームとアプリケーションのセキュリティの両方を含むセキュリティの問題からユーザーを保護します。しかし、このような詳細な防御のため、特定のアプリケーションにとってメリットのある機能を選択する、またはランタイムでのセキュリティ ポリシーの動作を評価することが必ずしも容易ではありません。これを支援するため、Anthos Security Dashboard は、アプリケーションの現在のセキュリティ機能を一目で確認できるビューとともに、セキュリティ構成またはワークロードを変更してセキュリティ対策を強化することが可能な対象箇所を確認できる、より詳細なポリシー監査ビューを備えています。

このドキュメントでは、プラットフォームとアプリケーションのオペレータを対象に、Anthos アプリケーションのセキュリティ モニタリングの概要を説明します。各セキュリティ機能とそのモニタリングの詳細については、次のステップにある機能ドキュメントへのリンクをクリックしてください。

現在、Anthos セキュリティ ダッシュボードは Google Cloud、VMware、ベアメタル上のクラスタをモニタリングしています。

必要なロール

アプリケーション セキュリティの表示と監査に必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。

  • roles/monitoring.viewer (Monitoring Viewer)
  • roles/logging.viewer (Logs Viewer)
  • roles/serviceusage.serviceUsageViewer (Service Usage Viewer)
  • roles/servicesecurityinsights.securityInsightsViewer (Security Insights Viewer)

ロールの付与の詳細については、アクセスの管理をご覧ください。

これらの事前定義ロールには、アプリケーションのセキュリティの表示と監査に必要な権限が含まれています。必要な権限を正確に確認するには、[必要な権限] セクションを開いてください。

必要な権限

アプリケーション セキュリティの表示と監査には、次の権限が必要です。

  • resourcemanager.projects.get
  • opsconfigmonitoring.resourceMetadata.list
  • serviceusage.services.list
  • servicesecurityinsights.projectStates.get
  • アプリケーションのセキュリティの概要を表示するには:
    • logging.logEntries.list
    • servicesecurityinsights.clusterSecurityInfo.list
  • モニタリング対象セキュリティ機能すべての現在のステータスを監査するには:
    • servicesecurityinsights.clusterSecurityInfo.list
    • servicesecurityinsights.securityViews.get
    • servicesecurityinsights.securityInfo.list
    • servicesecurityinsights.workloadPolicies.list
  • ワークロードのセキュリティの詳細を表示するには:
    • monitoring.timeSeries.list
    • logging.logEntries.list
    • servicesecurityinsights.clusterSecurityInfo.get
    • servicesecurityinsights.workloadSecurityInfo.get
    • servicesecurityinsights.securityViews.get
    • servicesecurityinsights.workloadPolicies.list

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

サポートされているクラスタ

Anthos セキュリティ ダッシュボードでサポートされているクラスタタイプは次のとおりです。

  • Google Cloud 上の GKE クラスタ
  • GKE on VMware
  • ベアメタル版 GKE

Vmware クラスタとベアメタル クラスタ全体のセキュリティをモニタリングするには、アプリケーションのロギングとモニタリングを有効にする必要があります。 GKE on VMwareGKE on Bare Metal のドキュメントの指示に従います。

アプリケーション・セキュリティの概要を表示する

Google Cloud コンソールで Anthos セキュリティ ダッシュボードを表示するには:

デフォルトでは、[ポリシーの概要] タブが表示され、プロジェクト内の Anthos アプリケーションのセキュリティ機能のステータスが表示されます。これには、詳細を確認して機能を有効にするためのリンクが含まれます。機能は [アクセス制御] と [認証] の 2 つの見出しの下に表示されます。

ポリシーの概要ビューのスクリーンショット

アクセス制御

このセクションでは、選択した Anthos 認可機能のステータスを確認できます。こうしたダッシュボードで次の状況を確認できます。

  • Binary Authorization。信頼できるイメージのみがクラスタにデプロイされるようにできます。
  • Kubernetes ネットワーク ポリシー。相互通信および他のネットワーク エンドポイントとの通信を許可する Pod を指定できます。
  • Anthos Service Mesh のサービスのアクセス制御。サービス アカウントとリクエストのコンテキストに基づいて、メッシュ サービスの詳細なアクセス制御を構成できます。

プロジェクトで有効になっていない機能については、クリックして有効にする(または有効にする方法を確認する)ことができます。

有効な機能については、機能の現在のステータスを確認でき、クリックするとアクセス制御ポリシーに基づいて拒否されたアクションやその他の興味深いイベントなど、選択した期間中の詳細情報が表示されます。たとえば、このプロジェクトでは過去 1 時間に Binary Authorization ポリシーの結果、1 つのクラスタで 3 つのデプロイがブロックされています。

Binary Authorization セキュリティの詳細のスクリーンショット

認証

このセクションでは、Anthos 認証機能のステータスを確認できます。現在、このビューには、Anthos Service Mesh を使用している各クラスタで相互 TLS(mTLS)を適用するポリシーを作成しているかどうかを示します。mTLS は、2 つのサービス間の双方向のトラフィックの安全性と信頼性を保証するセキュリティ プロトコルです。

これは、サービス メッシュに mTLS ポリシーが含まれているかどうかのみを示しています。ポリシーがトラフィックを実際に保護しているかどうかや、実行時にメッシュ内で暗号化されていないトラフィックが許可されるかどうかを確認するには、次のセクションで説明するように、詳細な [ポリシー監査] ビューにアクセスしてください。

アプリケーション・セキュリティを監査する

監査ビューでは、現在のアプリケーション セキュリティ体制について、クラスタごとにより詳しいランタイム評価を確認できます。監査ビューに切り替えるには:

  1. [ポリシー監査] タブを選択します。
  2. モニタリングするクラスタと(必要に応じて)名前空間をプルダウンから選択します。

概要ビューと同様に、すべてのモニタリング対象セキュリティ機能の現在のステータスを確認できます。mTLS の場合は、このクラスタのサービス メッシュで、現時点で暗号化されていないトラフィックがポリシーで許可されているかどうかも表示されます。これは、サービスが mTLS と平文の両方のトラフィックを受信できるようにする permissive モードの任意の場所で mTLS を有効にした場合に発生する可能性があります。これは、strict mTLS への移行中に予期しないサービスの停止を防ぐのに役立ちますが、メッシュ全体でエンドツーエンドの暗号化が必要な場合は更新する必要があります。

更新を行うと、[ワークロード] リストでは、セキュリティ機能がワークロード レベルでどのように機能しているかを確認できます。ワークロードごとに、以下の内容を表示できます。

  • Kubernetes ネットワーク ポリシーが適用されているかどうか
  • ワークロードに適用される Anthos Service Mesh サービスのアクセス制御ポリシー
  • ワークロードに適用される Anthos Service Mesh mTLS ポリシー - [制約なし](ワークロードに適用される明示的なポリシーをまだ作成していない場合のデフォルト)、[無効]、または [厳格]

ワークロードのセキュリティの詳細を表示する

監査ビューの [ワークロード] リストで個々のワークロードを選択すると、そのセキュリティの詳細がワークロード ビューに表示されます。ワークロードごとに、次の情報を確認できます。

  • ワークロードに適用される各アプリケーション セキュリティ機能の特定のポリシー定義を表示するリンク(該当する場合)。

ネットワーク ポリシーへのリンクのスクリーンショット

  • 名前、クラスタ、関連サービスなどの一般的なワークロードの詳細。
  • ポリシーによってリクエストが拒否されたかどうかを含む、このワークロードとの間のサービス リクエスト。リクエストが拒否された場合は、Cloud Logging で関連ログの詳細を表示できます。これにより、特定の拒否についてのトラブルシューティングを行い、リクエストに関する有用な情報を確認できます。

ワークロードとの間のサービス リクエストのスクリーンショット

  • クラスタで Dataplane V2 ネットワーク ポリシー ロギングが有効になっている場合、このワークロードとの間のネットワーク ポリシー リクエスト。ネットワーク ポリシー情報を表示する方法と、それがワークロードに与える影響を理解する方法については、次のセクションで詳しく説明します。
  • このワークロードによって管理される実行中の Pod。

Dataplane V2 によるワークロード接続を表示する

ワークロードを含むクラスタで Dataplane V2 が有効になっている場合、[ネットワーク ポリシー リクエスト] セクションがワークロード ビューの一部として表示されます。許可および拒否された接続をログに記録するようにネットワーク ポリシー ロギングが構成されている場合は、次の例のように、ワークロードの送受信トラフィックも表示されます。

ワークロードとの間のネットワーク ポリシー リクエストのスクリーンショット

この表には、Dataplane V2 のネットワーク ポリシーのログに記録される接続に関する追加情報も含まれます。特定のワークロードのこの情報を確認するには、次の手順に従います。

  1. 目的のワークロードのテーブル行で、[その他の操作] メニュー をクリックします。
  2. メニューから、目的のワークロードを選択します。
    • [GKE で表示] を選択すると、GKE UI に移動してワークロードの詳細を確認できます。
    • [拒否のログを表示] を選択すると、Cloud Logging に移動してフィルタされた関連するログエントリを確認できます。
    • [ネットワーク ポリシー接続を表示] を選択すると、接続の各方向(内向きと外向き)で観測されたセキュリティ体制を示す接続図が表示されます。以下はその例を示す図です。

ネットワーク ポリシーの接続性のスクリーンショット

デプロイされたネットワーク ポリシーに基づいてワークロード間の接続をシミュレートする

ワークロードを含むクラスタでネットワーク ポリシーの適用が有効になっている場合、[ワークロード ビュー ページの上部に [ネットワーク ポリシーのシミュレーション] ボタンが表示されます。この機能を使うと、現在デプロイされているネットワーク ポリシーの構成分析に基づいて、表示されているワークロードでトラフィックを送受信できるかどうかをシミュレーションできます。

ワークロード間の接続をシミュレートするには:

  1. トラフィックをテストするワークロードの [ネットワーク ポリシーのシミュレーション] ボタンをクリックします。
  2. ワークロードのトラフィックの方向(外向きまたは内向き)を選択します。
  3. トラフィックの送受信をテストする名前空間とワークロードを選択します。
  4. [シミュレーション] をクリックします。接続を示す下り(外向き)と上り(内向き)のステータスを示す接続図が表示されます。この図は、Dataplane V2 とのワークロード接続を表示する際に使用するものと似ています。

ネットワーク ポリシー接続をシミュレートするフォームの例を以下に示します。

ネットワーク ポリシー シミュレーションのスクリーンショット

次のステップ