Google Cloud Compute MongoDB 배포 보안 문제 및 keyFile 문제

Google Cloud Compute MongoDB 배포 보안 문제 및 keyFile 문제

나는 오늘 매우 짜증나는 문제에 직면했습니다.

기본적으로 GCP Marketplace 제품을 사용하여 MongoDB 데이터베이스를 설정했습니다. 기본 노드, 보조 노드 및 중재자를 설정합니다. 정말 멋지네요. 그것이하지 않는 것은 보안입니다. 전혀요. 그래서 자연스럽게 내가 직접 설정해야 했어요. 글쎄, 20시간이 지난 지금, 내 얼굴에 몇 번의 펀치를 날렸지만 여전히 실행에 어려움을 겪고 있습니다.

기본적으로 이것은 내 부분 구성입니다.

security:
  authorization: enabled
  keyFile: '/etc/mongodKey'

주석을 달면 keyFile인스턴스가 실행됩니다. 하지만 보안이 활성화되어 있기 때문에 다른 노드에는 연결할 수 없습니다. 아니요, 비활성화할 수 없습니다. 화났나요?

하지만 keyFile에 관한 것은 ... 내가 이해하는 것처럼 mongod열 수 없으므로 시작되지 않습니다. /etc넣어두는 곳이 좋지 않은 것 같은데요 ? 다른 폴더도 시도해 보았으나 소용이 없었습니다. 아무것도 작동하지 않습니다.

그리고 Robo 3T를 사용하는 동료들이 데이터베이스에 연결해야 하기 때문에 보안 조치가 필요합니다. 따라서 외부 IP 주소를 삭제하는 것은 불가능합니다.

내가 뭘 잘못한 걸까요? 제가 스스로 머리카락을 뽑을 때 도와주세요.

이것은 다음의 출력입니다 sudo service mongod status.

● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2019-08-21 15:28:08 UTC; 4min 29s ago
     Docs: https://docs.mongodb.org/manual
  Process: 1024 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=1/FAILURE)
 Main PID: 1024 (code=exited, status=1/FAILURE)
Aug 21 15:28:08 m-vm-0 systemd[1]: Started MongoDB Database Server.
Aug 21 15:28:08 m-vm-0 systemd[1]: mongod.service: Main process exited, code=exited, status=1/F
Aug 21 15:28:08 m-vm-0 systemd[1]: mongod.service: Unit entered failed state.
Aug 21 15:28:08 m-0 systemd[1]: mongod.service: Failed with result 'exit-code'.

편집하다:

를 확인했습니다 mongod.log. 예, 권한 문제입니다. 그리고 나는 그것을 해결할 수 없습니다.

해보려고 했는데 sudo chmod 400 /etc/mongodKey아무것도 안되네요. 제발, mongodb에서 읽을 수 있도록 키 파일을 어디에 두어야 합니까? 이건 매우 중요합니다!

답변1

복제를 설정할 수 있는 'MongoDB'라는 GCP MongoDB 마켓플레이스 배포를 사용하는 경우 다음 사항에 유의하세요.

초기 구성에서는 보안을 설정하지 않으므로 다음 두 가지 옵션이 있습니다.

  1. 외부 IP 끄기
  2. 다음에서 인증을 활성화합니다.mongod.conf

첫 번째 솔루션을 선택하면 다른 외부 소스에서 데이터베이스에 쉽게 연결할 수 없습니다.

두 번째 해결 방법을 선택하려면 다음을 수행해야 합니다.

  1. 키를 생성하세요. 전체 프로세스는 여기에서 확인할 수 있습니다.https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/

  2. 파일 내용 복사

  3. 모든 Compute Engine 인스턴스에 SSH로 연결
  4. 디렉토리를 선택하세요
  5. sudo touch <path to key>
  6. sudo nano <path to key>
  7. 생성한 키를 컴퓨터에 붙여넣고 저장하세요.
  8. sudo chmod 600 <path to key>
  9. sudo chown mongodb: <path to key>
  10. mongod.conf아래에 있는 내용을 업데이트하세요 ./etc/mongod.conf
  11. security,,, 주석 authorization해제keyFile
  12. keyFile키 파일의 키 아래 경로를 제공하세요.
  13. 모든 인스턴스를 중지하고 다시 시작

이제 MongoDB는 키 파일에 액세스할 수 있습니다.

악몽이라니. 그리고 chmod 400 <path to key>문서에 명시된 대로 작동하지 않았습니다. 으로 설정해야 했습니다 chmod 600 <path to key>.

관련 정보