データベースのセキュリティを維持するために、承認されたルート以外のユーザーの特権を制限して、完全なルート特権を付与せずに管理操作を実行できるようにすることができます。
このページでは、すべてのルートユーザー特権へのアクセスを許可せずに、ルート以外のユーザーがLinuxシステム上で mongod
プロセスを開始、停止、再起動できるようにする方法を説明します。この手順は、mongod
プロセスが実行されるグループとは異なる、ルート以外のLinuxグループに属するユーザーに適用されます。
始める前に
MongoDB Community または MongoDB Enterprise をインストールします。
Considerations
重要
次の手順では、セットアップに root アクセスが必要です。設定が正しくないと、システムが応答しなくなる可能性があるため、本番環境に実装する前には必ず開発環境でテストしてください。現在のデータのバックアップがあることを確認してください。
新しいシステムを設定するときに、この手順を実行することをお勧めします。これが可能でない場合は、メンテナンスウィンドウ中に手順を実行します。
この手順は、1 つのローカル システムの設定にのみ影響します。レプリカセットまたはシャーディングされたクラスターを使用している場合は、この手順を順次実行します。すべてのノードを一度に更新しないでください。
この手順はすべてのLinuxディストリビューションで機能しますが、 CentOS 6/7、RHEL 6/7、 Ubuntu 18.04、 Amazon Linux 2 でのみテストされています。
手順
以下のように、システムプロバイダーのタブを選択します。
この手順は、 CentOS 7 と RHEL 7 で動作します。
sudoers
ファイルを更新します。
visual を使用して、sharders ファイルに次の構成行を追加します。
%mongod ALL =(ALL) NOPASSWD: /bin/systemctl start mongod.service, /bin/systemctl stop mongod.service, /bin/systemctl restart mongod.service %testuser ALL =(ALL) NOPASSWD: /bin/systemctl start mongod.service, /bin/systemctl stop mongod.service, /bin/systemctl restart mongod.service
注意
sudoers
ファイルの構文エラーは、ルート ユーザー アカウントの機能に影響を与える可能性があります。
非 root ユーザーの権限を確認します。
これで、新しいユーザーは mongod
サービスを開始して停止できますが、 /etc/mongod.conf
ファイルを読み取ることはできません。
新しいユーザーに次のコマンドを実行して mongod
を起動し、[Permission Denied]
メッセージが受信されないことを確認します。
sudo /bin/systemctl start mongod.service
sudo /bin/systemctl stop mongod.service
を使用して同様のテストを実行すると、エラーなく mongod
サービスを停止できることを確認できます。
ここで、/etc/mongod.conf
ファイルにアクセスするために次のコマンドを実行するようにします。
sudo vi /etc/mongod.conf
このコマンドは [Permission Denied]
メッセージを返します。
この手順は、 CentOS 6、RHEL 6、 Amazon Linux 2、 Ubuntu 18.04 で機能します。
sudoers
ファイルを更新します。
visual を使用して、次の構成行を sharders ファイルに追加します。
CentOS 6、RHEL 6、およびAmazon Linux 2 の場合:
%mongod ALL =(ALL) NOPASSWD: /sbin/service mongod start, /sbin/service mongod stop, /sbin/service mongod restart %testuser ALL =(ALL) NOPASSWD: /sbin/service mongod start, /sbin/service mongod stop, /sbin/service mongod restart
For Ubuntu 18.04:
%mongod ALL =(ALL) NOPASSWD: /usr/sbin/service mongod start, /usr/sbin/service mongod stop, /usr/sbin/service mongod restart %testuser ALL =(ALL) NOPASSWD: /usr/sbin/service mongod start, /usr/sbin/service mongod stop, /usr/sbin/service mongod restart
注意
sudoers
ファイルの構文エラーは、ルート ユーザー アカウントの機能に影響を与える可能性があります。
非 root ユーザーの権限を確認します。
これで、新しいユーザーは mongod
サービスを開始して停止できますが、 /etc/mongod.conf
ファイルを読み取ることはできません。
新しいユーザーに次のコマンドを実行して mongod
を起動します。
sudo service mongod start
シェルで次の確認が表示されていることを確認します。
Starting mongod: [ OK ]
sudo service mongod stop
を使用して同様のテストを実行すると、エラーなく mongod
サービスを停止できることを確認できます。
ここで、/etc/mongod.conf
ファイルにアクセスするために次のコマンドを実行するようにします。
sudo vi /etc/mongod.conf
このコマンドは [Permission Denied]
メッセージを返します。