はじめに
「特定のサービスをデフォルトで無効化する」という組織ポリシーがありますが、「全サービスに適用したらどうなる?」といった疑問があり、試してみました。
本記事は、Gemini の Canvas 機能を補助として利用しています。
手順・解説
1. 組織ポリシー「サービスの使用を制限する」とは?
企業管理者が Google Cloud のリソース階層内で使用できる Google Cloud サービスを制御するための組織ポリシーが制約名 constraints/gcp.restrictServiceUsage
として用意されています。今回はこのポリシーの「Allow (許可モード)」を使い、「デフォルトですべてのサービスを無効化し、許可したものだけを使えるようにする」という厳しい設定を試します。
ちなみに、一部のサービスは、すべての Google Cloud プロダクトにとって不可欠であるため、制約のサポート外となっています。
例えば以下のサービスは対象に含まれていませんでした。制限してはいけないものは Google Cloud 側で既に除外しているので、気にしなくて良いようです。
cloudresourcemanager.googleapis.com
serviceusage.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
cloudasset.googleapis.com
cloudbilling.googleapis.com
2. 特定のフォルダに組織ポリシーを設定する
今回は検証のため、組織全体ではなく特定のフォルダにポリシーを適用します。
-
Google Cloudコンソールで「IAMと管理」>「組織のポリシー」に移動します。
-
ポリシーの一覧から「
constraints/gcp.restrictServiceUsage
」を検索し、クリックします。
-
ポリシーの詳細画面で「ポリシーを管理」をクリックします。
-
「ポリシーのソース」で「親のポリシーをオーバーライドする」を選択します。
-
「ポリシーの適用」で「交換」を選択します。
-
「ポリシーの値」で「カスタム」、「ポリシータイプ」で「許可」を選択します。
-
許可したいサービスを xxx.googleapis.com の形式で追加します。今回は許可対象がない状態とするため、存在しないサービス名(xxx.googleapis.com) を値として設定しました。
-
数分待ったあと、フォルダ配下に新しいプロジェクトを作成します。
組織ポリシーの変更が反映されるまでにはタイムラグ(〜数分?)があります
3. ポリシー適用後の世界の姿
ポリシーが適用されると、プロジェクトの挙動はどのように変わるのでしょうか。
a. Cloud Console での挙動
ポリシーを適用したフォルダ内に作成したプロジェクトのコンソールで、許可していないサービス(例えば Compute Engine)のページを開いてみてください。「ポリシーによってブロックされています。」というエラーが表示され、リソースの閲覧や操作ができなくなります。
b. コンソールでのAPI有効化
次に、このプロジェクトで API を有効化する際の挙動を見ていきましょう。
- プロジェクトの「APIとサービス」>「有効な API とサービス」に移動します。
- 画面上部の「+ APIとサービスの有効化」をクリックします。
- API ライブラリで、「Compute Engine API」を検索し、「有効にする」ボタンをクリックします。
API の有効化は正常に完了します。しかし、コンソールで Compute Engine のページにアクセスすると「ポリシーによってブロックされています。」というエラーが表示され、サービスが利用できない状態であることが確認できます。
おわりに
「サービスの使用を制限する」組織ポリシーは、Google Cloud 環境で利用可能なサービスを明確に定義し、意図しないサービスの利用を防ぐための非常に強力なツールです。
許可する対象を列挙するルールを使えば、必須のサービスを除き、許可したサービスだけ利用可能となる制限をかけることができます。
この強力なポリシーは諸刃の剣でもあるため、導入する際はテスト環境で十分に影響を検証することをお勧めします。本記事が、皆さんのセキュアな環境構築の一助となれば幸いです。
参考
- 組織ポリシーの制約 | Resource Manager のドキュメント
- リソース使用量の制限 | 組織ポリシーの制約
- リソース使用量の制限をサポートしているサービス | Resource Manager のドキュメント