9

Chúng tôi có phiên bản EC2 trên AWS mà chúng tôi đã triển khai dịch vụ phụ trợ của chúng tôi. Chúng tôi bắt đầu bằng cách sử dụng Bảng tính Google (được viết bằng Google Apps Script) để trình bày chương trình phụ trợ của chúng tôi, thông qua một dịch vụ web được triển khai trên máy chủ của chúng tôi. Chúng tôi có một cổng cụ thể từ đó giao thức https (sử dụng một chứng chỉ tự ký) được sử dụng để phục vụ webservice được mã hóa trong khi đang bay. Chúng tôi đã thiết lập Security Group (cơ bản là một nhóm nhập tường lửa) trong đó bao gồm sau CIDR dao động cho rằng cổng xâm nhập cụ thể của webservice của chúng tôi:UrlFetchApp.fetch trên Bảng tính Google không thể kết nối với dịch vụ web phụ trợ AWS

64.18.0.0/20 
64.233.160.0/19 
66.102.0.0/20 
66.249.80.0/20 
72.14.192.0/18 
74.125.0.0/16 
173.194.0.0/16 
207.126.144.0/20 
209.85.128.0/17 
216.58.192.0/19 
216.239.32.0/19 

như mô tả trong https://developers.google.com/apps-script/guides/jdbc#setup_for_google_cloud_sql

Thiết lập này đã làm việc tốt cho đến 5 ngày trước đây. Sau đó, một cái gì đó kỳ lạ xảy ra. Khi chúng tôi chạy tập lệnh phía sau bảng tính từ mã 'Trình chỉnh sửa tập lệnh' hoạt động tốt và yêu cầu trở lại thành công dịch vụ web của chúng tôi. Nhưng khi chính xác cùng một mã được gọi thông qua một mục trình đơn, nó đã không làm bất cứ điều gì. Sau khi điều tra bực bội, chúng tôi phát hiện ra rằng yêu cầu thậm chí không đến được máy chủ của chúng tôi (có nhiều triệu chứng kỳ quặc khác như chỉ lệnh log cuối cùng được hiển thị trên 'Bảng điểm Thi công' mặc dù có nhiều người khác). Sau đó, chúng tôi đã thử thay thế nhóm bảo mật bằng một quy tắc chấp nhận từ bất kỳ ip nào nhưng đối với tất cả mọi thứ cổng cụ thể đã hoạt động tốt trở lại.

Dưới đây là một liên kết vấn đề để dường như có liên quan trong google-apps-script-vấn đề trang: https://code.google.com/p/google-apps-script-issues/issues/detail?id=4679#c8

Chúng tôi chạy tcpdump tcp port <port> -i eth0 -vv và quan sát thấy rằng khi chúng ta chạy mã từ yêu cầu 'Script Editor' đã được thực hiện từ 66.102.7.156 (và từ các ips tương tự, nằm trong số 66.102.0.0/20), khi mã được gọi từ mục menu trong bảng tính, yêu cầu được thực hiện từ 72.14.199.55 (và từ các ips tương tự, nằm trong số 72.14.192.0/18). Điều này dường như là phạm vi ip có vấn đề.

Câu hỏi của tôi là, tại sao khi nguồn yêu cầu được bao gồm chính xác trong quy tắc tường lửa, một khối ips không hoạt động và bắt đầu hoạt động khi hạn chế ip trên cổng được nâng lên (nguồn ip 0.0.0.0/0)? Đó có phải là lỗi của Nhóm bảo mật trong AWS không? Hay chúng ta đang làm gì đó sai? Ngoài ra, nếu cách tiếp cận của chúng tôi không đầy đủ theo bất kỳ cách nào, các giải pháp hoặc đề xuất thay thế sẽ được đánh giá cao.

+0

Thú vị. Tôi nhớ lại đọc một cái gì đó tương tự như trong khi trước đây, tôi nghĩ rằng trên trang vấn đề GAS. –

+0

Thật thú vị. Và cảm ơn bạn đã nhắc nhở, có thực sự có một vấn đề mà tôi quên liên kết ở đây. Dưới đây là: https://code.google.com/p/google-apps-script-issues/issues/detail?id=4679#c8 – ciuncan

Trả lời

1

Theo issues bạn liên kết với, đã có một lỗi trong Apps Script dẫn đến hành vi này. Lỗi đó hiện đã được sửa.

+0

Cảm ơn câu trả lời của bạn. Có thể mất một lúc để xác nhận xem vấn đề của chúng tôi có được giải quyết hay không. Sau đó tôi sẽ đánh dấu câu trả lời này là câu trả lời. – ciuncan

Các vấn đề liên quan