0

我有一個使用rethink-db實例作爲數據庫的彈性beanstalk應用程序。顯而易見的事情是將訪問數據庫的權限限制在這個應用程序中。如何限制RethinkDB訪問特定應用程序?

但是,如果我將Rethinkdb實例的安全組中的相關端口設置爲0.0.0.0以外的任何值,則應用程序無法訪問數據庫。

該應用程序正在使用數據庫的私人DNS解析,並在同一個亞馬遜地區...據我所知,這應該已經讓我通過安全組沒有任何規則。顯然,在這種情況下。

我曾嘗試將應用程序安全組的異常添加到該端口上的數據庫安全組以及該應用程序的負載平衡器的安全組。我也在同一時間嘗試過。沒有骰子。

beanstalk-app是可擴展的,所以它通常會從幾個可以隨時改變的實例進行通信。遺憾的是,通過彈性IP並允許數據庫安全組不是一種選擇。

最後,我被迫離開安全組的重新思考數據庫的驅動程序端口廣泛打開在0.0.0.0 ...任何其他我試過讓我無法訪問我自己的應用程序。

有人可以告訴我我做錯了什麼嗎?

回答

1

,據我瞭解,這本身就應該已經讓我passt的 安全組沒有任何規律

這是不正確的。你總是必須有一個安全組規則來允許訪問。所有入站流量默認都被阻止。

我已嘗試端口

這聽起來像是你需要做的正是上增加對應用程序的安全組 到數據庫安全組異常。您需要在分配給數據庫服務器的安全組中創建入站規則。在該規則中,您將指定Elastic Beanstalk實例所屬安全組的ID。

如果這不起作用,那麼您可能需要在問題中發佈更多信息,例如實際的安全組設置。

另外,您需要確保您的EB實例正在嘗試通過數據庫服務器的專用IP連接到數據庫服務器。您的問題聽起來像是他們正在使用數據庫服務器的公共IP。我知道你說他們正在使用數據庫服務器的專用DNS,但是您需要確定是否屬於這種情況,並確保DNS在從EB實例引用時正確解析私有IP。

+0

有趣的...在你強調私有IP後,我改變了應用程序,明確使用IP而不是DNS ......現在它可以工作。謝謝!我認爲當實例在同一個區域時,私有DNS應該總是解析爲私有IP? – UncleBob

+0

是的,私人DNS應解析爲私有IP。奇怪的是,事實並非如此。你確定DNS查找在你的EB服務器上工作嗎?我試着運行'nslookup your-db-private-dns'來查看返回的內容。 –

+0

我無法確認EB實例本身,因爲它們沒有密鑰,但該區域中的其他實例似乎正確地解析了DNS。 Buuut ...我剛剛意識到數據庫在t2實例上運行,而lein elastic beanstalk將應用程序部署到t1實例。可能是問題的一部分,儘管它們仍處於相同的VPC中,並且解決方案正確地工作(從t2到t1實例)。 – UncleBob

相關問題