Google Cloud プロジェクト 削除保護(リーエン)とは?
リーエンとは
Google Cloudではプロジェクトを削除する際に、削除保護としてリーエンという仕組みがあります。
簡単にいうと、プロジェクトに削除禁止のタグを付けるようなものです。一度リーエンを適用すると、解除しない限りプロジェクトを削除できなくなります。
よって、プロジェクトを誤って削除してしまわないように、用意されているインシデントを事前に防ぐ役割を持ちます。
リーエンの適用方法
リーエンの適用方法としては、以下のgcloudコマンドを使用して、プロジェクトに適用していきます。(alphaコマンドについてはこちらをご覧ください)
gcloud alpha resource-manager liens create \
--project=[PROJECT_ID] \
--restrictions=[PERMISSION_RESTRICTION] \
--reason=[LIEN_REASON] \
--origin=[LIEN_ORIGIN]
また、自動的にリーエンが適用されることもあります。その例としては、あるプロジェクトのIAMサービスアカウントを他のプロジェクトのリソースに接続すると、そのサービスアカウントが置かれているプロジェクトに自動的にリーエンが適用されます。
また、次の削除方法でもご紹介する共有VPCの作成でも、リーエンが自動的に有効化されるようです。
リーエンが適用されたプロジェクトの削除方法
リーエンの削除保護
リーエンが適用されているプロジェクトは冒頭の画像のように、すぐにシャットダウンをすることができません。
コンソール左上のプロジェクトの選択から削除したいプロジェクトに移動し、Google Cloud コンソールのIAMと管理から、設定に移動し、シャットダウンを選択します。
削除実行のポップアップが出てくるので、プロジェクトIDを入力して削除を実行すると、以下のようにリーエンが適用されているため、削除ができません。
画像にあるようにリーエンの原点を見ると、今回は共有VPC(xpn.googleapis.com)を作成したことで、自動的にリーエンが適用されたことが原因のようなので、そのリーエンを無効にする必要があります。
リーエンを無効化して削除する
Cloud Shellにて、以下のコマンドの順で共有VPCのリーエンを無効にしていきます。
- リーエンのリスト一覧を取得する
gcloud alpha resource-manager liens list
- 以下のような出力がされるため、NAMEをメモしておく
NAME: p1071687161909-lfce61411-7e2e-4636-9ba3-08aedf9e73f3
ORIGIN: xpn.googleapis.com
- NAMEの文字列をdeleteの後に貼り付けて、実行する
gcloud alpha resource-manager liens delete p1071687161909-lfce61411-7e2e-4636-9ba3-08aedf9e73f3
すると、先ほどまで削除ができなかったプロジェクトをシャットダウンすることができ、削除保留に移行することができました。
まとめ
Google Cloudのリーエンは、プロジェクトの誤削除を防ぐ重要な安全機能です。
手動または自動で適用され、解除しない限りプロジェクトの削除を防ぎます。リーエンの解除方法を理解し、適切に管理することで、Google Cloudリソースの安全性と柔軟性のバランスを取ることができます。
参考となる公式ドキュメントは以下になります。