Tại sao tôi không thể kết nối với Amazon RDS sau khi thiết lập?


43

Vì vậy, tôi mới tạo tài khoản Amazon RDS. Và tôi bắt đầu một ví dụ về cơ sở dữ liệu.

The "endpoint" is:
abcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

Tuyệt quá! Bây giờ tôi cố gắng kết nối với nó từ một trong các phiên bản EC2 khác của tôi.

mysql -uUSER -pPASS -habcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

Nhưng không có gì hoạt động và nó chỉ bị treo.

Tôi đã cố gắng ping nó, và không có gì hoạt động. Chẳng có gì xảy ra.

Tôi có cần thay đổi một số cài đặt không?

Câu trả lời:


45

Theo mặc định, RDS không cho phép bất kỳ kết nối nào không được chỉ định trong Nhóm bảo mật (SG). Bạn có thể cho phép dựa trên địa chỉ CIDR hoặc theo số tài khoản Amazon sẽ cho phép mọi EC2 trong tài khoản đó truy cập.


27

Đó là "chỉ treo" vì bạn chưa cấu hình tường lửa để chấp nhận các kết nối myQuery từ phiên bản khác của bạn, vì như vậy gói tin bị hủy ở cấp tường lửa, để giải quyết vấn đề này bạn cần:

  1. đi vào bảng điều khiển AWS của bạn
  2. Tab EC2
  3. Lưu ý nhóm bảo mật của máy chủ myQuery của bạn (bây giờ hãy gọi SG-MYSQL này)
  4. nhấp vào nhóm bảo mật ở bên trái của giao diện điều khiển
  5. nhấp vào nhóm của bạn trong menu trung tâm SG-MYSQL
  6. nhấp vào tab gửi đến
  7. chọn myQuery từ danh sách, thêm chi tiết máy chủ của khách hàng của bạn và lưu quy tắc

LƯU Ý IP nguồn cho máy chủ sẽ không phải là IP đàn hồi của bạn (trong hầu hết các trường hợp) bạn sẽ có một IP bên trong trên thiết bị (ifconfig trên linux sẽ hiển thị cho bạn điều này).


1
Tôi đã thực hiện điều đó trên máy chủ EC2 của mình. Tôi đã mở tất cả các cổng tiêu chuẩn.
Alex

1
Tôi không có ví dụ EC2 và RDS của tôi không thể kết nối với thế giới bên ngoài cho đến khi tôi làm điều này.
Umair A.

1
điểm tuyệt vời để sử dụng IP đàn hồi!
dùng1641443

1
Cảm ơn vì điều đó. Các hướng dẫn đã làm cho tất cả sự khác biệt!
Ông T

1
Tạo một tài khoản tại lỗi máy chủ chỉ để nâng cấp điều này. CẢM ƠN BẠN.
CaptainMarvel

7

Rất nhiều cuộc nói chuyện ở đây về các nhóm bảo mật, nhưng cũng kiểm tra:

  • Các mạng con liên quan có vẻ được cấu hình đúng không?
  • Các mạng con có phải là một phần của Nhóm định tuyến có vẻ được cấu hình đúng không (Cổng Internet được chỉ định, v.v.?)
  • RDS có nói rằng nó có thể truy cập công khai không?
  • Và tất nhiên, hãy kiểm tra Nhóm bảo mật RDS và Nhóm bảo mật EC2
    • Đừng quên IP nguồn thực tế của bạn có thể là IP bên trong (nếu truy cập nội bộ qua VPC) hoặc IP bên ngoài (có thể là IP của bộ định tuyến hoặc IP Instance của EC2 khác với IP Cân bằng tải / IP đàn hồi của nó) - để khắc phục sự cố, bạn có thể cố gắng cho phép truy cập vào tất cả các IP và cổng.

(Nhóm định tuyến là vấn đề của tôi; trong việc tạo một mạng con mới, tôi đã bỏ qua việc thêm nó vào một nhóm định tuyến có cổng.)


