概要
シャドー API 検出は、既存のクラウド インフラストラクチャ内のシャドー API(ドキュメント化されていない API とも呼ばれます)を検出します。シャドー API は、セキュリティ保護、モニタリング、メンテナンスが不十分な可能性があるため、システムにセキュリティ上のリスクをもたらします。シャドー API 検出は、Apigee の API モニタリングの一部です。
ジョブを構成して実行し、個々の Google Cloud プロジェクトで API アクティビティをモニタリングできます。一元化された Apigee API Hub インスタンス内で、これらのプロジェクトを接続してジョブの結果を表示し、API Hub にドキュメント化されている「既知の」API と自動的に比較できます。Apigee API Hub でシャドー API 検出を使用する方法については、API Hub での API モニタリングをご覧ください。
シャドー API 検出におけるデータ所在地互換性に関する情報は、データ所在地の互換性をご覧ください。
シャドー API 検出を有効にする
シャドー API 検出は Advanced API Security アドオンの一部であり、Apigee プロビジョニングの有無にかかわらず、 Google Cloud プロジェクトで使用できます。
Google Cloud プロジェクトが Apigee 用にプロビジョニングされている場合:
- サブスクリプション ユーザーの場合は、Apigee 組織で利用できます。サブスクリプション組織の Advanced API Security を管理するをご覧ください。
- 従量課金制をご利用の場合は、少なくとも 1 つの環境でアドオンを有効にする必要があります。従量課金制を使用する組織の Advanced API Security を管理するをご覧ください。
- Apigee 評価環境ではシャドー API 検出を使用できません。
Google Cloud プロジェクトが Apigee 用にプロビジョニングされていない場合は、Apigee セールスにお問い合わせいただくことで、シャドー API 検出をプロジェクトに追加できます。
Apigee からシャドー API 検出を有効にする
このセクションで説明する API モニタリングの結果の設定と表示の手順は、Cloud コンソールの Apigee UI に基づいています。Apigee Management(APIM)API を使用して、シャドー API 検出を管理することもできます。シャドー API 検出: 管理 API をご覧ください。
この機能を使用するには、アドオンを有効にする必要があります。サブスクリプションをご利用の場合は、組織のアドオンを有効にできます。詳細については、サブスクリプションを使用する組織の Advanced API Security を管理するをご覧ください。従量課金制をご利用の場合は、対象となる環境でアドオンを有効にできます。詳細については、Advanced API Security アドオンを管理するをご覧ください。
API Hub からシャドー API 検出を有効にする
API Hub からシャドー API 検出を有効にするには、API Hub で API モニタリングを構成するの手順に沿って操作します。
シャドー API 検出に必要なロールと権限
次の表に、シャドー API 検出に関連するタスクを実行するために必要なロールを示します。
タスク | 必要なロール |
---|---|
Advanced API Security を有効または無効にする | Apigee 組織管理者(roles/apigee.admin) |
モニタリングのソースとジョブを作成する | API 管理の管理者(roles/apim.admin) |
モニタリング結果を表示する | API 管理の閲覧者(roles/apim.viewer) |
Apigee UI でシャドー API 検出にアクセスする
このセクションでは、Apigee UI でシャドー API 検出にアクセスする方法について説明します。
Apigee UI でシャドー API 検出にアクセスするには:
-
Google Cloud コンソールで、[API Observation] > [シャドー API] ページに移動します。
- メインページには、すでに生成された API 観察結果が表示されます。[API Observation] タブと [観察ジョブ] タブを選択して、結果の表示と観察ジョブの作成を切り替えます。
モニタリング ジョブを作成する
モニタリング ジョブは、シャドー API の検出に必要なシャドー API の検出手順を提示します。次の手順に沿ってモニタリング ジョブを作成します。モニタリング ジョブの作成に適用される動作と制限事項に留意してください。
- [モニタリング ジョブ] タブを選択し、[モニタリング ジョブを作成] をクリックします。
- モニタリング ソースを 1 つ以上選択するか、必要に応じて、[モニタリング ソース] リストの下部にある [モニタリング ソースを作成] をクリックし、ソース ロケーションを新規作成します。モニタリング ソースの作成には数分かかることもあります。
モニタリング ソースには、以下が含まれます。
ソース名: ソースを識別するために指定する名前。
ロケーション: モニタリングを実施するロケーション。ソースリージョンを追加すると、インフラストラクチャ全体の API を幅広く把握できます。ベスト プラクティスをご覧ください。1 つのロケーションに作成できるモニタリング ソースは 1 つのみです。
ネットワークとサブネットワーク: VPC ネットワークとサブネットワーク。サブネットワークは、モニタリング ソースのロケーションと同じリージョンに存在する必要があります。 - モニタリング ジョブを作成します。モニタリング ジョブ名を指定します。このジョブ名は、ロケーションごとに一意であることが必要です。ロケーションを選択します。これによって、データの集計と処理を行う場所が指定されます。ソース リージョンで収集されたデータはすべて、Google のデータ所在地ポリシーに沿って、このリージョンで処理され、同リージョンからアクセスされます。新しいモニタリング ジョブの作成が完了するまでに数分を要する場合があります。
- モニタリング ジョブを有効にします(省略可)。作成時にジョブを有効にすると、直ちにモニタリングが開始されます。ジョブを直ちに有効にしない場合は、後でモニタリング ジョブリストからモニタリング ジョブを有効にすることができます。
モニタリング ジョブを有効化、無効化、削除する
既存のモニタリング ジョブを有効(アクティブ)にするかどうかを切り替えるには、[モニタリング ジョブ] ページで、対象ジョブの行の [操作] メニューから [有効にする] または [無効にする] を選択します。
既存のモニタリング ジョブを削除するには、対象ジョブの [操作] メニューから [削除] を選択します。ジョブを削除すると、ジョブに関連付けられたモニタリング結果も削除されます。ジョブの続行を停止しつつ結果を保持する場合は、ジョブを削除するのではなく無効にしてください。アクティブなジョブは削除できません。削除する必要がある場合は、まずアクティブなジョブを無効にします。
API のモニタリングを表示する
有効な観察ジョブの API 観察結果を表示するには、[API Observation] タブを選択して、リストから [観察ジョブ] を選択します。
![API の [モニタリング] ページ API の [モニタリング] ページ](https://cloud.google.com/static/apigee/docs/api-observation/images/shadow_api_observations_list1.png?authuser=1&hl=ja)
モニタリング リストには、次の値が表示されます。
- ホスト名: API ホスト名。ホスト名をクリックすると、モニタリングの詳細が表示されます。
- API オペレーション: モニタリング対象の API オペレーション(GET リクエストや PUT リクエストなど)の数。
- サーバー IP: 検出された API をホストするサーバーの IP。
- ソースのロケーション: トラフィックがモニタリングされたソースのロケーション。
- 前回のイベント検出日時(UTC): API への最新のリクエストが検出された日時。
- タグ: ご自分または他のユーザーがこのモニタリングにラベルを付けるために作成したタグのリスト。詳細については、タグを使用するをご覧ください。
- アクション: 各モニタリングに対して利用できる追加のアクション。
モニタリングの詳細を表示する
モニタリング リストでホスト名をクリックすると、モニタリングの詳細ページが表示されます。
このページには、モニタリングに関する次の情報が表示されます。
- ページの上部にある概要ボックスは、以下の情報が表示されます。
- API 観察結果 ID: Apigee 固有の識別子です。
- API オペレーション: このフィールドの説明については、API のモニタリング結果を表示するをご覧ください。
- 作成日時(UTC): モニタリング ジョブが作成された日時。
- タグ: モニタリング ジョブの結果を整理するためにタグを使用します。
- 最後のイベント検出時刻: このフィールドの説明については、API のモニタリング結果を表示するをご覧ください。
- この検出済み API で検出された特定の API オペレーションの表。リクエストごとに、以下の情報が表示されます。
- パス: リクエストパス。
- メソッド: リクエスト メソッド(GET、PUT など)。
- カウント: 該当するメソッドで対象のパスに送信されたリクエストの数。
- トランザクション リクエスト: トラフィック データのリクエスト本文。この API オペレーションのリクエスト ヘッダーと対応するトランザクション数が含まれます。
- トランザクション レスポンス ヘッダー: トラフィック データのレスポンス ヘッダー。この API オペレーションのレスポンスのヘッダーと対応するトランザクション数が含まれます。
- トランザクション レスポンス コード: この API オペレーションのレスポンス コードと、そのコードを含む対応するレスポンス数。
- 初回検出日時(UTC): この API オペレーションへのリクエストが最初に検出された日時。
- 最終検出日時(UTC): この API オペレーションへのリクエストが最後に検出された日時。
タグを使用する
タグを使用すると、モニタリング結果を分類できます。タグはメタデータであり、トラッキング専用です。タグによってモニタリング結果が変更される、またはアクションがトリガーされることはありません。たとえば、「Needs attention」タグを追加しても、通知やアラートは作成されません。新しいモニタリング結果にはタグが設定されていません。
タグには次の特徴があります。
- 同じタグを複数のモニタリング結果に追加できます。
- タグ名には、大文字と小文字の英字、数字、特殊文字(スペースを含む)を使用できます。
- タグが作成された後、名前を変更することはできません。名前を変更するには、タグを削除して再作成します。
- すべてのモニタリング結果からタグを削除すると、システムからタグが削除されます。
タグは、モニタリング リストまたはモニタリングの詳細ページから管理できます。
API 観察結果リストからタグを管理するには:
- 既存のタグは、モニタリング リストの [タグ] 列で確認できます。
- 1 件の結果のタグを管理するには、結果の行の [操作] メニューから [タグを管理] を選択します。
- 1 つ以上の結果のタグを同時に管理するには、リストから複数の結果を選択し、リストの上部にある [タグを管理] をクリックします。
API 観察結果の詳細からタグを管理するには:
- [タグ] セクションで既存のタグを確認します。
- タグを追加または管理するには、ページ上部の [タグを管理] を選択します。
[タグを管理] サイドパネルで、タグを追加するには、既存のタグを選択するか、新しいタグを追加します。タグを削除するには、タグの選択を解除します。[保存] をクリックして、新しいタグを保存します。
API Hub からシャドー API 検出にアクセスする
API Hub からシャドー API 検出にアクセスする方法については、API Hub で API モニタリングを管理するをご覧ください。
ベスト プラクティス
シャドー API 検出を使用する場合は、次の方法をおすすめします。
- 組織のデータ所在地ルールに従い、適用される規制と法律を遵守してください。
- 可能な限り多くのソース リージョンから集計して、リージョン間の相関を適切に把握します。検出ジョブにソースリージョンを追加すると、インフラストラクチャ全体にわたり広範囲の API を把握できます。
動作と制限事項
このセクションでは、シャドー API 検出に適用される動作と制限事項を示します。
- シャドー API 検出を使用しても、トラフィックの 100% をモニタリングする保証やすべてのシャドー API を検出する保証はありません。
- シャドー API 検出では、 Google Cloud インフラストラクチャのシャドー API のみが検出されます。
- シャドー API 検出は、現時点では外部と内部のアプリケーション ロードバランサのみをサポートしています。ネットワーク ロードバランサはサポートされていません。
- シャドー API 検出は、gRPC ではなく HTTP プロトコル API を検出します。
- ロードバランサで API モニタリング ジョブを実行しても、API トラフィックのレイテンシに影響はありません。
- 警告: シャドー API 検出は、プロジェクトごとに 1 つのネットワークのロードバランサをサポートします。複数のネットワークを持つプロジェクトでシャドー API 検出を有効にすると、予期しない動作が発生する可能性があります。
- シャドー API を検出するには、モニタリング対象のプロジェクトのロードバランサを通過するトラフィックが必要です。
- トラフィック量によっては、新たに有効に設定されたモニタリング ジョブがトラフィックを検出するまでに最大 30 分かかることがあります。トラフィックがまばらな場合は、結果が得られるまでにより長いモニタリング時間が必要となります。
- 各リージョンで、モニタリング ソースは 1 つに、モニタリング ジョブは最大 3 つに制限されています。3 つを超えるモニタリング ジョブが必要な場合は、そのユースケースについて Google Cloud カスタマーケアにお問い合わせください。
- モニタリング ジョブは作成、無効化、削除できますが、編集はできません。モニタリング ジョブを変更する必要がある場合は、一旦削除して再作成します。
- 現在、API モニタリングとシャドー API でサポートされているリージョンは次のとおりです。
- australia-southeast1
- europe-west2
- europe-west9
- us-central1
- us-east1
- us-west1