SaaS

Box ShuttleでGoogle Driveの権限をある程度引き継いだデータ移行する

セキュリティチームの ぐっちー です。Box ShuttleでGoogle Driveの権限をある程度引き継いだデータ移行する検証しました。制約事項も多々ありますが、データ移行の助けになってくれるかと思いますので、是非参考になれば幸いです。

注意
  • 本機能を利用するには Box Business 以上のライセンスが必要です。
  • 本ブログの内容は、2023年11月20日時点までの情報を元に作成しております。

3行サマリー

  • Box ShuttleでGoogle Driveの権限をある程度引き継いだデータ移行ができないか検証しました。
  • ゲストユーザーは移行できない等の制約事項はありますが、社内ユーザーであればある程度の権限を引き継いだデータ移行が検証できました。
  • しかしながら、この機能を使って安易にデータをそのまま移行するのではく、Boxのフォルダ設計・権限管理のベストプラクティスに沿った設計をしてから、そこに到達するまでの手段としてBox Shuttleがハマるのであれば利用いただけたら幸いです。

クラウドサービス移行(データ移行)の権限移行問題

クラウドストレージ移行時には、共有権限の引き継ぎが大きな課題となります。フォルダ構成・データは移行ツールで持っていけるとして「現在の共有権限」に関してはなかなかシビアです。もちろん、業務影響も考えて並行稼働期間を設けながら少しずつ移行すると、その場合は問題が起きにくいですが、ライセンス購入の関係上、短期集中でデータ移行したいケースなどでは特に、今のファイルのアクセス権を失わずに新プラットフォームに移行するかということが命題となります。

超重要:そのまま移行すればいいという話ではない

ただ、忘れてほしくないのは、クラウドサービスごとに権限設定の考え方が異なるため、データとフォルダ構成と権限をそのまま持っていくのは間違いだという点です。BoxにはBoxの、Google DriveにはGoogle Driveの権限管理・フォルダ構成のベストプラクティスが存在しています。もちろん、サービス特性も異なります。クラウドストレージ移行の恩恵を最大化させるには、移行元のフォルダ構成・共有権限を尊重するのではなく、移行先のクラウドストレージのベストプラクティスに沿って構成するのが重要なのは言うまでもありません。

とはいえ、移行先のクラウドストレージのベストプラクティスに添いつつ、できる限りフォルダ構成や権限も含めて移行したいという要望はあることも理解しています。そのような要望にどう応えるかについて説明します。

フォルダ構造・権限を含めた移行にBox Shuttleを活用する

今回、権限を含めた移行に利用するのは、Box Shuttleというサービスです。これはBox社が提供するデータ移行サービスで、ツールとしては大きく以下の2つのパターンがあります。今回検証したのは Shuttle Native のStandard Tooling(無料版)です。

ShuttleNative
(Standard Tooling)
ShuttleNative
(Advanced Tooling)
概要管理コンソールよりBoxにデータを移行できるツールStandard Toolingより機能が充実した移行ツール
価格Businessプラン以上は無償で利用可有償(要問い合わせ)
容量10TB以下10TB以上
移行元Network File Share
Windows disk and hard drives
OneDrive for Business
SharePoint Online
Dropbox for Business
Google Drive (Google Workspace)
Standardに加えて下記
Citrix ShareFile
SharePoint Server 2007 and later
AWS FSx and S3
Azure Files and Blob Storage
GCP Filestore and Objectstore
Box Shuttleのプラン。また、上記の他にBox Consultingによる移行支援サービスがあるため、大規模な移行時などはそちらを活用することも考えられます。

Box Shuttle とGoogle Driveの接続

