API Gatewayを活用したデータ主権とデータコンプライアンスの実現

Ming Wen

Ming Wen

November 28, 2022

Technology

背景と課題

スマートフォン、IoT、高速モバイルネットワークの普及に伴い、写真、金融取引、地理的位置、DNAシーケンス、医療記録、臨床試験など、大量の機密データが生成されています。これらの機密データに基づく統計分析は、個人、企業、またはグループのアイデンティティを正確に描写し、個人のプライバシーや国家安全保障を脅かす可能性があります。

多くの国の立法機関がこの問題の深刻さと緊急性を認識し、データ収集や越境転送を規制するための多くの法律や規制を導入しています。欧州の一般データ保護規則(GDPR)や米国の医療保険の携行性と責任に関する法律(HIPAA)はその先駆けです。多くの発展途上国も追随しています:

このように、端末やユーザーによって生成され、メーカーによって保存・保持されるデータは、複数の法執行機関によって監督されています。そのため、特に大規模な多国籍企業は、多くの緊急の新たな問題に直面しています:

- どのデータを収集できるか?どのデータを収集できないか?

- データはどのように、どこに保存されるか?

- データを越境転送できるか?

これらすべてに対して解決策を整理し策定することは、大規模なプロジェクトとなるでしょう。ここでは、主に次の問題に焦点を当てます:

APIを介して送信されるクライアントデータについて、APIゲートウェイレベルでデータ主権をどのように決定し、データが合法的に処理・保存されることを保証するか?

例えば、欧州出張中の米国ユーザーがスマートフォンを使って銀行振込を行う場合、この取引データは近くの欧州サーバーではなく、遠く離れた米国のサーバーで処理・保存されなければなりません。

本記事の後半では、この例に対する具体的な技術的解決策を提供します。その前に、まずデータ主権とコンプライアンスについて見ていきましょう。

データ主権とデータコンプライアンスとは?

データ主権

国は、領土、領空、領海などの物理的空間に対する主権だけでなく、データや国家のサイバースペースに対する主権も持っています。

*一般データ保護規則(GDPR)*を例にとると、これはEUの個人データのプライバシーと保護に関する規制です。GDPRには最も基本的な要件の一つがあります。「すべてのユーザーデータ収集行為にはユーザーの同意が必要であり、ユーザーは常に保存されている個人データを明確にし、削除する権利を持っている。」

したがって、企業が欧州のデータを他の地域に転送したい場合、第三国のデータ主権要件がEUの要件を満たしていることを保証しなければなりません。データが現地の法律に準拠する必要性に関しては、多国籍企業において確かに多くの懸念があります。

もう一つの懸念は、米国のPATRIOT法です。この法律は、米国に保存されているすべてのデータ、または米国企業によって保存されているデータが米国の監督下にあることを要求しています。米国司法省と中央情報局(CIA)は、企業に対してデータの提供を求める権利を持っています。2013年、米国司法省はマイクロソフトに対して、アイルランドのサーバーに保存されている一部のメール情報の開示を求めました。マイクロソフトは、EUの規制要件に違反するため、米国司法省の要求を拒否しました。その後、米国司法省はマイクロソフトを裁判にかけましたが、マイクロソフトが勝訴しました。その後、データ主権のリスクを避けるために、米国の多くの企業がデータセンターを直接欧州に設置し、これで安全だと考えました。しかし、最近では、米国が欧州にある米国企業のデータを要求する権限があると判決した事例もあります。これが米国の長腕管轄権です。

データ主権は、確かに企業のグローバルビジネスに大きな課題をもたらしており、企業内でデータ主権の問題を適切に処理することが特に重要になっています。

データコンプライアンス

多国籍企業にとって、データ主権の要件がなければ、データの同期は比較的簡単です。米国のユーザーデータは、アジアや英国のサーバーに簡単に同期できます。以下の図に示すように、米国人がアジアを旅行しているときでも、米国にいたときに生成されたさまざまなデータにアクセスできます。

IDC間のデータ同期

データ主権のコンプライアンス要件があると、多くのデータを国を超えて同期・アクセスすることができなくなります。企業はユーザーを区別し、関連するデータを分離する必要があります。標準的な方法は、地域に基づいてユーザーを分割することです。

AmazonのKindleを例にとると、米国のユーザーが購入した電子書籍は、中国のアカウントではダウンロードできません。 これは、異なる国(地域)間のデータが完全に分離されているためです。システムのアーキテクチャは以下のようになります:

自分のIDCのみにアクセス

では、英国のユーザーが米国のアカウントでAmazon UKにアクセスしたい場合、技術的にはどうすればよいでしょうか?以下のアーキテクチャ図を見てみましょう。既存のAPIゲートウェイ製品のほとんどは、同様の解決策を提案しています。