Để làm rõ: TẤT CẢ các mạng con bạn chọn trong nhóm mạng con RDS nên có các bảng định tuyến có cổng internet được chỉ định. Vấn đề của tôi là hai trong số các mạng con tôi chọn là các mạng con "riêng tư" của tôi, có một cổng NAT được chỉ định cho lưu lượng truy cập đi thay vì cổng internet và RDS đã chọn một máy chủ trong một trong các mạng con đó. Tham khảo bài viết này nếu bạn không quá quen thuộc với định tuyến: Medium.com/@mda590/aws-routing-101-67879d23014d
timetofly 29/12/17

Tôi đã bị ảnh hưởng bởi cùng một vấn đề như @timetofly. Tôi đã có một công việc một lần mà tôi quyết định chạy trên ECS Fargate, yêu cầu NAT tải xuống các tệp. Việc thiết lập NAT đã phá vỡ kết nối của tôi với RDS từ máy tính xách tay của tôi. Khi công việc kết thúc, tôi đã cập nhật các mạng con của mình để chỉ sử dụng Cổng Internet và tôi đã sẵn sàng để đi.
vitale 232

4

Đã sửa.

Phải cấp quyền truy cập cho nó trong các nhóm bảo mật theo DB ...


6
Bạn có thể giải thích những gì bạn đã làm để cấp quyền truy cập?
David Csonka

1
Cơ sở dữ liệu của tôi có một nhóm bảo mật với một quy tắc. Cho phép truy cập từ MỌI NƠI tới cổng 1433. Tôi không thể kết nối -_-
Người đàn ông Muffin

1

Tôi gặp vấn đề tương tự ;

  1. Nhóm bảo mật> rds-launch-wizard (hoặc bất kỳ tên nào được chọn cho db SG)
  2. chọn tab trong nước> chỉnh sửa
  3. thêm vai trò mới
  4. MySQL
  5. Nguồn -> chèn ip aws vm (ví dụ: 12.3,14.80 / 32)

đã làm cho tôi ...


1

Trong nỗ lực mở bảo mật hoàn toàn để kiểm tra trước khi khóa truy cập, cả phiên bản cơ sở dữ liệu và phiên bản EC2 của tôi đều sử dụng cùng một nhóm bảo mật và cả cổng 3306 trong và ngoài nước đều được định cấu hình để cho phép kết nối từ mọi nơi. Vấn đề - Tôi đã có thể kết nối với Aurora từ máy tính xách tay của mình nhưng thật kỳ lạ không phải từ phiên bản EC2 của tôi, như thể phiên bản EC2 không ở đâu cả. Giải pháp là thêm một quy tắc mysql / Aurora gửi đến khác và chỉ định id nhóm bảo mật tương tự làm nguồn cho các kết nối gửi đến. Nhóm bảo mật của tôi có một quy tắc đề cập đến chính nó và tôi có thể kết nối từ sổ ghi chép hoặc ví dụ EC2 của mình.


-3

quy tắc gửi vào mysql nên như dưới đây

Hình ảnh, tưởng tượng đây là vấn đề với nhóm bảo mật


3
Có một lý do nào khiến bạn phải trả lời một câu hỏi năm tuổi để trả lời nó với cùng một câu trả lời đã có trong nhiều năm không? Cho 0.0.0.0/0phép truy cập vào 3306cũng không phải là một ý tưởng tuyệt vời.
ceejayoz

Tôi đã cố gắng chỉ cho người dùng những gì họ nên thay đổi và cách họ có thể thay đổi, bạn biết có nhiều người dùng như tôi không thể giải quyết vấn đề bằng cách đọc những điều trên. nó có thể không giúp bạn nhưng có người dùng đang tìm kiếm cái này. bạn đã bỏ phiếu vì nó không giúp bạn.
Nirmal Dhara

3
Downvote của tôi xuất phát từ việc mọi người nên mở MySQL ra toàn bộ internet. Đó là một cách tiếp cận nguy hiểm.
ceejayoz

Tôi hiểu rồi. Tôi chỉ hiển thị nơi họ có thể chỉnh sửa các nhóm bảo mật, họ có thể chọn từ danh sách thả xuống bất cứ điều gì họ muốn.
Nirmal Dhara
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.