組織ポリシーでCloud Runの内部/外部アクセスを完全に制御する # GoogleCloudセキュリティ
組織ポリシーとは
概要
組織で一元的にリソースのパラメータ(場所や通信制御)を設定したいときに使用するのが組織ポリシーです。
【公式から引用】
組織のリソースの使用方法に関する制限を構成して集中管理できます。
開発チームがコンプライアンスを遵守できるように違反防止策の定義と確立ができます。
プロジェクト オーナーとチームがコンプライアンス違反を心配せずに迅速に行動できるようになります。
公式ドキュメントにも記載があるように、コンプライアンス違反を事前に防ぐ、または集中管理するという意味合いで使用されることが多いです。
属人的にリソースのパラメータの設定を任せる場合、予期せぬミスなどの偶発的なアクシデントが発生する可能性もあるので、あらかじめ組織ポリシーを使用していれば最低限のポリシー違反や設定ミスを防ぐことができます。
組織ポリシーのイメージ
下記の図は、全てのVMインスタンスに外部IPの付与を禁止するというポリシーを適用させた場合の例です。(リソースについては点線で区別してます=直でポリシーは付与しないため)
今回は、Cloud Runに固有の組織ポリシーとなり、内部/外部への通信経路を組織ポリシーで制御していきます。
手順
今回の手順は下記になります。
- 組織ポリシーを設定
- 適応後の比較
次から、実際の操作画面について解説していきます。
1.組織ポリシーを設定する
Allowed VPC egress settings のポリシー設定
組織ポリシーは「constraints/run.allowedVPCEgress」を使用して、VPC経由でのみ外部へのトラフィックを許可するといった設定を反映します。
- [組織ポリシー]をコンソール画面で検索
- [フィルタ]から、[constraints/run.allowedVPCEgress]を検索し、押下します
- [ポリシーを管理]を押下し、[カスタマイズ]→[置き換える]を選択する
- [ルールの追加]を押下する
- ポリシーの値を[カスタム]で選択し、[許可]を選択し、カスタム値に[all-traffic]と入力する
- 最後に[ポリシーを設定]を押下し完了
これで内部から外部の通信をVPCのファイアウォールルールで制限をすることができます。(VPC経由出なければインターネットにアクセスできない)
Allowed ingress settings のポリシー設定
[ルールの追加]を押下しポリシーの値を[カスタム]で選択する、までは先ほどの操作と同じなので画像は割愛します。
- [組織ポリシー]をコンソール画面で検索
- [フィルタ]から、[constraints/run.allowedIngress]を検索し、押下します
- [ポリシーを管理]を押下し、[カスタマイズ]→[置き換える]を選択する
- [ルールの追加]を押下し、ポリシーの値を[カスタム]で選択
- [許可]を選択し、カスタム値に[internal]と入力する
- 最後に[ポリシーを設定]を押下し完了
これで内部からの通信にのみ制限をすることができます。(インターネットからはアクセスできない)
2.適応後の確認
Cloud Runの作成画面
実際にCloud Runの作成画面にて、組織ポリシーが適応されているかの確認を行います。(Cloud Runの説明は割愛します)
- [Cloud Run]をコンソールで検索し、[サービスの作成]から新規に作成します
- 作成画面の1番下の▼内の、[ネットワーキング]セクションに移動します
- [アウトバウンド トラフィック用の VPC に接続する]のチェックを押下します
- [プライベート IP へのリクエストのみを VPC にルーティングする]のグレーアウトを確認
- [すべてのトラフィックを VPC にルーティングする]のチェックボックスのみ押下可能
これで、新規に作成するCloud Runに関しては組織ポリシーで制御することが可能となりました。
まとめ
この後に、VPCのファイアウォールを設定して、ゲートウェイ(NATやプロキシサーバー)に向けた通信などのルールを作成する必要があります。
また、既存にあるCloud Runの設定には自動的に反映するということは出来ないようなので、再設定する必要があります。
今回はCloud Runに絞り解説しましたが、同様のポリシーが他リソースでも存在する場合、同じような構成を設定することも可能です。
Google Cloudを使用し、組織で一元的にリソースの設定値を管理したい場合には、組織ポリシーを検討しましょう。