既存のAPIゲートウェイレベルの解決策

データコンプライアンスのためのAPIゲートウェイ解決策

この解決策の核心を一言で表すと:

英国のAPIゲートウェイがユーザーを識別し、APIがユーザーが米国で登録されていることを確認した場合、米国のサーバーにルーティングして処理します。

しかし、この背後にはいくつかの技術的課題とコンプライアンスの隠れた危険性もあります:

  1. APIゲートウェイは、HTTPヘッダー、リクエスト引数、リクエストボディからデータを取得し、外部データベースクエリと連携して、どのサーバーがユーザーを処理するかを決定するための細かいルートスケジューリング機能が必要です。

  2. 地域間のネットワークが接続されている必要があります。英国のサーバールームと米国のサーバールームは接続されている必要があります。

  3. 英国のサーバーのAPIゲートウェイは、すでにSSL証明書をオフロードし、APIの内容を読み取り、アクセスログ、監査ログ、監視システムなどを通じてローカルディスクや他のサービスにデータを記録している可能性があります。

これらの問題を解決する方法はあるでしょうか?

多層ネットワーク:Apache APISIXによるAPIデータ伝送のコンプライアンス確保

ここでは、APISIXの「多層ネットワーク」の概念を紹介し、APIゲートウェイレベルでAPIによって伝送されるデータのコンプライアンスとセキュリティを確保します。 多層ネットワークは、その名の通り、APIゲートウェイをレイヤー1とレイヤー2の2層に分割します。以下の図を参照してください:

データコンプライアンスのための多層ネットワークを持つAPIゲートウェイ

  • レイヤー1 APIゲートウェイ: SSL証明書のオフロード、細かいルートスケジューリング、どのレイヤー2 APIゲートウェイがAPIリクエストを処理するかを決定する役割を担います。
  • レイヤー2 APIゲートウェイ: これは元のAPIゲートウェイで、データコンプライアンスについて心配する必要はありません。

記事の冒頭の質問に戻りましょう:米国に登録されたユーザーが、取引の場所に関係なくAPIデータのコンプライアンスをどのように確保できるか?

まず、APIリクエストはレイヤー1 APIゲートウェイに送信されます。これは本質的にApache APISIXですが、multi-layer networkオブジェクトが追加されており、これにカスタムプラグインをバインドできます:

  1. レイヤー1 APIゲートウェイは、レイヤー2 APIゲートウェイクラスターのアドレス、重みなどの情報を定義します。ここでは米国クラスターと英国クラスターを設定します:
http://Layer-1-API-Gateway-IP/apisix/admin/multilayer_network/clusters/cluster-US
{
  "desc": "description",
  "http_port": 80,
  "https_port": 443,
  "gateways": [
    {"host": "IP1", "weight": 1},
    {"host": "IP2", "weight": 2}
  ]
}

http://Layer-1-API-Gateway-IP/apisix/admin/multilayer_network/clusters/cluster-UK
{
  "desc": "description",
  "http_port": 80,
  "https_port": 443,
  "gateways": [
    {"host": "IP1", "weight": 1},
    {"host": "IP2", "weight": 2}
  ]
}
  1. 多層ネットワーク上でルーティングルールを定義し、barプラグインとバインドします:
http://Layer-1-API-Gateway-IP/apisix/admin/multilayer_network/routes/bank-foo
{
  "desc": "bank API",
  "hosts": ["foo.com"],
  "uris": ["/*"],
  "plugin_id": "bar"
}
  1. カスタムプラグインを定義します:
http://***/apisix/admin/multilayer_network/plugins/bar
{
  "desc": "plugin",
  "plugins": {
    "jwt-auth": {
      ... ...
    },
    "foo-upstream-selector": {
      "scheme": "HTTPS"
      ... ...
    },
    ... ...
  }
}

ここでは2つのプラグインをバインドしています。**jwt-auth**プラグインは、リクエストの認証を完了するために使用されます。foo-upstream-selectorは、データベースからユーザーID、国/地域、ユーザーが属するクラスターなどの情報を読み取り、どのレイヤー2 APIゲートウェイクラスターにルーティングするかを指定します。

この多層アーキテクチャにより、異なる国間でのデータコンプライアンスが確保されます。

結論

要約すると、APIゲートウェイの多層アーキテクチャによって可能になる細かいルートスケジューリングは、企業がAPIデータを迅速かつ安全に処理し、データコンプライアンス要件を満たすのに役立ちます。 この機能は、API7 CloudAPI7 Enterpriseで提供されています。ぜひフォームに記入してご連絡ください。

Tags: