AWS EC2インスタンスメタデータAPIの呼び出しを防止/ファイアウォールする方法は?


14

AWS EC2インスタンスのメタデータAPIは、便利な機能の多くを提供します。実際のEC2インスタンスで誰でも呼び出しを行い、呼び出し元http://169.254.169.254/のインスタンスのメタデータを見ることができます。APIのセキュリティは、呼び出しがインスタンスから発信されたことを確認するだけです。したがって、誰かが私のインスタンスでコードを実行することを許可している場合、アクセスを維持しながらその特定のURLへのアクセスをブロックする最良の方法を知りたいと思います。

ハイライトとして、メタデータAPIにもhttp://instance-data/(偶然どこかで見つけた)からアクセスできることに驚いた。

このインスタンスで実行されているすべてのコードによって呼び出されているURLを検査できますが、IPv6アドレス(おそらく)またはメタデータIP(169.254)に解決されるいくつかの奇妙なURIエンコーディングを考えると、これは良いアプローチではないと思います.169.254)、またはのような文書化されていない(と思われる)URL http://instance-data/

回答:


25

ファイアウォールをオフにします。

iptables -A OUTPUT -m owner ! --uid-owner root -d 169.254.169.254 -j DROP

このルールは、rootユーザー以外のユーザーが169.254.169.254への接続を開くことを禁止します。


これは、このサービスの「通常の」使用を妨げませんか?通常、このサービスは、ほとんどルートではないEC2ユーザーによって呼び出されます。
サムT

@ Sam-T ec2-userにアクセスする必要がある場合は、それを許可するルールも作成できます。
マイケル・ハンプトン

ファイアウォールレベルで、rootのみを許可するように防止する場合、EC2ユーザーに対してそれをどのように有効にするかわからない(わかりません)。EC2ユーザーによる-インスタンスを開始した人を意味します-私の理解では、インスタンス上のこの(および他の)EC2ユーザーがメタデータにアクセスします。例を挙げてください
サム-T
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.