X.509 ํด๋ฌ์คํฐ ์ธ์ฆ์ ํ์
์ด ํ์ด์ง์ ๋ด์ฉ
๋ฒ์ 7.0์ ์ถ๊ฐ.
ํด๋ฌ์คํฐ ๊ตฌ์ฑ์์ ๊ตฌ์ฑ์ ์ธ์ฆ ์ X.509 ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ๋ฐฐํฌ์ ์๋ ๋ค๋ฅธ ์๋ฒ๋ฅผ ์๋ณํ ์ ์์ต๋๋ค.
์๋ฒ๋ ์ฐ๊ฒฐ ์์ฒญ์ ์์ ํ๋ฉด ์ธ์ฆ์์ ๊ณ ์ ์ด๋ฆ(DN) ๊ฐ ๋๋ ํ์ฅ ๊ฐ ๋ฌธ์์ด์ clusterAuthX509
์ค์ ๋ฐ tlsClusterAuthX509Override
๋งค๊ฐ๋ณ์์ ๊ตฌ์ฑ๋ ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๊ฐ์ด ์ผ์นํ๋ฉด ์ฐ๊ฒฐ์ cluster ๋ฉค๋ฒ๋ก ์ทจ๊ธํฉ๋๋ค.
์ ์ธ์ฆ์๋ฅผ ์ฑํํ๋ cluster๋ tlsClusterAuthX509Override
๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ์ํ ์ ์ฐจ ์ค์ ๋ค๋ฅธ DN ์์ฑ์ ๊ฐ์ง X.509 ์ธ์ฆ์๋ฅผ ์๋ฝํ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ตฌ์ฑ์์ด ์ ๊ฐ์ผ๋ก ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ ์๋ฅผ ์ ๊ฑฐํ์ฌ ์ด์ ์ค๋๋ ์ธ์ฆ์ ๊ฑฐ๋ถ๋ฅผ ์์ํฉ๋๋ค.
์ฐธ๊ณ
net.tls.clusterAuthX509
์ค์ ์ ์ฌ์ฉํ์ง ์๊ณ ์
๋ฐ์ดํธ ํ ์ฌ์ฉํ์ง ์๋ ํด๋ฌ์คํฐ์์ ์ธ์ฆ์๋ฅผ ์ํํ๊ธฐ ์ํด ๋กค๋ง ์
๋ฐ์ดํธ๋ฅผ ์ํํ๋ ค๋ฉด ์ DN์ด ํฌํจ๋ x.509 ํด๋ฌ์คํฐ ์ธ์ฆ์์ ๋กค๋ง ์
๋ฐ์ดํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด ์์ ์ ๊ดํ ์ ๋ณด
ํ์ ์ธ์ฆ์( clusterFile
๋ฐ certificateKeyFile
์ค์ ์ ์ฌ์ฉํ์ฌ ์ค์ )์ 10gen
์กฐ์ง ๋ฐ 10gen Server
์กฐ์ง ๋จ์( attributes
์ค์ ์ ์ฌ์ฉํ์ฌ ์ค์ )๋ฅผ ์ฌ์ฉํ๋ ๊ณ ์ ์ด๋ฆ(DN) ๊ฐ์ด ์๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์๊ฐํด ๋ณด์ธ์.
security: clusterAuthMode: x509 net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/10gen-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/10gen-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: attributes: O=10gen, OU=10gen Server
์ด ํํ ๋ฆฌ์ผ์์๋ ์ X.509 ์ธ์ฆ์๊ฐ ๋ฉค๋ฒ์ญ ์ธ์ฆ์ ๋ฐ ๊ธฐํ ๋ชจ๋ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ณ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ด ๊ณ ์ ์ด๋ฆ(DN) ๊ฐ์ ์ฌ์ฉํ์ฌ ํผ์ด ์ธ์ฆ์๋ฅผ ์๋ณํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ํ์ ์ธ์ฆ์ ์๊ตฌ ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
๋จ๊ณ
์ด ๋จ๊ณ์์๋ attributes
์ค์ ์ผ๋ก ๊ตฌ์ฑ๋ cluster์์ ์ X.509 ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋๋ก ๋ฉค๋ฒ ์ธ์ฆ์๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.
์ ์ธ์ฆ์์๋ ์กฐ์ง(O) ์์ฑ์ 10gen
์์ MongoDB
๋ก, ์กฐ์ง ๋จ์(OU) ์์ฑ์ 10gen Server
์์ MongoDB Server
๋ก ๋ณ๊ฒฝํ๋ ๊ณ ์ ์ด๋ฆ(DN)์ด ์์ต๋๋ค.
TLS ํด๋ฌ์คํฐ ๋ฉค๋ฒ์ญ ๊ตฌ์ฑ ์ ๋ฐ์ดํธ
๊ฐ ์๋ฒ์ ๊ตฌ์ฑ ํ์ผ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ ์ธ์ฆ์์ ๊ฐ์ ์ฌ์ฉํ๋๋ก
attributes
์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค.์ด์ ์ธ์ฆ์์ ๊ณ ์ ์ด๋ฆ ์์ฑ์ ์ฌ์ฉํ๋ ค๋ฉด
tlsClusterAuthX509Override
๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: attributes: O=MongoDB, OU=MongoDB Server security: clusterAuthMode: x509 setParameter: tlsClusterAuthX509Override: { attributes: O=10gen, OU=10gen Server }
๋ณด์กฐ cluster ๋ฉค๋ฒ ๋ค์ ์์
๊ฐ ์ธ์ปจ๋๋ฆฌ cluster ๋ฉค๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค:
mongosh
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ธ์ปจ๋๋ฆฌ ํด๋ฌ์คํฐ ๋ฉค๋ฒ์ ์ฐ๊ฒฐํ ๋ค์,db.shutdownServer()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์ค์งํฉ๋๋ค.use admin db.shutdownServer() ์๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
rs.status()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉค๋ฒ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.rs.status().members ์ด ๋ฉค๋ฒ์
stateStr
ํ๋์SECONDARY
๊ฐ์ด ํ์๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ์ธ์ปจ๋๋ฆฌ๋ฅผ ๋ค์ ์์ํ์ธ์.
์ด์ ๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ์๋ฒ๊ฐ ์ DN ์์ฑ์ด ์๋ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ์์ ํผ์ด ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ cluster ๋ฉค๋ฒ ์ฌ์์
ํ๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
mongosh
์ ์ฌ์ฉํ์ฌ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ฐ๊ฒฐํ ๋ค์rs.stepDown()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉค๋ฒ๋ฅผ ํ๋ผ์ด๋จธ๋ฆฌ๋ก ๊ฐ๋ฑํฉ๋๋ค.rs.stepDown() cluster๋ ์ ์ธ์ฆ์๋ก ๋ณด์กฐ ์ธ์ฆ์๋ฅผ ์ ํ๋ผ์ด๋จธ๋ฆฌ ์ญํ ์ ํ๋๋ก ์น๊ฒฉํฉ๋๋ค.
db.shutdownServer()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์ข ๋ฃํฉ๋๋ค:use admin db.shutdownServer() ์๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ํ๋ผ์ด๋จธ๋ฆฌ ์๋ฒ๋ ๊ฐ๋ฑ๋๊ณ ์ด์ ์ DN ์์ฑ์ด ์๋ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ์์ Peering ์ฐ๊ฒฐ์ ํ์ฉํ๋ ์ธ์ปจ๋๋ฆฌ ์๋ฒ๋ก ๋ค์ ์์๋ฉ๋๋ค.
TLS ์ธ์ฆ์ ์ ๋ฐ์ดํธ
๊ฐ ์๋ฒ์ ๊ตฌ์ฑ ํ์ผ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋๋ก
net.tls.certificateKeyFile
์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค.์ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋๋ก
net.tls.clusterFile
์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server2.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster2.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: attributes: O=MongoDB, OU=MongoDB Server security: clusterAuthMode: x509 setParameter: tlsClusterAuthX509Override: { attributes: O=10gen, OU=10gen Server }
๋ณด์กฐ cluster ๋ฉค๋ฒ ๋ค์ ์์
๊ฐ ์ธ์ปจ๋๋ฆฌ cluster ๋ฉค๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค:
mongosh
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ธ์ปจ๋๋ฆฌ ํด๋ฌ์คํฐ ๋ฉค๋ฒ์ ์ฐ๊ฒฐํ ๋ค์,db.shutdownServer()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์ค์งํฉ๋๋ค.use admin db.shutdownServer() ์๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
rs.status()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉค๋ฒ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.rs.status().members ์ด ๋ฉค๋ฒ์
stateStr
ํ๋์SECONDARY
๊ฐ์ด ํ์๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ์ธ์ปจ๋๋ฆฌ๋ฅผ ๋ค์ ์์ํ์ธ์.
์ด์ ๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ์๋ฒ๊ฐ ์๋ก์ด X.509 ์ธ์ฆ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ cluster ๋ฉค๋ฒ ์ฌ์์
ํ๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
mongosh
์ ์ฌ์ฉํ์ฌ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ฐ๊ฒฐํ ๋ค์rs.stepDown()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉค๋ฒ๋ฅผ ํ๋ผ์ด๋จธ๋ฆฌ๋ก ๊ฐ๋ฑํฉ๋๋ค.rs.stepDown() cluster๋ ์ ์ธ์ฆ์๋ก ๋ณด์กฐ ์ธ์ฆ์๋ฅผ ์ ํ๋ผ์ด๋จธ๋ฆฌ ์ญํ ์ ํ๋๋ก ์น๊ฒฉํฉ๋๋ค.
db.shutdownServer()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์ข ๋ฃํฉ๋๋ค:use admin db.shutdownServer() ์๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ํ๋ผ์ด๋จธ๋ฆฌ ์๋ฒ๋ ๊ฐ๋ฑ๋๊ณ ์ X.509 ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ์ธ์ปจ๋๋ฆฌ ์๋ฒ๋ก ๋ค์ ์์๋ฉ๋๋ค.
๊ณ ์ ์ด๋ฆ ์ธ์ฆ ์ฌ์ ์ ๊ตฌ์ฑ ์ ๊ฑฐ
์ด์ cluster์ ๋ชจ๋ ๋ฉค๋ฒ๊ฐ ์ X.509 ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๊ตฌ์ฑ setParameter
tlsClusterAuthX509Override
ํ์ผ์ ์
๋ฐ์ดํธํ์ฌ ๋งค๊ฐ ๋ณ์์ ๋ํ ์ค์ ์ ์ ๊ฑฐํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: attributes: O=MongoDB, OU=MongoDB Server security: clusterAuthMode: x509
์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ๊ฐ ์์ ์ ์ด์ ์ธ์ฆ์ ์ค์ ์ ๊ตฌ์ฑํ์ง ์์ต๋๋ค.
๋ณด์กฐ cluster ๋ฉค๋ฒ ๋ค์ ์์
๊ฐ ์ธ์ปจ๋๋ฆฌ cluster ๋ฉค๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค:
mongosh
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ธ์ปจ๋๋ฆฌ ํด๋ฌ์คํฐ ๋ฉค๋ฒ์ ์ฐ๊ฒฐํ ๋ค์,db.shutdownServer()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์ค์งํฉ๋๋ค.use admin db.shutdownServer() ์๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
rs.status()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉค๋ฒ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.rs.status().members ์ด ๋ฉค๋ฒ์
stateStr
ํ๋์SECONDARY
๊ฐ์ด ํ์๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ์ธ์ปจ๋๋ฆฌ๋ฅผ ๋ค์ ์์ํ์ธ์.
๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ์๋ฒ๊ฐ ๋ค์ ์์๋๊ณ ๋ ์ด์ ์ด์ X.509 ์ธ์ฆ์์์์ ์ฐ๊ฒฐ์ ํ์ฉํ์ง ์์ต๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ cluster ๋ฉค๋ฒ ์ฌ์์
ํ๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
mongosh
์ ์ฌ์ฉํ์ฌ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ฐ๊ฒฐํ ๋ค์rs.stepDown()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉค๋ฒ๋ฅผ ํ๋ผ์ด๋จธ๋ฆฌ๋ก ๊ฐ๋ฑํฉ๋๋ค.rs.stepDown() cluster๋ ์ ์ธ์ฆ์๋ก ๋ณด์กฐ ์ธ์ฆ์๋ฅผ ์ ํ๋ผ์ด๋จธ๋ฆฌ ์ญํ ์ ํ๋๋ก ์น๊ฒฉํฉ๋๋ค.
db.shutdownServer()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์ข ๋ฃํฉ๋๋ค:use admin db.shutdownServer() ์๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ ์๋ฒ๋ ๋ ์ด์ ์ด์ X.509 ์ธ์ฆ์์์์ ์ฐ๊ฒฐ์ ํ์ฉํ์ง ์๋ ์ธ์ปจ๋๋ฆฌ ์๋ฒ๋ก ๋ค์ ์์๋ฉ๋๋ค.