BigQueryで考慮すべきセキュリティとその対策を一挙ご紹介!

BigQueryで考慮すべきセキュリティとその対策を一挙ご紹介!

GCP

投稿日:2020/08/22 | 最終更新日:2020/09/13

BigQueryは、膨大なデータを高速で処理することのできるサーバーレスのデータ分析ソリューションです。

この記事では、BigQueryを利用する上で考慮すべきセキュリティについて解説し、その対策をご紹介します。

BigQueryの概要

まずはBigQueryの基礎情報について簡単にご説明します。

BigQueryとは

BigQueryとは
BigQueryとは、ペタバイトクラスのデータを瞬時に分析できるフルマネージドのデータウェアハウスです。膨大な数のリソースを並列で稼働させることで非常に高速なデータ処理を可能としており、様々なBIツールと容易に連携することが可能です。SQL言語に対応しており、RDBのような正規化されたテーブルを利用することも可能です。

BigQueryではサーバレス環境として設計されており、マネージドサービスとして提供されているため、環境を迅速に立ち上げ、利用時の運用負荷を削減することが可能です。

セキュリティのレイヤー

セキュリティのレイヤー
一般的に外部システムを利用する際の1つの懸念事項として、セキュリティが挙げられると思います。セキュリティには様々なレイヤーが存在するため、データを保護するためにはあらゆる方面からセキュリティを考慮し、多層的に防御することが重要となります。

ここでは一般的なシステムを構築する場合に、どのようなレイヤーが存在し、どのような観点からセキュリティを考慮する必要があるのか、その一例をご紹介します。

運用上のセキュリティ

まず1つ目に、データセンターを運用する事業者の運用手法に関するセキュリティが考えられます。自社データセンターを利用する場合には自社の運用チームでフレームワークやプロセスを策定して考慮します。

クラウドサービスを利用する場合、基本的にはそれぞれのクラウド事業者が責任を持って担保することになります。その場合の運用手法については各クラウド事業者が公開している情報や外部認証を元に自社のセキュリティ基準に合致しているかを確認する必要があります。

デバイスのセキュリティ

2つ目に、デバイスや施設に関する物理的なセキュリティがあります。例えばクラウドサービスを利用する場合には利用者は監査目的であってもサーバールームに入ることはできません。それはクラウドのデータセンターとしてのセキュリティ水準を高めるために必要な対応です。

また、クラウドサービスのサーバーは仮想化されていることが多いですが、もちろん物理的な機器を保有しています。どのようなセキュリティ基準に基づいて設置しているかを確認する必要があります。

ネットワークセキュリティ

3つ目に、ファイアウォールやパケットの暗号化、DDoSへの対応などといったネットワーク上のセキュリティがあります。

IPS(不正侵入防止システム)やIDS(不正侵入検知システム)の導入、ルーターによるアクセス制御やトンネルの構成など非常に考慮点が多く、様々な観点から構成を考慮し、データの保護を考える必要があります。

サーバーセキュリティ

4つ目に、OSやMW(ミドルウェア)、ユーザーの権限設定、ログ監視といったサーバーセキュリティがあります。パスワードを定期的に変更したり、OSレベルのファイアウォールやアンチウィルスソフトの導入などの対策を実施する必要があります。

アプリケーションのセキュリティ

最後に、SQLインジェクションやクロスサイトスクリプティングを始めとしたアプリケーション脆弱性に対するセキュリティがあります。一般的にはWAFのようなアプリケーション層を保護するファイアウォールにより防御することが可能ですが、脆弱性に対する攻撃は日々進化し続けており、常に最新のポリシーを適用し続ける必要があります。

以上のように、セキュリティは様々なレイヤーを考慮する必要があります。クラウドサービスでも同様に考えることが可能ですが、全てを自社のデータセンターで運用する場合と異なり、クラウド事業者が責任を持って管理すべき部分もあります。

