Làm cách nào để ngăn chặn / gọi tường lửa đến API siêu dữ liệu sơ thẩm AWS EC2?


14

Các AWS EC2 Instance Metadata API cung cấp rất nhiều chức năng hữu ích. Bất cứ ai trên phiên bản EC2 thực tế đều có thể thực hiện cuộc gọi đến http://169.254.169.254/và xem siêu dữ liệu cho trường hợp cuộc gọi được thực hiện. Tính bảo mật của API sao cho nó chỉ kiểm tra xem cuộc gọi có bắt nguồn từ thể hiện hay không. Do đó, nếu tôi cho phép ai đó chạy mã trên ví dụ của mình, tôi muốn biết cách chặn quyền truy cập tốt nhất vào url cụ thể đó trong khi vẫn giữ quyền truy cập.

Như một điểm nổi bật, tôi đã rất ngạc nhiên khi thấy rằng API siêu dữ liệu cũng có thể được truy cập thông qua http://instance-data/(mà tôi tình cờ tìm thấy ở đâu đó).

Tôi có thể kiểm tra các url được gọi bởi tất cả các mã đang chạy trong trường hợp này, nhưng tôi cho rằng đây không phải là một cách tiếp cận tốt được cung cấp địa chỉ IPv6 (có thể) hoặc một số mã hóa URI kỳ lạ sẽ phân giải thành IP Siêu dữ liệu (169.254 .169.254) hoặc một số URL không có giấy tờ (có vẻ như) http://instance-data/.

Câu trả lời:


25

Tường lửa nó tắt.

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

Quy tắc này cấm bất kỳ người dùng nào khác ngoài người dùng root mở kết nối tới 169.254.169.254.


Điều này sẽ không ngăn chặn việc sử dụng "bình thường" của dịch vụ này. Thông thường, dịch vụ được gọi bởi / obo người dùng EC2 gần như không bao giờ là root.
Sam-T

@ Sam-T Nếu bạn cần người dùng ec2 truy cập nó, bạn chắc chắn có thể viết một quy tắc để cho phép điều đó.
Michael Hampton

Nếu bạn ngăn chặn ở cấp tường lửa - chỉ cho phép root, không chắc bạn sẽ kích hoạt nó như thế nào cho người dùng EC2 (tôi chỉ không biết). Bởi người dùng EC2 - Ý tôi là bất cứ ai bắt đầu cá thể - sự hiểu biết của tôi là siêu dữ liệu đều được người dùng EC2 này (và bất kỳ ai khác) truy cập vào ví dụ. Bạn có thể cho ví dụ
Sam-T
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.