Google Cloud Developers Console( https://console.developers.google.com/ )にアクセスし、こちらの手順に従って新しいプロジェクトを作成します。

参考 Google Cloud Platformプロジェクトの作成

続いて、このプロジェクト用にサービスアカウントを作成します。

続いて、キーペアを含むJSONファイルを生成します。Boxの管理コンソールのShuttle設定画面にて、データ移行元のソースシステムとしてGoogleドライブを接続するには、このJSONファイルが必要になります。

参考:キーペアを含むJSONファイルを生成

Google Cloud コンソールの API ライブラリ(https://console.cloud.google.com/apis/library?project=_&hl=ja&_ga=2.216954646.1236326184.1700703033-567315592.1700703033) ページに移動し、以下のAPIをそれぞれ検索し、有効にします。

  1. Admin SDK
  2. Google Drive API
参考:APIを有効

続いて、Google Workspaceの管理コンソールに移動し、組織のGoogle Workspace環境全体のユーザーデータにアクセスできるようにドメイン全体の委任を設定します。

参考:ドメイン全体の委任

クライアントIDは先ほどダウンロードしたJSONファイルに記載されている値を入力します。

また、OAuthのスコープはhttps://www.googleapis.com/auth/admin.directory.group,https://www.googleapis.com/auth/admin.directory.user,https://www.googleapis.com/auth/driveを入力します。

注意

上記のスコープはBox社のサポートサイトに基づくものですが、非常に強い権限を利用します。JSONで取得した鍵の管理は厳重に行っていただくようによろしくお願いします。

続いて、オプションですが、大規模なデータ移行の場合は Googleドライブに割り当て量の増加をリクエスト をしておきます。

最後に、Boxの管理コンソールでGoogle Driveを登録したら終了です。[Box管理コンソール] > [Content] > [Shuttle] > [New Job] > [Analyze Data]にアクセスして、今回設定した管理者のメールアドレスと、取得したJSONファイルを登録します。これで、接続の設定は完了です。

データ分析ジョブ

Box Shuttleではデータ移行前にデータ移行元のデータを分析する分析ジョブを行うことができます。上記の接続設定をした後、まずは対象フォルダ(ファイル)を選択していきます。

Job Setttingでフィルター設定をすると、正規表現でレポート出力対象を絞ることができます。

その後、分析ジョブを実行すれば、Google Driveのファイル状況等を確認することができます。

データ移行ジョブ

Box Shuttle とGoogle Driveの接続ができたら、移行ジョブを設定し、実行していきます。まずは、[Box管理コンソール] > [Content] > [Shuttle] > [Migrate Data]に遷移して、新規ジョブを作成します。

接続しているクラウドサービスは既存のコネクションとして選択できるので、接続しているGoogle Driveを選択して次に進みます。

続いて、移行対象データと移行先フォルダのマッピング作業を行います。左が移行元で右が移行先ですが、個人名がトップに出ているのがマイドライブの情報です。Box上のターゲットフォルダを指定できますし、この画面から新規のフォルダを作成することができます。また、右側で選択したユーザーが、移行後のコンテンツの所有者になります。

その後、移行のオプションを選択します。 [Migrate Data Only] を選択するとデータ移行のみが行われますが、[Migrate Data and Permissions]を選択すると、権限も含めた移行ができます。

続いて、ユーザーのマッピングです。これも権限を移行する際に重要なプロセスで、Google Drive上のコンテンツに設定された共有権限をどのBox上のどのユーザーに引き継いでいくかを示しています。

さらに、ここでも移行オプションの設定です。移行時に、権限がバッティングする際の考え方について示しています。アクセス権を重視するか、コンテンツの安全性を重視するかなどのオプションが選べます。正直ここは深堀が足りないので、今後もう少し検証してみたいと思います。

続いても移行オプションで、正規表現によるフィルタリングを使って移行するフォルダを選別したり、ファイルのバージョンに関するオプションを選択します。

帯域幅や権限を移行するかの選択を再度行う必要があるので設定します。

最後に、移行シミュレーションを実施し、最終的な移行ジョブを実行します。

検証結果

フォルダ構造・社内ユーザーの権限の引き継いだ移行

まず、検証したのは社内ユーザー(厳密にはGoogle Driveに関するライセンスが破り当たっているGoogle側の正規ユーザー)のフォルダ構造・権限の引き継いだ移行です。結果は、マイドライブ・共有ドライブ共に可能でした。下記のサンプルのように、フォルダ構造をそのまま権限と共に移行することができます。

Box向けにフォルダ構造を変えた移行をする

しかしながら、上記で紹介した移行方法はお勧めではありません。BoxとGoogle Driveはサービスの考え方や性質が異なります。やはりGoogle Drive のデータをそのまま持っていくのではなく、Box向けにフォルダ構造を再構成して移行するのがベストです。例えば、共有ドライブとしてプロジェクトフォルダがたくさん存在する場合、以下のサンプルのように、トップレベルのフォルダを設置し、トップレベルのフォルダの配下にデータを移行してあげるようなことが考えられます。

このような移行もフォルダマッピングを工夫すれば可能です。手順としてはトップレベルの「プロジェクトトップレベルフォルダ」は最初に作成しておきます。その後、そのフォルダの下にGoogle Driveの各プロジェクト共有ドライブ(Google Driveではトップ階層)をBoxの2階層目にマッピングすれば、上記のような移行が実現できます。

社外ユーザーの権限の引き継いだ移行はできない

残念ながら、GoogleのゲストユーザーからBoxの外部コラボレーターへの権限移行はできませんでした。対象となっているのは、あくまでGoogle側の正規ユーザー(Google Driveに関するライセンスが破り当たっているユーザー)のみです。

参考情報

一方で、Box Shuttleのレポートを使えば、社外ユーザーの一覧(どこに共有権限を付けられているかを含む)をレポートとして抽出することができます。そのため、そのレポートの出力結果を使って、手作業で既存の共有権限が失われないように、コラボレーションを付与してあげることが考えられます。

権限の変化

BoxとGoogle Driveでは用意されている権限も異なるので、その変化にも着目しなければなりません。権限は移行時に以下のように引き継ぎされます。

Google Drive マイドライブBox
ViewerViewer
CommenterEditer
ContributorEditer
マイドライブでの権限移行仕様(筆者検証結果に基づく)
Google Drive 共有ドライブBox
ViewerViewer
CommenterEditer
ContributorEditer
Content ManagerCo-owner
ManagerCo-owner
共有ドライブでの権限移行仕様(筆者検証結果に基づく)
注意

Commenter(閲覧とコメント可能)の権限はBoxに移行するとEditer(編集者)になってしまいますので、権限が広がってしまう現象が起きます。事故等が起こらないように事前によく確認するようにしてください。

ファイル形式

ファイル形式ですが、Google型式(スプレッドシート等)はOffice型式(Excel等)に変換された上でデータが移行されます。ただ、Google Drive が利用できるライセンスを保持していれば、Box上のOffice型式のコンテンツであってもBox上でGoogle型式で開くことはできます。

おわりに

繰り返しますが、この機能を使って安易にデータをそのまま移行するのではく、Boxのフォルダ設計・権限管理のベストプラクティスに沿った設計をするのが重要です。そして、設計を行なったToBe像に到達するまでの手段として、Box Shuttleがハマるのであれば利用いただけたら幸いです。

参考文献

ぐっち

コンサル会社にてISO27017やISMAP等のセキュリティ規格案件を経験した後、クラティブに入社。セキュリティチーム所属ですが、最近は生成AI等を使ったシステムの開発や導入をやっています。趣味はダンス。Microsoft MVP for AI Platform & M365(Copilot)