Cloud SQL を別プロジェクトに export してマスクしたい
あるプロジェクト A の Cluod SQL の中身を別プロジェクト B のそれにコピーしたい
前提知識
Cloud SQL -> GS, GS -> Cloud SQL は console からでも API からでも可能
import / export を叩くと Cloud SQL にデフォルトで紐づくサービスアカウントでそれが実行される
なお、これを叩くには Cloud SQL 管理者の権限が必要(編集者ではダメ)
手順
A の dump が入った GS の権限欄で B の Cloud SQL のサービスアカウントを追加
ストレージ閲覧者で ok
B の import を叩く際にソースを A の GS にすれば ok
B の稼働中の DB とは別名(同一インスタンス)に export しておき、そこでマスク処理を行ってから稼働中の DB とスイッチさせると良い
マスクをかける前のデータを B のプロジェクトのユーザが見れないことを確認しておく
所感
相当に規模がでかければまた話が別かもしれないが、 ETL を使うよりこの方針の方が遥かに速く負担も小さそう