IAM Recommender の仕組み: IAM 推薦事項を提供する Google Cloud のセキュリティ分析
Google Cloud Japan Team
※この投稿は米国時間 2020 年 8 月 15 日に、Google Cloud blog に投稿されたものの抄訳です。
IAM Recommender によりセキュリティ専門家は Google Cloud Platform(GCP)リソースへの不要なアクセスを特定、削除できるようになるため、最小権限の原則を適用するのが容易になります。以前のブログで、IAM Recommender を使用してより少ない労力で最小権限を達成するためのベスト プラクティスについて説明しました。IAM Recommender は、機械学習を用いて 90 日間に使用した権限を分析し、ユーザーが実際に必要とするものを特定します。
この記事では、IAM Recommender の仕組みについて具体的な例を用いて詳しく説明します。
DIY 的なアプローチ
背景情報を少し詳しく説明します。IAM Recommender は、毎日ポリシー推薦事項を自動的に生成してユーザーに提供します。Google はログを収集してデータを関連付け、修正された IAM ポリシーを推奨することでリスクを最小限に抑えます。この推奨事項は、Cloud Console の IAM 権限ページにあるコンテキスト内の情報、Cloud Console の Recommendations Hub、BigQuery など、複数の場所に表示され、可視性が担保されます。
上記をすべて実施する分析システムを一から構築する際の必要事項について見ていきましょう。
1.最初に、すべてのリソースの正規化されたロール バインディングを定期的に収集するエンタイトルメント ウェアハウスを構築する必要があります。そのためには、階層と継承されるロール バインディングに注意を払うことが必要です。
2.次に、推薦事項によって既存のワークロードが中断されないように、テレメトリーを収集、構築して、最近使用された権限を特定します。これを行うには、分析するリソースに対する Cloud Audit Logs のデータアクセス ログを保存します。ただし、このログデータは容量が非常に大きく、費用がかさみます。また、この分析には一連のログの処理、解析、正規化、集計など、少なからず労力もかかります。
3.アクセスログ データには、休暇を取るまたは別のプロジェクトに取り組むなど、ユーザーの散発的な行動で発生するギャップのある場合があります。このギャップを埋めるには機械学習を使用する必要があります。これも、トレーニング データが高次元でありスパースな特徴を持つため、ある程度の労力がかかります。
4.ビジネスの継続性を確保した構築を行うには、モニタリングと制御の機能を構築し、ブレークグラスのプロビジョニングを追加する必要があります。
5.この作業を完了すると、分析パイプラインを使ってポリシーデータの使用状況を分析し、安全に削除できる権限を特定できます。これを機械学習によって強化し、将来の権限のニーズを予測することで、ユーザーは追加のアクセス権を再度要求する必要がなくなります。
6.適切な一連の権限、ロール、条件、リソースを決定したら、最後にユーザーのニーズに合わせて最適の IAM ポリシーをランク付けするモデルを考案します。
Google Cloud は、実用的なインテリジェンスを提供すれば、この作業にかかるあらゆる手間を省いてお客様を支援できると考えました。その結果誕生したのが、お客様の代わりに Google 規模で分析を行う Active Assist です。
お客様が上記の作業をすべて行うことができたとしても、分析できるのはお客様のデータのみです。Google Cloud はお客様間の分析から付加的に情報を入手し、ポリシーのギャップや潜在的な構成ミスを問題になる前に特定できます。Google Cloud は、この分析におけるユーザーのプライバシー保護のための予防措置を施しています。この措置の技術についての詳細は、こちらのブログをご覧ください。
Google Cloud の実装について、もう少し詳しく見ていきましょう。
安全な適用
Google Cloud がこのプロダクトを立ち上げた際、重要となった考慮事項は推薦事項が安全に適用可能であること(ワークロードを中断しないこと)でした。安全な推薦事項を作成するには高品質な入力データを用意することが重要です。IAM Recommender は、認可のテレメトリー データを分析してから、ポリシーの使用率を計算して推薦事項を作成します。
Google Cloud では、Google の本番環境システムで処理を行い、ログのソースから直接データの品質と鮮度を確保しています。重要なことは、IAM Recommender でこの処理をすべてのお客様に対して大規模に行う方が、お客様各自で行うよりも効率的であるということです。Google では、この機能を利用可能にするため、ペタバイト規模のログデータを収集、保存しています。これに追加料金は発生しません。
しかし、認可ログから得られる情報は一部にすぎません。Google Cloud ではリソースを階層的に編成し、子リソースが親リソースに添付されている IAM ポリシーを継承できるようにしています。正確な推薦事項を作成するため、Google の分析では関連する継承データも適用します。
推薦事項の品質を維持するため、Google は検出スクリプトと検証スクリプトが備わった包括的なモニタリング システムとアラート システムを構築しました。さらに機械学習でこのチェック作業を自動化し、新しい推奨事項をベースラインに照らして評価するようにしました。ベースラインに照らしてチェックすることにより、上流の入力データから下流の依存関係までの分析パイプラインを安全に適用できます。ベースラインからの逸脱が検出された場合は、予防措置によりパイプラインを停止することで、信頼性のある推薦事項を提供できます。
ペタバイト規模での機械学習のセキュリティ分析
推薦事項を提供するため、Google Cloud は Dataflow プロセス エンジンを使用してマルチステージ パイプラインを開発しました。規模で言うと、Cloud IAM はグローバル規模の認可エンジンであり、毎秒何億もの認可リクエストを処理しています。IAM Recommender はこの認可ログを取り込み、毎日何億もの推薦事項を生成、再検証して、お客様に最適な結果を提供します。Google Cloud のスケーラブルなインフラストラクチャにより、このサービスは高い費用対効果で提供できます。
Google Cloud のシステムでは、最新ポリシーの構成スナップショットとリソース メタデータを使用して認可ログの内容を再現する、詳細なポリシー使用状況分析が毎日実施されています。このデータは Google Cloud の機械学習トレーニング モデルに読み込まれ、出力が推薦事項の根拠となるポリシー使用状況のインサイトにパイプで渡されます。Google Cloud は、推薦事項のバリアント、システム停止などの問題により発生する観測データのギャップを、プライバシー保護の機械学習技術を使用して埋めます。(この機械学習の技術についての詳細は、こちらのブログをご覧ください。)
リスクと複雑さのトレードオフの調整
IAM Recommender は、複数の必要な権限を網羅するロールセットを費用関数を使って特定し、セキュリティ リスクに応じてロールのランク付けを行い、最もリスクの少ないロールを選択します。必要最小限のロールセットを決定することは、NP 完全の集合被覆問題と同義です。オーバーヘッドを削減するため、このアプローチは特定の組織内の複数のプロジェクトにまたがる反復的なパターンに対して最適化され、ロールのメンバーシップを最大化しながら権限を減らします。
場合によっては、最適と判断されたロールがまだ作成されていないことがあります(ただし、Google Cloud のシステムでは組織全体における再利用の機会を見つけようとします)。この場合はカスタムロールを作成することをおすすめします。
詳細
IAM Recommender の詳細については、ドキュメントおよび Cloud IAM Recommender を基に機械学習モデルを確認するに関する Google Cloud のブログをご覧ください。Active Assist の詳細については、Google のウェブサイトをご覧ください。
Google Cloud のお客様がどのように最小権限を実現したかを確認するには、次のいずれかの Google Cloud Next ‘20: OnAir のセッションをご覧ください。
●IAM Recommender を使用して権限を最小化する
●Policy Intelligence を使用して最小権限の原則に沿ったアクセス制御を実現する
-プロダクト マネージャー Abhi Yadav / Google Cloud ソフトウェア エンジニア Liang Zhang