BigQueryにおけるセキュリティ

BigQueryはクラウドサービスですが、クラウド環境であるからといってクラウド事業者であるGoogleが全ての脅威からの保護を保証してくれるわけではありません。

クラウド事業者とサービス利用者の責任分界点を理解し、自身の責任範囲においてはセキュリティ対策を実施することが必要です。

Googleが責任を持つ範囲

原則として、サービス利用者が触ることのできないレイヤーについてはクラウド事業者が責任を持ってセキュリティを担保する必要があると考えられます。データセンターの運用、BigQueryの物理的なサーバーやストレージといったリソース、ソフトウェアなどはユーザーが触ることはできません。そのため、Googleがセキュリティ対策の実施についても責任を担います。

また、Googleで暗黙的に実施されているセキュリティ対策については、公式ドキュメントで情報が公開されています。例えば下記のような項目はGoogle側で対応が行われています。

運用面のセキュリティ

Googleの運用チームは365日24時間体制でインフラストラクチャに対して仕掛けられる脅威の検出と対応にあたっています。

コンプライアンス

コンプライアンス
Googleのサービスは第三者機関によるセキュリティに関する監査を定期的に受けており、そのレポート内容を一部公開しています。例えばISO/IEC 27001やHIPAA、SOC1/2/3といったセキュリティや運用手法に関する一般的な認証はもちろん、FISCやFedRAMPといった各種業界別の基準も満たしています。

データセンター

データセンター
Googleではデータセンター自体の建屋を自社で建設しています。また、多層的アクセス防御を実施しており、アクセスカード、警報、車両セキュリティゲート、フェンス、金属探知機、生体認証などの安全対策が施されています。また、データセンターのフロアにはレーザー光線による侵入検知システムが導入されています。

ハードウェア

非常に品質の高い基準を設けており、サーバーラックやサーバー自体も自社で開発し、最適化が行われています。

ネットワーク回線

ネットワーク回線
自社で回線を敷設しており、物理的な高速回線をプライベートネットワークとして利用することができます。そのため、クラウド内部の通信はインターネットを経由せずに転送されるため、外部からの攻撃や傍受の危険性が少なくなります。

外部通信時の暗号化

インターネット経由でパブリック通信を行う場合、パケットの転送時に暗号化が行われます。

データ暗号化

Googleのインフラストラクチャに保存されたデータはデフォルトで暗号化が行われます。BigQueryの利用時にも同様の鍵管理システムを使用し、Advanced Encryption Standard(AES)により暗号化が行われます。

アプリケーション

BigQueryはGoogleの社内で利用されていたDremelというデータ分析システムを外部ユーザー向けに改良し、公開したものです。システムを構築するノード上のアプリケーションについてのバージョンアップやメンテナンスは透過的にGoogleが実施します。

利用者自身が考慮すべき範囲

上記の項目はBigQueryのようなサーバーレス型のクラウドサービスでは利用者が操作することができないため、Google社の責任範囲となります。自社で統合的な分析環境を構築する場合とは大きく異なり、かなり多くのレイヤーをGoogleが考慮してくれることがわかります。

ここからは、実際にBigQueryを利用するにあたり、ユーザーが考慮すべき項目についてご紹介します。

様々な権限設定

様々な権限設定
まずは、BigQueryに対する権限設定を考慮する必要があります。権限設定は主にIdentity and Access Management(IAM)により各ユーザー、グループ、サービスアカウントに対して役割を割り当てることによって制御しますが、必要最低限の役割を付与するように留意します。

データアクセス

データアクセス
また、IAMによる権限設定に加えて、データ漏洩に対する多層的な防御としてVPC Service Controlsを活用してデータアクセスの制御を行うことが可能です。VPC Service Controlsでは、サービス境界と呼ばれる仮想的な境界を構築し、境界を跨ぐデータの移動を制限することによって、より幅広いコンテクストベースの境界セキュリティを実現することが可能となります。

