@kasumiiです。こんにちは。
HerokuのアドオンでMongoHQを使っているのですが、先日なにやらMongoHQからメールが来て「情報漏洩しちゃったからデータベースパスワードを変更してね!」と言われたので変更しました。そのときの手順メモです。
この記事の目次
Heroku アプリをメンテナンスモードにする
データベースのパスワードを変更している間、Herokuアプリにアクセスされたくない場合はメンテナンスモードにしておくと良さげ。ターミナルから、
heroku maintenance:on
で、簡単にメンテナンス状態にできるので便利!
メンテナンス中にHerokuアプリにアクセスすると以下のような画面が表示されます。(このメンテ画面は、Herokuの管理画面から別のページを表示するようにも変更可能です。)
MongoHQの管理画面からデータベースパスワード変更
Herokuのダッシュボードで、使用しているAdd-ons一覧のところからMongoHQの管理画面へ。
「Admin」→「Users」タブの画面で「Change Password」ボタンを押して新しいパスワードを登録しましょう。ここで登録したパスワードはあとで使うので忘れないように。ユーザを追加したあと画面に表示されるパスワードはハッシュ値であって、実際のパスワードとは違うので注意!
Herokuの環境変数「MONGOHQ_URL」を変更する
ターミナルで以下のコマンドを打って、Herokuの環境変数を表示します。
heroku config
その中の「MONGOHQ_URL」の値はこんな構成になっているので、パスワード部分を変更してあげる必要があります。
MONGOHQ_URL: mongodb://{username}:{password}@{host}:{port}/{dbname}
例えばパスワードが ABCD1234 だったら、以下のようにして環境変数を上書きすればOKです。
heroku config:add MONGOHQ_URL=mongodb://heroku:ABCD1234@dharma.mongohq.com:10096/app12345678
Herokuアプリのコード内で、この環境変数を使ってデータベース接続していればもう他に変更するところはありません。もしデータベース接続情報をハードコーディングしちゃってる場合はコードも変更しておきましょー。
メンテナンスモードを元に戻しておく
最後に、メンテ中にしていたHerokuアプリを元に戻しておくのを忘れずに!
heroku maintenance:off