AWS EC2のBitnamiでphpMyAdminにアクセスできない!設定変更すればOK

EC2でWordPressやLAMPスタックを動かすためにBitnamiのAMIを使うことが多いと思います。
BitnamiのAMIでphpMyAdminにアクセスしようとすると、セキュリティの問題でブロックされてしまいます。これは不便です。
でもちょっとした設定変更でアクセスできるようになります。
ブロックされたときのメッセージ
▼ブロックされるとこんなメッセージが表示されます。
For security reasons, this URL is only accessible using localhost (127.0.0.1) as the hostname.
要するにphpMyAdminはEC2自身からのアクセスしか許可されていません。ログインが必要とはいえ、どこからでもアクセスできるのは危険すぎますからね。
設定を変更することで許可の範囲を拡げ、EC2以外からもアクセスできるようにします。
もちろんどこからでもアクセスできるようにはせず、特定のIPアドレスからのみアクセス可能にします。必要最小限の穴を空ける感じですね。
まえがき
こちらで検証できているAMIは以下の2つです。よく使うやつです。
- WordPress Certified by Bitnami and Automattic
- LAMP Certified by Bitnami
phpMyAdminのURLのホストはこれにしよう
ELB(ロードバランサー)やCloudFront(キャッシュサーバー)を使用している場合は、URLのホストをEC2の「パブリックDNS」か「パブリックIP」にしましょう。
▼赤枠のことです
▼URLはこうなります
https://赤枠の値/phpmyadmin/
SSL未対応の場合はhttpです。
ここの設定を変更しよう
まずはアクセス許可するIPアドレスをメモる
会社だったり自宅だったり、アクセスを許可したい場所があると思います。そこのIPアドレスをメモります。
▼許可したい場所からここにアクセスするとIPアドレスが分かります
会社や自宅のIPアドレスからのアクセスのみを許可するという訳です。なんでも来い!よりもずっと安全です。
ELBやCloudFrontを使うとアクセス元がELBやCloudFrontのIPアドレスになってしまうので、アクセス許可されないのです。
変更するファイル
/opt/bitnami/apps/phpmyadmin/conf/httpd-app.conf
viでもvimでも好きなエディタで編集しましょう。
このように変更しよう
Before
<IfVersion < 2.3 > Order allow,deny Allow from 127.0.0.1 Satisfy all </IfVersion> <IfVersion >= 2.3> Require local </IfVersion>
After
<IfVersion < 2.3 > Order allow,deny Allow from 127.0.0.1 Allow from 許可したいIPアドレスその1 Allow from 許可したいIPアドレスその2 Satisfy all </IfVersion> <IfVersion >= 2.3> <RequireAny> Require local Require ip 許可したいIPアドレスその1 Require ip 許可したいIPアドレスその2 </RequireAny> </IfVersion>
許可したいIPアドレスはいくつ並べてもOKです。
phpMyAdminのバージョンに依存しますが、大抵は「Require ip」の方だけでOKです。
【おまけ】どこからでも許可する
本番環境ではない場合はこれでOKです。
<IfVersion < 2.3 > Order allow,deny Allow from all Satisfy all </IfVersion> <IfVersion >= 2.3> Require all granted </IfVersion>
修正が終わったら
設定を反映するためにApacheを再起動します。
sudo /opt/bitnami/ctlscript.sh restart apache
これでアクセスできるはずです。
phpMyAdminのユーザーとパスワード
ユーザーID:root
パスワード:EC2インスタンスのシステムログに載っているいつものアレです
▼分からなかったらこれを