Node.jsで暗号資産アービトラージ

ビットコイントレード中心にNode.jsで実際に作るためのレシピ

MacOSでMongoDBを強制終了させる

今年も残すところあと数日です。2018年末はカレンダー通りでも6連休なので嬉しい人も多いのではないでしょうか。
ちなみに私は4歳と2歳の子どもがいて全く休めず、むしろ疲れるので連休を恐れているタイプです。連休コワイ。

MongoDBセキュリティ設定の続きです。

MacOSでMongoDBを強制終了させる

ユーザを適切に作っていないと権限エラーで何もできなくなって焦るので注意。
その場合、MongoDBを強制終了しましょう。Macの場合はProcess Killです。

pgrep mongo
sudo kill xxxxx

MongoDBでのユーザ設定

use admin
db.createUser(
  {
    user: "xxxx",
    pwd: "zzzzzzzzzzzz",
    roles: [
      {
        role: "readWrite",
        db: "common"
      },
      {
        role: "readWrite",
        db: "operation"
      }
    ]
  }
)

なぜかこのユーザでWebアクセスをするとNode.jsからMongoDBを呼び出した時に認証エラーが発生します。

MongoError: Authentication failed.

この場合DBごとに2ユーザに分けるとうまくいきました。

use admin
db.auth("adminのuser","adminのpassword")
use common
db.createUser(
  {
    user: "xxxx",
    pwd: "zzzzzzzzzzzz",
    roles: [
      {
        role: "readWrite",
        db: "common"
      }
    ]
  }
)

アクセスするIPアドレスを固定設定

vi /etc/mongod.conf

bindIp: 127.0.0.1

私はWebサーバにMongoDBを入れているので、127.0.0.1でOK。別サーバからアクセスする場合は固定IPアドレスを設定しましょう。

公式サイト(MongoDB Security Checklist (公式))ではMongoサーバとドライバ間はTLS/SSLで暗号化、と書いてますが、ここでは割愛します。同じサーバなので。

これで個人用WebサーバとしてのMongoDBセキュリティ設定はできたかなという感じです。適宜補足事項が出てきたら更新します。

感想:RDBでは当たり前のような事項がデフォルトでは無効となっているので、気をつけましょう。ぐらいでしょうか。

ビットコインを購入するならBITPOINT
BITPOINT