GCPの組織ポリシーには、VMの外部IPを制限するポリシー(constraints/compute.vmExternalIpAccess
)があります。
詳しい解説がGoogle Cloud Blogに載っていました。
この組織ポリシーを適用しようとして、Project内のCompute Engineを眺めていたところ、Dataflowジョブを実行後、外部IPを持ったワーカーVMが起動していることに気づきました。Dataflowはサーバーレスなデータ処理ですが、裏では外部IPアドレスを持つワーカーVMを立ち上げているようです。
そこで、組織ポリシーを適用後にDataflowが実行できるかどうか、実験してみました。この戦いはどちらが勝つでしょうか?
実験の準備
この実験には組織が必要なので、Cloud Identityを利用して組織を作成しました。
Cloud Aceさんのページを参考にさせていただきました。ありがとうございます。
https://cloud-ace.jp/column/detail151/
Dataflow(サンプルJob)を実行する
まずは、組織ポリシーをかけてないところで、DataflowのサンプルJob(Word Count)を実行しました。
実行中にインスタンステンプレートをのぞいてみたところ、デフォルト設定では外部IPがエフェメラルで設定されているようです。
組織ポリシーを適用する
VMの外部IPを制限するポリシー(constraints/compute.vmExternalIpAccess
)をすべて拒否に設定しました。
対決・・・結果は?
**組織ポリシー適用後にDataflowを動かしました。**結果はどうなったでしょうか?
**組織ポリシーが勝ちました!!**アクティビィをみるとVM作成で失敗していますので、DataflowはワーカーVMが作成できず失敗したようです。
まとめ
- 外部IPに関する組織ポリシーを適用するとデフォルト設定のDataflowは失敗します。
- 回避方法についても実験しましたので、別でまとめました。