LoginSignup
0
0

Amazon MWAA のパブリックアクセスモードでIPアクセス制限をかけられるか?

Posted at

確認したいこと

前振り

Amazon MWAAでは、アクセスモードが2種類あります。パブリックアクセスモード、プライベートアクセスモードです。
パブリックアクセスモードは、Airflowのウェブサーバーにインターネット経由でアクセスできるモードです。AWSコンソール上のリンクからウェブサーバーにアクセス可能です。一方、プライベートアクセスモードは、AirflowのウェブサーバーにはVPC内からのアクセスに閉じられます。そのため、VPC外からアクセスするためにはVPCやロードバランサーを利用する必要があります。

確認したい内容

今回確認したいのは、 パブリックアクセスモード(インターネット経由でアクセス可能)でアクセスするIPを制御できるか? です。
インターネット経由でアクセス可能な場合、セキュリティの観点からアクセスできるIPを絞りたいのが常だと思います。プライベートアクセスモードであれば、自分でALBを建ててそのセキュリティグループで制御できますが、パブリックアクセスモードでもセキュリティグループで制御できるかを確認します。

結論から

出来ません。
MWAAの環境に設定するセキュリティグループでアクセスIPを制限しても、ウェブサーバーにはそれ以外のIPからもアクセスできてしまいます。

じゃあセキュリティグループはどこを制御している?

MWAAの環境を作成する際に、以下のようにセキュリティグループを選択できますが、「環境とウェブサーバー間のトラフィックを許可するために必要」とあります。
image.png
また、以下のドキュメントを見ると、(オプション)としてメタデータベースとのやり取り、ウェブサーバーとのやり取りを許可する例が記載されています。

これらを総合して考えると、MWAAの環境に設定するセキュリティグループは、以下の図の中の左側のCustomer VPC内のスケジューラーやWorkersに対して付与されるのではないかなと思われます。
image.png

画像参照元:

検証

分かりやすいように、MWAAの環境に設定されているセキュリティグループのインバウンドルールに、何も設定しないようにしてみました。
image.png

その状態で、以下の「Airflow UI を開く」のリンクをクリックして、アクセスしてみます。
image.png

アクセスできました。
ただ、今までは出ていなかった警告文のようなものが出ています。
image.png

The scheduler does not appear to be running. Last heartbeat was received 45 minutes ago.
The DAGs list may not update, and new tasks will not be scheduled.

翻訳はこちら。

スケジューラーは実行されていないようです。最後のハートビートは 45 分前に受信されました。
DAG リストは更新されない場合があり、新しいタスクはスケジュールされません。

ウェブサーバーから、スケジューラーにアクセスが出来ていなそうな内容ですね。
やはり、セキュリティグループはウェブサーバーというよりはCustomer VPC内のスケジューラーやWorkersに付与されているのかなと思われます。

おわりに

MWAAのパブリックアクセスモードだと、少なくともセキュリティグループでのIPアクセス制限は出来なさそうですね。プライベートアクセスモードにして、前にALBなど置いてそこにセキュリティグループを設定するなどするしかなさそうです。
MWAAの公式ドキュメントの翻訳があまりイケてなく、読み解くのが結構大変でした。今後もMWAAの記事は検証し次第上げていきたいなと思います。

参考にしたサイト

↑めっちゃわかりやすいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0