【正解】A
【0からの解説】
①前提知識:Analytics Hub(現在のドキュメントでは BigQuery sharing とも呼ばれます)は、BigQuery のデータを組織の内外と安全に共有するためのサービスです。パブリッシャー(共有する側)は共有データセットを「リスティング」としてデータ エクスチェンジに公開し、サブスクライバー(受け取る側)がリスティングをサブスクライブすると、自分のプロジェクトに読み取り専用の「リンクされたデータセット」が作成されます。データはコピーされないため、常に最新のデータを参照でき、ストレージの二重管理も発生しません。公式ドキュメントには、共有データセットは列レベルのセキュリティと行レベルのセキュリティをサポートすると記載されており、承認済みビューの共有や、エクスポート・コピーを禁止するデータ流出(エグレス)制御も設定できます。サブスクリプションの状況はパブリッシャー側で把握・取り消しできます。
②要件の整理:「複数の外部パートナーと共有」「パートナーごとにアクセスできる行と列を制御」「Google 推奨のプラクティス」です。
③正解の理由:A の Analytics Hub での公開とサブスクリプションによるアクセス付与は、外部組織とのデータ共有のために Google が提供・推奨する仕組みです。共有データセットに行レベルのアクセス ポリシーや列レベルのセキュリティ(ポリシータグ、データ マスキング)を設定することで、データをコピーせずにパートナーごとに見える行と列を制御できます。
【誤りの選択肢】
B:データセットへの読み取りロールを付与するだけでは、データセット内のすべてのテーブルのすべての行と列が見えてしまい、パートナーごとの制御ができません。また外部組織のユーザーに直接 IAM を付与していく方法は、利用状況の管理や取り消しの面でも Analytics Hub より劣ります。
C:Cloud Storage へのエクスポートはデータのコピーを作成するため、データが古くなる、ストレージ費用が増える、パートナーごとにエクスポート処理を管理する必要がある、といった問題があります。BigQuery 上での分析もできなくなり、行・列単位のきめ細かな制御も実現しにくい方法です。
D:パートナーごとにプロジェクトとデータセットのコピーを作る方法は、データの重複・同期の手間・費用が増えるうえ、Analytics Hub の「コピーせずに共有できる」という利点を打ち消してしまいます。行と列の制御は 1 つの共有データセットに行・列レベルのセキュリティを設定すれば実現できるため、不要な運用負荷です。
【参考】
BigQuery Sharing の概要定期購入を管理リスティングを管理する