2015-12-22 36 views
2

我使用的是亞馬遜RDS和亞馬遜EC2。Mysql允許用戶只從特定DNS連接

對於亞馬遜EC2我配置了負載平衡器,我將來會使用自動調節。

我想在我的RDS Mysql實例中創建用戶,該實例只能從特定的DNS訪問mysql。

例如:我有域名'test.com',它是負載均衡DNS的CNAME。當我在mysql'test-user'@test.com'中創建用戶並嘗試從我的EC2實例連接時,我收到一條錯誤消息:訪問用戶test'user'@'私人ip我的ec2實例在這裏'。

所以我不能在mysql中使用ip地址,因爲我打算使用自動縮放,而amazon會使用未知的ip創建新的實例,並且mysql沒有解析我的實例的主機名。

你有什麼想法嗎?

更新時間:@FrédéricHenri的回答問題「您的RDS實例上有安全組嗎?」

當然,我有安全組。但在這種情況下它不適用,因爲通過安全組,我只能從VPC中的實例連接到數據庫。我需要給另一個人提供數據庫的訪問權限,但是我想創建只讀訪問的用戶(只能選擇)

+0

您的RDS實例上是否有安全組? –

+1

您試圖在邏輯上連接兩個不相關的概念。當驗證用戶與您的網站的域名*無關時,主機名MySQL將會看到。 –

回答

1

有一點需要注意的是您在MySQL授權中的can use wildcards,如[email protected]'192.168.123.*'。您可以授予對您的實例啓動的子網的訪問權限。

您也可以使用網絡掩碼,這可能更合適 - 例如, [email protected]'192.168.123.0/255.255.255.0'。請參閱documentation瞭解更多信息。

它似乎也可以使用DNS(根據同一篇文章),但正如Michael指出的那樣,它與負載均衡器的DNS名稱無關。我認爲它必須是一個解析爲您的實例的IP地址的DNS名稱。如果你在授權中使用了通配符(例如[email protected]'%.my-autoscaling-instances.mydomain.com',並且每個自動縮放框都有一個DNS條目),那麼這隻會對你有所幫助,我不確定這個機制究竟是如何工作的,我不相信這是一個好方法。