境界の作成時にGCPのプロジェクトやGCPのサービスを指定し、BigQueryと同じ境界内に含めることで同一境界内にあるリソースでのやり取りのみを許可するように設計することができます。IAMとは全く別の条件として評価されるため、より強固にデータを保護することが可能です。

これにより、認証情報の漏洩による不正アクセスや、内部からの許可されていないデータの持ち出しなど、様々なセキュリティリスクを軽減することができます。

ネットワークアクセスの制御

ネットワークアクセスの制御
Access Context Managerを活用することで、アクセスレベルと呼ばれるきめ細かいアクセス制御を定義することができます。アクセスレベルの属性としてIPアドレスや端末の種類、ユーザーIDなどを利用することができ、VPC Service Controlsと組み合わせることでアクセスレベルに応じたアクセス制御が可能となります。

SQLインジェクション

BigQueryではSQLクエリを実行できるその性質上、そのクエリによって攻撃される可能性があります。そのため、SQLインジェクションを防ぐために幾つかの考慮が必要です。

例えばBigQueryでは、クエリパラメータという機能をサポートしており、クエリ中にパラメータを埋め込み、任意の式の代わりに利用することで攻撃の可能性を低くすることが可能です。また、攻撃への露出を減らすため、動的SQLの一部に下記のような制限を設けています。

  • 動的SQLに渡されたパラメータに埋め込まれた複数のSQLステートメントは実行されない
  • BEGIN、END、CALL、IF、LOOP、WHILE、EXECUTE IMMEDIATEコマンドは動的に実行されない

BigQueryで考慮すべきセキュリティ対策

上記を踏まえた上でBigQuery利用上のセキュリティ対策を考えてみます。

  • クラウド事業者とサービス利用者の責任範囲を理解し、自身で対応すべき項目を把握する
  • クラウド事業者であるGoogleが対応する部分については公開されている情報や第三者機関による監査レポートを参照し、セキュリティ要件に合致していることを確認する
  • IAMを利用し、BigQueryを利用するユーザー、グループ、サービスアカウントに対して必要最小限の役割を付与する
  • VPC Access Controlsを利用し、BigQueryとの連携が必要なサービスや、アクセスするプロジェクトを境界内に配置し、データへの不要なアクセスを制限する
  • Access Context ManagerとVPC Access Controlsを組み合わせ、IPアドレスやユーザーを含めたアクセス制御を実現する
  • SQLのスクリプトやクエリを確認し、アプリケーション脆弱性におけるSQLインジェクションを防御するための設計を行う

上記事項を考慮することで、様々なレイヤーにおけるセキュリティ対策を実施した上で安全にBigQueryを利用することが可能となります。

まとめ

この記事では、BigQueryを利用する上で懸念となるセキュリティの考え方とその対応方法について解説しました。サーバーレス環境の場合は多くの項目をGoogleが責任を持って管理してくれます。

全ての脅威について保護されることが保証されているわけではありませんが、IAMやVPC Service Controls、Access Context Managerといったアクセス制御のサービスを組み合わせることで多層的に環境を防御し、エンタープライズ環境であっても安全にBigQueryを利用することができます。



弊社トップゲートでは、 GCP 、または G Suite 導入をご検討をされているお客様へ「Google Meet で無料個別相談会」を実施いたします。導入前に懸念点を解決したい方、そもそも導入した方がいいのかをお聞きしたい方はお気軽にお申し込みください!

お申込みはこちら

また、弊社トップゲートでは、Google 技術を利用したアプリケーション開発に関するコンサルティングサービスを行っております。ぜひ詳細はリンク先にてご確認ください!
詳細はこちら

記事を探す

GCP のメリットを最大限に活用しよう!

GCP・G Suite のご相談・
お見積り依頼はお気軽に
TEL.03-5840-8815
お問合せフォーム TEL.03-5840-8815