中野智文のブログ

データ・マエショリストのメモ

FirebaseのRTDBからFireStoreに乗り換えるためにGCPのプロジェクトを作成したときのメモ

背景

GCPのプロジェクトの中では、Firebaseのストレージは、排他的で、RTBDかFirestoreのどちらしか選べないらしい。 強制的にFirestore にする手もあるが、戻れなくなるのも嫌なので、新しくGCPのプロジェクトを作ることにした。 なお、Firebaseのプロジェクトという言葉と、GCPのプロジェクトいう言葉があって紛らわしい。

対応

普通に作った。ただ、ユーザの設定を元のGCPのプロジェクトから引き継ぎたい。継承という文字列が見えるが別のプロジェクトから継承するものではないらしい。

またrole(役割)のコピーというコマンドも見つかったりするかもしれないが、割り当てられた状態をコピーするのではなく、role(役割)そのものをコピーするものなので関係がない。

答えは、 iam-policy を入手すること。 次のコマンドで得られる。

gcloud projects get-iam-policy OLD_PROJECT_ID > iam-policy.yaml

サービスアカウントも含まれているので、editor などで、不必要な項目は消す。

次に新しいGCPプロジェクトを作成し、そのプロジェクトに読み込ませる。

gcloud projects set-iam-policy NEW_PROJECT_ID iam-policy.yaml

以上で別プロジェクトのユーザの設定が引き継がれているはずだ。

まとめ

別のGCPプロジェクトからユーザをコピーするときは gcloud projects get-iam-policygcloud projects set-iam-policy を使う。