MongoDB рддреАрди рдореВрд▓рднреВрдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ тАФ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдкреНрд░рд╛рдзрд┐рдХрд╛рд░, рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди тАФ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реБрд░рдХреНрд╖рд╛ рдврд╛рдВрдЪрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдпреЗ рд╕реНрддрдВрдн рдкрд░рддрджрд╛рд░ рд╕реБрд░рдХреНрд╖рд╛ рд░рдХреНрд╖рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдПрдХ рд╕реНрддрд░ рдХреА рдЪреВрдХ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рди рдХрд░реЗред рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рдХрд╛ рд╕реНрддрдВрдн рдиреНрдпреВрдирддрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд (PoLP) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдЙрддрдиреА рд╣реА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ рдЬрд┐рддрдиреА рдЙрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред┬а
рдЗрд╕ рд╡реНрдпрд╛рдкрдХ, рдкрд░рддрджрд╛рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреА рд╕рдордЧреНрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдерд┐рддрд┐ рдордЬрдмреВрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреЗ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдХрдореА рдЖрддреА рд╣реИред┬а
рдкрд╣рд▓рд╛ рджреНрд╡рд╛рд░ рд╕рдХреНрд╖рдо рдХрд░рдирд╛: рдкреНрд░рдорд╛рдгреАрдХрд░рдг
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореВрд▓рднреВрдд рд╕реБрд░рдХреНрд╖рд╛ рдХрджрдо рд╣реИред рдпрд╣ рд╣рд░ рдЙрд╕ рдкреНрд░рдорд╛рддреНрд░ (principal) рдХреА рдкрд╣рдЪрд╛рди рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред MongoDB рдореЗрдВ, рдпрд╣ рдЙрди рд╕реБрд░рдХреНрд╖рд╛ рдлреАрдЪрд░реНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░рд╣рддреЗ рд╣реИрдВред
1. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдордЭрдирд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЖрдкрдХрд╛ MongoDB рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЗрд╡рд▓ localhost рдкрд░ рд▓рд┐рд╕рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдЕрднрд┐рдЧрдо рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИ, рддрд╛рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдФрд░ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдпреЛрдЧ рдЕрдзрд┐рдХрддрдо рд╕рд░рд▓ рд░рд╣реЗрдВред
рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдбрдХреНрд╢рди рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП, рджреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдзреНрдпрд╛рди рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реНрдерд┐рддрд┐: рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИ ред рдЖрдк --auth рдпрд╛ security.authorization рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рднреА рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ, рдПрдХ рдмрд╛рд░ рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдиреЗрдЯрд╡рд░реНрдХ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ ( bindIp ): рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, MongoDB рдмрд╛рдЗрдирд░реА ( mongod рдФрд░ mongos ) рдХреЗрд╡рд▓ localhost рд╕реЗ рдмрд╛рдЗрдВрдб рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рдЙрд╕реА рдорд╢реАрди рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░реЛрдбрдХреНрд╢рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдЖрдкрдХреЛ bindIp рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рдЕрдзрд┐рдХреГрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ IP рдкрддреЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рдпрджрд┐ рдЖрдкрдХреЛ IPv6 рд╕рдкреЛрд░реНрдЯ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЖрдк net.ipv6 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдпрд╛ --ipv6 рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдмрд╛рдЗрдирд░реА localhost рдХреЗ IPv6 рдкрддреЗ рдкрд░ рднреА рдмрд╛рдЗрдВрдб рд╣реЛрдЧреАред рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдЕрдзрд┐рдХреГрдд рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рддрдХ рд╕реАрдорд┐рдд рд░рдЦреЗрдВред
2. рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ MongoDB рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкреНрд▓реЗрдЧреНрд░рд╛рдЙрдВрдб рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ MongoDB рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (рдЖрдорддреМрд░ рдкрд░ mongod.conf ) рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХрд░рдХреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯрд┐рдВрдЧ: рдлреАрдЪрд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП security рд╕реЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ authorization рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░реЗрдВ:
authorization: enabledрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: рдПрдХ рдмрд╛рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рддрдм рддрдХ рдХреЛрдИ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдЬрдм рддрдХ рдЖрдк рдПрдХ рдкреНрд░рд╢рд╛рд╕рдХреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рдмрдирд╛ рд▓реЗрддреЗред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ admin рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдЙрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдмрдВрдзрди рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдзрд┐рдХрд╛рд░ рдорд┐рд▓реЗрдВред
3. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдмрдВрдзрди (createUser )
рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрднрд┐рдЧрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЙрдирдХреА рд╕рдВрдмрджреНрдз рднреВрдорд┐рдХрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЖрдк createUser рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рдкрд╣рдЪрд╛рдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рднреВрдорд┐рдХрд╛рдПрдБ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдЙрд╕рдХрд╛ рдпреВрдЬрд╝рд░рдиреЗрдо, рдкрд╛рд╕рд╡рд░реНрдб, рдФрд░ roles рдХреА рдПрдХ array рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рднреВрдорд┐рдХрд╛рдПрдБ рдЙрдирдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рддрдп рдХрд░рддреА рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ readWrite )ред
db.createUser(
{
user: "appUser" ,
pwd: passwordPrompt( ) , // This function prompts for a password, which
// avoids storing the plain-text password in
// shell history and command logs.
roles: [ { role: "readWrite" , db: "inventory" } ]
}
) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
SCRAM рдорд╛рдирдХ: MongoDB Salted Challenge Response Authentication Mechanism (SCRAM) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХреЗред SCRAM рд╕рд╛рдзрд╛рд░рдг-рдкрд╛рда рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд░реВрдк рд╕реЗ рдордЬрдмреВрдд рд╣реИрд╢рд┐рдВрдЧ рдФрд░ рд╕реЙрд▓реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд░реЗрдирдмреЛ рдЯреЗрдмрд▓ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣рдорд▓реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕реБрджреГрдврд╝ рдмрдирддрд╛ рд╣реИред
4. рдЙрдиреНрдирдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдХрд▓реНрдк
рдХрдбрд╝реА рдЕрдиреБрдкрд╛рд▓рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдпрд╛ рдЬрдЯрд┐рд▓ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╡рд╛рд▓реА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП, MongoDB рдореМрдЬреВрджрд╛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝-рд╕реНрддрд░реАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
x.509 рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ: рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдмрдЬрд╛рдп рдбрд┐рдЬрд┐рдЯрд▓ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЕрдХреНрд╕рд░ рдорд╢реАрди-рдЯреВ-рдорд╢реАрди рдЯреНрд░рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдПрдХ рдордЬрдмреВрдд рдкрд╣рдЪрд╛рди рд╕рддреНрдпрд╛рдкрди рдкрд░рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
LDAP/Kerberos: MongoDB рдХреЛ Active Directory рдпрд╛ OpenLDAP рдЬреИрд╕реА рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрднрд┐рдЧрдо рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХреЗрдВред
OpenID Connect (OIDC) рдкреНрд░рдорд╛рдгреАрдХрд░рдг - рдХрд╛рд░реНрдпрдмрд▓ рдФрд░ рд╡рд░реНрдХрд▓реЛрдбреНрд╕: рдЖрдзреБрдирд┐рдХ рдХреНрд▓рд╛рдЙрдб-рдиреЗрдЯрд┐рд╡ рдФрд░ рд╣рд╛рдЗрдмреНрд░рд┐рдб рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, MongoDB Workforce (Azure AD, Okta рдЬреИрд╕реЗ IdP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрднрд┐рдЧрдо) рдФрд░ Workload (рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ рдкрд╣рдЪрд╛рди, рдЬреИрд╕реЗ AWS IAM рдпрд╛ Google Cloud Service Accounts рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╢реАрди-рдЯреВ-рдорд╢реАрди рдкреНрд░рдорд╛рдгреАрдХрд░рдг) рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП Identity Federation рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рд╛рдзрд┐рдХрд╛рд░: RBAC рдХреЗ рд╕рд╛рде рднреВрдорд┐рдХрд╛рдПрдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреМрди рд╣реИ; рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛/рд╕рдХрддреА рд╣реИред MongoDB рдХрд╛ Role-Based Access Control (RBAC) рд╕рд┐рд╕реНрдЯрдо рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рддрдВрддреНрд░ рд╣реИ, рдЬреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕реЗрд╡рд╛рдПрдБ рдХреЗрд╡рд▓ рдЙрд╕реА рдбреЗрдЯрд╛ рдФрд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░реЗрдВ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рд╕рдЦреНрддреА рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
1. рднреВрдорд┐рдХрд╛-рдЖрдзрд╛рд░рд┐рдд рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг
MongoDB рдХреЗ RBAC рдореЙрдбрд▓ рдореЗрдВ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ roles рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпреЗ рднреВрдорд┐рдХрд╛рдПрдБ users рдХреЛ рд╕реМрдВрдкреА рдЬрд╛рддреА рд╣реИрдВред рд╕реИрдХрдбрд╝реЛрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реМрдВрдкрдиреЗ рдХреА рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рд╣реА рднреВрдорд┐рдХрд╛ (рдЬреИрд╕реЗ inventoryReader ) рд╕реМрдВрдкрддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рдХрд░рддреА рд╣реИ (рдЬреИрд╕реЗ inventory.products рдкрд░ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐)ред рдЗрд╕рд╕реЗ рдЕрдиреБрдорддрд┐ рдкреНрд░рдмрдВрдзрди рд╕реНрдХреЗрд▓реЗрдмрд▓ рдФрд░ рдСрдбрд┐рдЯ рдпреЛрдЧреНрдп рдмрдирддрд╛ рд╣реИред
2. рдмрд┐рд▓реНрдЯ-рдЗрди рднреВрдорд┐рдХрд╛рдПрдБ рдЬрд┐рдирдХреА рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ
MongoDB рд╕рд╛рдорд╛рдиреНрдп рдЕрднрд┐рдЧрдо рдкреИрдЯрд░реНрди рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд┐рд▓реНрдЯ-рдЗрди рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рд╢рдХреНрдд рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВред рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
read рдФрд░ readWrite (рдбреЗрдЯрд╛рдмреЗрд╕-рд╕реНрддрд░реАрдп рдЕрднрд┐рдЧрдо): рдпреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рднреВрдорд┐рдХрд╛рдПрдБ рд╣реИрдВред рдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреАрддрд░ рд╕рднреА рдиреЙрди-рд╕рд┐рд╕реНрдЯрдо рдХрд▓реЗрдХреНрд╢рдиреЛрдВ рдкрд░ рдХреНрд░рдорд╢рдГ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдпрд╛ рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдЧрдо рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред
dbAdmin : рдпрд╣ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╢рд╛рд╕рдХреАрдп рдЕрдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдХрд▓реЗрдХреНрд╢рди рдмрдирд╛рдирд╛, рд╣рдЯрд╛рдирд╛, рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ред рдпрд╣ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдореЛрдВ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВрдЯреЗрдиреЗрдВрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред
clusterAdmin (рдСрдкрд░реЗрд╢рдирд▓ рдЕрднрд┐рдЧрдо): рдпрд╣ рдЙрдЪреНрдЪ-рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рднреВрдорд┐рдХрд╛ рдЖрдорддреМрд░ рдкрд░ рдСрдкрд░реЗрд╢рдВрд╕ (DevOps/Ops) рдХрд░реНрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛрддреА рд╣реИред рдпрд╣ рдкреВрд░реЗ MongoDB рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ replica sets рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛, sharding, рдФрд░ рдмреИрдХрдЕрдк рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдпрд╣ рднреВрдорд┐рдХрд╛ рдЪрд╛рд╣рд┐рдП рд╣реЛрддреА рд╣реИред
3. рдиреНрдпреВрдирддрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдЖрдзреБрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдореВрд▓ рд╕реНрддрдВрдн рд╣реИ рдиреНрдпреВрдирддрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд (PoLP) ред рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдХреЛ рдХреЗрд╡рд▓ рдЙрддрдиреА рд╣реА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдорд┐рд▓реЗрдВ рдЬрд┐рддрдиреА рдЙрд╕рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИрдВ, рдФрд░ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред
рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ readWrite рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмрдЬрд╛рдп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ inventory рд╕рд░реНрд╡рд┐рд╕ рдХреЗрд╡рд▓ app_data рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА readWrite рдЕрднрд┐рдЧрдо рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрд╕реА рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╕реАрдорд┐рдд рд╣реЛред рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдХрд┐рд╕реА рд╕рдордЭреМрддрд╛ рд╣реЛ рдЪреБрдХреА рд╕реЗрд╡рд╛ рдХреЛ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ (рдЬреИрд╕реЗ billing рдпрд╛ users ) рддрдХ рдЕрдирдзрд┐рдХреГрдд рдЕрднрд┐рдЧрдо рдкрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг: рдиреНрдпреВрдирддрдо-рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ( inventory_service ) рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ app_data рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╣реА рд╕рдЦреНрддреА рд╕реЗ рд╕реАрдорд┐рдд рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрднрд┐рдЧрдо рд╣реИред
use admin
db.createUser(
{
user: "inventory_service" ,
pwd: passwordPrompt( ) ,
roles: [
{ role: "readWrite" , db: "app_data" }
]
}
) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
4. рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛рдПрдБ рдмрдирд╛рдирд╛ (рдЬрдм рдмрд┐рд▓реНрдЯ-рдЗрди рдкрд░реНрдпрд╛рдкреНрдд рди рд╣реЛрдВ)
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдмрд┐рд▓реНрдЯ-рдЗрди рднреВрдорд┐рдХрд╛рдПрдБ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИрдВ, рдЕрдиреБрдкрд╛рд▓рди рдпрд╛ рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдЕрддреНрдпрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рдирд┐рдпрдВрддреНрд░рдг рдХреА рдорд╛рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, MongoDB рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛рдПрдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП db.createRole() рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕реВрдХреНрд╖реНрдо рд╕реНрддрд░ рдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛: рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛рдПрдБ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВ рдХрд┐ рдХрд┐рди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреНрд░рд┐рдпрд╛рдУрдВ (рдЬреИрд╕реЗ, find , update , insert ) рдХреЛ рдХреНрд▓рд╕реНрдЯрд░, рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдХрд▓реЗрдХреНрд╢рди рд╕реНрддрд░ рдкрд░ рд╕реНрдХреЛрдк рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрдЧрдарди рдлреАрд▓реНрдб-рд╕реНрддрд░реАрдп рд░рд┐рдбреИрдХреНрд╢рди рдЬреИрд╕реА рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдиреНрдпрдерд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд▓реЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЬрд╛ рд╕рдХреЗред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг: рдПрдХ рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛ рдмрдирд╛рдирд╛
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛ ( product_creator ) рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ products рдХрд▓реЗрдХреНрд╢рди рдореЗрдВ, app_data рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреАрддрд░, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЛрдбрд╝ рд╕рдХрддреА рд╣реИред
use app_data
db.createRole(
{
role: "product_creator" ,
privileges: [
{
resource: { db: "app_data" , collection: "products" } ,
actions: [ "insert" ]
}
] ,
roles: [ ]
}
) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╕рдордЧреНрд░ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛: рдиреЗрдЯрд╡рд░реНрдХ рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди
рдЬрд╣рд╛рдБ рдордЬрдмреВрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣реАрдВ рд╕рдордЧреНрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдбреЗрдЯрд╛ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИтАФрдЬрдм рд╡рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ (рдЗрди рдЯреНрд░рд╛рдВрдЬрд╝рд┐рдЯ) рдФрд░ рдЬрдм рд╡рд╣ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ (рдПрдЯ рд░реЗрд╕реНрдЯ)ред
1. TLS/SSL рдХреЗ рд╕рд╛рде рдЯреНрд░рд╛рдВрдЬрд╝рд┐рдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛
рдХрд┐рд╕реА рднреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди, рдЪрд╛рд╣реЗ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдХреЗ рдЕрдВрджрд░реВрдиреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╣реЛ рдпрд╛ рдХреНрд▓рд╛рдЙрдб рдХреЗ рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░, рдИрд╡реНрд╕рдбреНрд░реЙрдкрд┐рдВрдЧ рдФрд░ рдореИрди-рдЗрди-рдж-рдорд┐рдбрд▓ (MITM) рд╣рдорд▓реЛрдВ рд╕реЗ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред MongoDB рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ (рдЬреИрд╕реЗ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕рднреА рд╕рдВрдЪрд╛рд░ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Transport Layer Security/Secure Sockets Layer (TLS/SSL) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
TLS/SSL рдХреЗ рдмрд┐рдирд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓, рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рджреЗ рдкрд╛рда рдореЗрдВ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред TLS/SSL рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛ рдЧрдбрд╝рдмрдбрд╝ (рд╕реНрдХреНрд░реИрдореНрдмрд▓) рд╣реЛрдХрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣рддрд╛ рд╣реИред
TLS/SSL рд╕рдХреНрд╖рдо рдХрд░рдирд╛ : рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк рд╡реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рдкрд╣рдЪрд╛рди рд╕рддреНрдпрд╛рдкрди рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреА-рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛:
net:
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pemрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
net.ssl.mode: requireTLS рд╕рднреА рдЗрдирдХрдорд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ TLS/SSL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
certificateKeyFile рдЖрдкрдХреЗ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП TLS/SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ Certificate Authority рдлрд╝рд╛рдЗрд▓, рдХреНрд░рдорд╢рдГ, рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред
2. рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди
рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди, рдЙрди рднреМрддрд┐рдХ рдпрд╛ рдЖрднрд╛рд╕реА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдХреЗ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдХреЛрдИ рд╣рдорд▓рд╛рд╡рд░ рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕ рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд▓реЗ, рдлрд┐рд░ рднреА рдЙрд╕реЗ рдЖрдкрдХреЗ рдкрд░рд┐рдорд╛рдк (рдкреЗрд░рд┐рдореАрдЯрд░) рдХреЛ рднреЗрджрдирд╛ рд╣реЛрдЧрд╛ред
IP рд╢реНрд╡реЗрддрд╕реВрдЪреА (рд╡реНрд╣рд╛рдЗрдЯрд▓рд┐рд╕реНрдЯрд┐рдВрдЧ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдБрдЪ рд╕реАрдорд┐рдд рдХрд░рдирд╛: bindIp рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ, рдЖрдк рд╡рд┐рд╢рд┐рд╖реНрдЯ IP рдкрддреЛрдВ рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рд╢реНрд░реЗрд╖реНрда рдЕрднреНрдпрд╛рд╕: MongoDB рд╕рд░реНрд╡рд░ рдХреЛ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░реНрд╕, рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдпрд╛ рдкреНрд░реЙрдХреНрд╕реА рд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП рд╣реА рдПрдХреНрд╕рдкреЛрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рдХрднреА рднреА рд╕реАрдзреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рд┐рдорд╛рдк рдХреЗ рдкреАрдЫреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣реЗред
3. рдПрдЯ рд░реЗрд╕реНрдЯ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди (рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди)
рдПрдЯ рд░реЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдпрджрд┐ рднреМрддрд┐рдХ рдбрд┐рд╕реНрдХ рдпрд╛ рд╣реЛрд╕реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдордЭреМрддрд╛ (рдХрдореНрдкреНрд░реЛрдорд╛рдЗрдЬрд╝) рд╣реЛ рдЬрд╛рдП, рддреЛ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрдардиреАрдп рд░рд╣реЗрдВред MongoDB рдпрд╣ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: WiredTiger рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рднреА рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЬрд░реНрдирд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдкрдврд╝рддреЗ рд╕рдордп рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рд╣реЛрддреА рд╣реИред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдЪрд╛рд░: рдпрджреНрдпрдкрд┐ рдпрд╣ рдПрдХ рдЕрд╣рдо рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рдд рд╣реИ, рдиреЗрдЯрд┐рд╡ рдПрдЯ рд░реЗрд╕реНрдЯ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕рд╛рдорд╛рдиреНрдпрддрдГ MongoDB Enterprise рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА Key Management Interoperability Protocol (KMIP) рд╕рд░реНрд╡рд░реНрд╕ рдпрд╛ рд▓реЛрдХрд▓ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
4. рдХреНрд╡реЗрд░реА рдпреЛрдЧреНрдп рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде рдЗрди-рдпреВрдЬрд╝ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди (CSFLE ): рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд░реНрдг рдорд╛рдирдХ
рдЬрд╣рд╛рдБ рдПрдЯ рд░реЗрд╕реНрдЯ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, Client-Side Field Level Encryption (CSFLE) рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдкрд░ рд╕рдЯреАрдХ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХреЗрдВред
CSFLE рдХрд╛ рдкрд░рд┐рдЪрдп: CSFLE рдХреЗ рд╕рд╛рде, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рднреАрддрд░ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ MongoDB рд╕рд░реНрд╡рд░ рдХреЛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХрднреА рд╕рд╛рджреЗ рдкрд╛рда рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛; рд╡рд╣ рдХреЗрд╡рд▓ рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рд╣рд░ рд╕рдордп рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░рд╣рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореЗрдореЛрд░реА, рд╕рд░реНрд╡рд░ рд▓реЙрдЧ рдФрд░ рд╕реНрдЯреЛрд░реЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг: CSFLE рдЕрдиреБрдкрд╛рд▓рди (рдЬреИрд╕реЗ, GDPR, HIPAA) рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд░реНрдг рдорд╛рдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рднрд▓реЗ рд╣реА рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛ рдЬрд╛рдП, рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдлрд╝реАрд▓реНрдбреНрд╕ (рдЬреИрд╕реЗ PII рдпрд╛ рд╡рд┐рддреНрддреАрдп рдЬрд╛рдирдХрд╛рд░реА) рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣реЗрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд▓реЙрдЬрд┐рдХ рдХреЛ рд╕реАрдзреЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред
5. рдХреНрд╡реЗрд░реАрдпреЛрдЧреНрдп рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде рдЗрди-рдпреВрдЬрд╝ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди
Queryable Encryption CSFLE рдХрд╛ рдПрдХ рдЙрдиреНрдирдд рд░реВрдк рд╣реИ рдЬреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╝реАрд▓реНрдбреНрд╕ рдкрд░ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреА рдЪреБрдиреМрддреА рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЛ рд╕рдорд╛рдирддрд╛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ (рдЬреИрд╕реЗ, рдРрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдвреВрдБрдврдирд╛ рдЬрд╣рд╛рдБ рдХреЛрдИ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╝реАрд▓реНрдб рдХрд┐рд╕реА рдорд╛рди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ) рд╕реАрдзреЗ рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдзред рдпрд╣ CSFLE рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдбреЗрдЯрд╛ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ, рдпрд╛рдиреА рдбреЗрдЯрд╛ рдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рднреА рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░рдЦрддрд╛ рд╣реИред
рдСрдбрд┐рдЯрд┐рдВрдЧ: рдкреЛрд╕реНрдЯ-рдореЙрд░реНрдЯрдо рдЯреВрд▓
рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп рд░реЛрдХрдерд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдСрдбрд┐рдЯрд┐рдВрдЧ рдЬрд╡рд╛рдмрджреЗрд╣реА рдФрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред MongoDB рдХрд╛ рдЗрдирдмрд┐рд▓реНрдЯ рдСрдбрд┐рдЯрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд╛-рд╕рдВрдмрдВрдзреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдФрд░ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдлреЙрд░реЗрдВрд╕рд┐рдХ, рдЕрдиреБрдкрд╛рд▓рди, рдФрд░ рд╕рдХреНрд░рд┐рдп рдЦрддрд░рд╛ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд░рд┐рдХреЙрд░реНрдб рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИред
1. рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреНрдпреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ?
рдСрдбрд┐рдЯрд┐рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓реЙрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддреА рд╣реИред рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдШрдЯрдирд╛рдПрдБ: рд╕рдлрд▓ рдФрд░ рдЕрд╕рдлрд▓ рд▓реЙрдЧрд┐рди рдкреНрд░рдпрд╛рд╕ред
рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рд╕рдВрд╢реЛрдзрди рдпрд╛ рд╣рдЯрд╛рдирд╛ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди: рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕рдВрд╢реЛрдзрдиред
рдпрд╣ рд▓реЙрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ-рдЗрдВрд╕рд┐рдбреЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг ("рдкреЛрд╕реНрдЯ-рдореЙрд░реНрдЯрдо" рдЯреВрд▓) рдХрд░рдиреЗ рдпрд╛ рдирд┐рдпрд╛рдордХ рдЕрдиреБрдкрд╛рд▓рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрдореВрд▓реНрдп рд╣реИред
2. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ
рдСрдбрд┐рдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╕реАрдзрд╛ рд╣реИ, рдЕрдХреНрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдФрд░ рд▓реЙрдЧ рдХреЗ рдЧрдВрддрд╡реНрдп (рдлрд╝рд╛рдЗрд▓, syslog, рдпрд╛ рдХрдВрд╕реЛрд▓) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
auditLog:
destination: file
format: BSON
path: /var/log/mongodb/audit.bson
filter: '{ atype: { $in: [ "authenticate", "createRole", "dropUser" ] } }'рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ: рдСрдбрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреНрд╡реЗрд░реА рдЬреИрд╕реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддреНрдпрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо-рд╕реНрддрд░реАрдп рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд▓реЙрдЧ рд╡реЙрд▓реНрдпреВрдо рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг, рд╕реБрд░рдХреНрд╖рд╛-рд╕рдВрдмрдВрдзреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдмрдВрдзрди рдХреНрд░рд┐рдпрд╛рдПрдБ, рд╕реБрд░рдХреНрд╖рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди, рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдпрд╛рд╕ред
рд╕рд╛рд░рд╛рдВрд╢ рдФрд░ рдЖрдЧреЗ рдХреЗ рдЪрд░рдг
MongoDB рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░, рдПрдХ рдордЬрдмреВрдд рдбрд┐рдлреЗрдВрд╕-рдЗрди-рдбреЗрдкреНрде рд░рдгрдиреАрддрд┐ рдмрдирд╛рддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкрдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдп рд╡рд┐рдХрд╛рд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯреНрд╕ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдХрд░ рдЗрди рдореБрдЦреНрдп рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред
рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрди рддреАрди рдореБрдЦреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдпрддрд╛рдУрдВ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ:
рдЯреНрд░рд╛рдВрдЬрд╝рд┐рдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВ: рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП TLS/SSL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ( net.ssl.mode: requireTLS )ред
рдПрдЯ рд░реЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВ: рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдбрд┐рд╕реНрдХ рдкрд░ рдореМрдЬреВрдж рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ рддреЛ рд╡реЙрд▓реНрдпреВрдо- рдпрд╛ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо-рд▓реЗрд╡рд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдВ, рдпрд╛ MongoDB рдХреЗ WiredTiger рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди (MongoDB Enterprise рдореЗрдВ рдЙрдкрд▓рдмреНрдз) рд╕реЗ, рддрд╛рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдБрдЪ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рд╣реЛ рд╕рдХреЗред
рдЗрди-рдпреВрдЬрд╝ рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВ: рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рд▓рд┐рдП Client-Side Field Level Encryption (CSFLE) рдФрд░ Queryable Encryption рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд▓ рд░рд╣рд╛ рд╣реЛрдиреЗ рдкрд░ рднреА рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░рд╣реЗред
рд╕реБрд░рдХреНрд╖рд╛ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрд╢рд╛рд╕рди рд╣реИред рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭрдиреЗ рдФрд░ рдЙрдиреНрдирдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
MongoDB рд╕реБрд░рдХреНрд╖рд╛ рдХреЗрдВрджреНрд░ : рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдЦреНрддреА (рд╣рд╛рд░реНрдбрдирд┐рдВрдЧ) рдФрд░ рдкрд░рд┐рдЪрд╛рд▓рди рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдерд╛рдУрдВ рдкрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛рдПрдБ рджреЗрдЦреЗрдВред
рдЗрди-рдпреВрдЬрд╝ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: рд╕реАрдЦреЗрдВ рдХрд┐ Client-Side Field Level Encryption (CSFLE) рдФрд░ рдЗрд╕рдХреА рдЙрдиреНрдирдд рдХреНрд╖рдорддрд╛, рддрдерд╛ Queryable Encryption (QE) рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдЧреЛрдкрдиреАрдп рдмрдирд╛ рд░рд╣реЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рднреА рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреНрд╡реЗрд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдореИрдВ рдпрд╣ рднреА рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдБ рдХрд┐ рдЖрдк Introduction to Using MongoDB for Data Science in Python рдкрд╛рдареНрдпрдХреНрд░рдо рджреЗрдЦреЗрдВред
MongoDB рддреАрди рдореВрд▓рднреВрдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ тАФ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдкреНрд░рд╛рдзрд┐рдХрд╛рд░, рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди тАФ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реБрд░рдХреНрд╖рд╛ рдврд╛рдВрдЪрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдпреЗ рд╕реНрддрдВрдн рдкрд░рддрджрд╛рд░ рд╕реБрд░рдХреНрд╖рд╛ рд░рдХреНрд╖рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдПрдХ рд╕реНрддрд░ рдХреА рдЪреВрдХ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рди рдХрд░реЗред рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рдХрд╛ рд╕реНрддрдВрдн рдиреНрдпреВрдирддрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд (PoLP) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдЙрддрдиреА рд╣реА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ рдЬрд┐рддрдиреА рдЙрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред┬а
рдЗрд╕ рд╡реНрдпрд╛рдкрдХ, рдкрд░рддрджрд╛рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреА рд╕рдордЧреНрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдерд┐рддрд┐ рдордЬрдмреВрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреЗ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдХрдореА рдЖрддреА рд╣реИред┬а
рдкрд╣рд▓рд╛ рджреНрд╡рд╛рд░ рд╕рдХреНрд╖рдо рдХрд░рдирд╛: рдкреНрд░рдорд╛рдгреАрдХрд░рдг
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореВрд▓рднреВрдд рд╕реБрд░рдХреНрд╖рд╛ рдХрджрдо рд╣реИред рдпрд╣ рд╣рд░ рдЙрд╕ рдкреНрд░рдорд╛рддреНрд░ (principal) рдХреА рдкрд╣рдЪрд╛рди рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред MongoDB рдореЗрдВ, рдпрд╣ рдЙрди рд╕реБрд░рдХреНрд╖рд╛ рдлреАрдЪрд░реНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░рд╣рддреЗ рд╣реИрдВред
1. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдордЭрдирд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЖрдкрдХрд╛ MongoDB рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЗрд╡рд▓ localhost рдкрд░ рд▓рд┐рд╕рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдЕрднрд┐рдЧрдо рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИ, рддрд╛рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдФрд░ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдпреЛрдЧ рдЕрдзрд┐рдХрддрдо рд╕рд░рд▓ рд░рд╣реЗрдВред
рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдбрдХреНрд╢рди рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП, рджреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдзреНрдпрд╛рди рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
2. рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ MongoDB рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкреНрд▓реЗрдЧреНрд░рд╛рдЙрдВрдб рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ MongoDB рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (рдЖрдорддреМрд░ рдкрд░ mongod.conf) рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХрд░рдХреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯрд┐рдВрдЧ: рдлреАрдЪрд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП security рд╕реЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ authorization рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░реЗрдВ:
рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: рдПрдХ рдмрд╛рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рддрдм рддрдХ рдХреЛрдИ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдЬрдм рддрдХ рдЖрдк рдПрдХ рдкреНрд░рд╢рд╛рд╕рдХреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рдмрдирд╛ рд▓реЗрддреЗред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ admin рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдЙрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдмрдВрдзрди рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдзрд┐рдХрд╛рд░ рдорд┐рд▓реЗрдВред
3. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдмрдВрдзрди (createUser)
рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрднрд┐рдЧрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЙрдирдХреА рд╕рдВрдмрджреНрдз рднреВрдорд┐рдХрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЖрдк createUser рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рдкрд╣рдЪрд╛рдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рднреВрдорд┐рдХрд╛рдПрдБ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдЙрд╕рдХрд╛ рдпреВрдЬрд╝рд░рдиреЗрдо, рдкрд╛рд╕рд╡рд░реНрдб, рдФрд░ roles рдХреА рдПрдХ array рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рднреВрдорд┐рдХрд╛рдПрдБ рдЙрдирдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рддрдп рдХрд░рддреА рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ readWrite)ред
SCRAM рдорд╛рдирдХ: MongoDB Salted Challenge Response Authentication Mechanism (SCRAM) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХреЗред SCRAM рд╕рд╛рдзрд╛рд░рдг-рдкрд╛рда рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд░реВрдк рд╕реЗ рдордЬрдмреВрдд рд╣реИрд╢рд┐рдВрдЧ рдФрд░ рд╕реЙрд▓реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд░реЗрдирдмреЛ рдЯреЗрдмрд▓ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣рдорд▓реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕реБрджреГрдврд╝ рдмрдирддрд╛ рд╣реИред
4. рдЙрдиреНрдирдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдХрд▓реНрдк
рдХрдбрд╝реА рдЕрдиреБрдкрд╛рд▓рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдпрд╛ рдЬрдЯрд┐рд▓ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╡рд╛рд▓реА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП, MongoDB рдореМрдЬреВрджрд╛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝-рд╕реНрддрд░реАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
рдкреНрд░рд╛рдзрд┐рдХрд╛рд░: RBAC рдХреЗ рд╕рд╛рде рднреВрдорд┐рдХрд╛рдПрдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреМрди рд╣реИ; рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛/рд╕рдХрддреА рд╣реИред MongoDB рдХрд╛ Role-Based Access Control (RBAC) рд╕рд┐рд╕реНрдЯрдо рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рддрдВрддреНрд░ рд╣реИ, рдЬреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕реЗрд╡рд╛рдПрдБ рдХреЗрд╡рд▓ рдЙрд╕реА рдбреЗрдЯрд╛ рдФрд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░реЗрдВ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рд╕рдЦреНрддреА рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
1. рднреВрдорд┐рдХрд╛-рдЖрдзрд╛рд░рд┐рдд рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг
MongoDB рдХреЗ RBAC рдореЙрдбрд▓ рдореЗрдВ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ roles рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпреЗ рднреВрдорд┐рдХрд╛рдПрдБ users рдХреЛ рд╕реМрдВрдкреА рдЬрд╛рддреА рд╣реИрдВред рд╕реИрдХрдбрд╝реЛрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реМрдВрдкрдиреЗ рдХреА рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рд╣реА рднреВрдорд┐рдХрд╛ (рдЬреИрд╕реЗ inventoryReader) рд╕реМрдВрдкрддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рдХрд░рддреА рд╣реИ (рдЬреИрд╕реЗ inventory.products рдкрд░ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐)ред рдЗрд╕рд╕реЗ рдЕрдиреБрдорддрд┐ рдкреНрд░рдмрдВрдзрди рд╕реНрдХреЗрд▓реЗрдмрд▓ рдФрд░ рдСрдбрд┐рдЯ рдпреЛрдЧреНрдп рдмрдирддрд╛ рд╣реИред
2. рдмрд┐рд▓реНрдЯ-рдЗрди рднреВрдорд┐рдХрд╛рдПрдБ рдЬрд┐рдирдХреА рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ
MongoDB рд╕рд╛рдорд╛рдиреНрдп рдЕрднрд┐рдЧрдо рдкреИрдЯрд░реНрди рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд┐рд▓реНрдЯ-рдЗрди рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рд╢рдХреНрдд рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВред рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
3. рдиреНрдпреВрдирддрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдЖрдзреБрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдореВрд▓ рд╕реНрддрдВрдн рд╣реИ рдиреНрдпреВрдирддрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд (PoLP)ред рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдХреЛ рдХреЗрд╡рд▓ рдЙрддрдиреА рд╣реА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдорд┐рд▓реЗрдВ рдЬрд┐рддрдиреА рдЙрд╕рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИрдВ, рдФрд░ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред
рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ readWrite рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмрдЬрд╛рдп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ inventory рд╕рд░реНрд╡рд┐рд╕ рдХреЗрд╡рд▓ app_data рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА readWrite рдЕрднрд┐рдЧрдо рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрд╕реА рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╕реАрдорд┐рдд рд╣реЛред рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдХрд┐рд╕реА рд╕рдордЭреМрддрд╛ рд╣реЛ рдЪреБрдХреА рд╕реЗрд╡рд╛ рдХреЛ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ (рдЬреИрд╕реЗ billing рдпрд╛ users) рддрдХ рдЕрдирдзрд┐рдХреГрдд рдЕрднрд┐рдЧрдо рдкрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг: рдиреНрдпреВрдирддрдо-рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (inventory_service) рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ app_data рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╣реА рд╕рдЦреНрддреА рд╕реЗ рд╕реАрдорд┐рдд рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрднрд┐рдЧрдо рд╣реИред
4. рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛рдПрдБ рдмрдирд╛рдирд╛ (рдЬрдм рдмрд┐рд▓реНрдЯ-рдЗрди рдкрд░реНрдпрд╛рдкреНрдд рди рд╣реЛрдВ)
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдмрд┐рд▓реНрдЯ-рдЗрди рднреВрдорд┐рдХрд╛рдПрдБ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИрдВ, рдЕрдиреБрдкрд╛рд▓рди рдпрд╛ рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдЕрддреНрдпрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рдирд┐рдпрдВрддреНрд░рдг рдХреА рдорд╛рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, MongoDB рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛рдПрдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП db.createRole() рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕реВрдХреНрд╖реНрдо рд╕реНрддрд░ рдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛: рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛рдПрдБ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВ рдХрд┐ рдХрд┐рди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреНрд░рд┐рдпрд╛рдУрдВ (рдЬреИрд╕реЗ, find, update, insert) рдХреЛ рдХреНрд▓рд╕реНрдЯрд░, рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдХрд▓реЗрдХреНрд╢рди рд╕реНрддрд░ рдкрд░ рд╕реНрдХреЛрдк рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрдЧрдарди рдлреАрд▓реНрдб-рд╕реНрддрд░реАрдп рд░рд┐рдбреИрдХреНрд╢рди рдЬреИрд╕реА рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдиреНрдпрдерд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд▓реЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЬрд╛ рд╕рдХреЗред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг: рдПрдХ рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛ рдмрдирд╛рдирд╛
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХрд╕реНрдЯрдо рднреВрдорд┐рдХрд╛ (product_creator) рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ products рдХрд▓реЗрдХреНрд╢рди рдореЗрдВ, app_data рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреАрддрд░, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЛрдбрд╝ рд╕рдХрддреА рд╣реИред
рд╕рдордЧреНрд░ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛: рдиреЗрдЯрд╡рд░реНрдХ рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди
рдЬрд╣рд╛рдБ рдордЬрдмреВрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣реАрдВ рд╕рдордЧреНрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдбреЗрдЯрд╛ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИтАФрдЬрдм рд╡рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ (рдЗрди рдЯреНрд░рд╛рдВрдЬрд╝рд┐рдЯ) рдФрд░ рдЬрдм рд╡рд╣ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ (рдПрдЯ рд░реЗрд╕реНрдЯ)ред
1. TLS/SSL рдХреЗ рд╕рд╛рде рдЯреНрд░рд╛рдВрдЬрд╝рд┐рдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛
рдХрд┐рд╕реА рднреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди, рдЪрд╛рд╣реЗ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдХреЗ рдЕрдВрджрд░реВрдиреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╣реЛ рдпрд╛ рдХреНрд▓рд╛рдЙрдб рдХреЗ рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░, рдИрд╡реНрд╕рдбреНрд░реЙрдкрд┐рдВрдЧ рдФрд░ рдореИрди-рдЗрди-рдж-рдорд┐рдбрд▓ (MITM) рд╣рдорд▓реЛрдВ рд╕реЗ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред MongoDB рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ (рдЬреИрд╕реЗ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕рднреА рд╕рдВрдЪрд╛рд░ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Transport Layer Security/Secure Sockets Layer (TLS/SSL) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
TLS/SSL рдХреЗ рдмрд┐рдирд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓, рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рджреЗ рдкрд╛рда рдореЗрдВ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред TLS/SSL рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛ рдЧрдбрд╝рдмрдбрд╝ (рд╕реНрдХреНрд░реИрдореНрдмрд▓) рд╣реЛрдХрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣рддрд╛ рд╣реИред
TLS/SSL рд╕рдХреНрд╖рдо рдХрд░рдирд╛: рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк рд╡реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рдкрд╣рдЪрд╛рди рд╕рддреНрдпрд╛рдкрди рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреА-рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛:
2. рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди
рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди, рдЙрди рднреМрддрд┐рдХ рдпрд╛ рдЖрднрд╛рд╕реА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдХреЗ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдХреЛрдИ рд╣рдорд▓рд╛рд╡рд░ рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕ рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд▓реЗ, рдлрд┐рд░ рднреА рдЙрд╕реЗ рдЖрдкрдХреЗ рдкрд░рд┐рдорд╛рдк (рдкреЗрд░рд┐рдореАрдЯрд░) рдХреЛ рднреЗрджрдирд╛ рд╣реЛрдЧрд╛ред
3. рдПрдЯ рд░реЗрд╕реНрдЯ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди (рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди)
рдПрдЯ рд░реЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдпрджрд┐ рднреМрддрд┐рдХ рдбрд┐рд╕реНрдХ рдпрд╛ рд╣реЛрд╕реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдордЭреМрддрд╛ (рдХрдореНрдкреНрд░реЛрдорд╛рдЗрдЬрд╝) рд╣реЛ рдЬрд╛рдП, рддреЛ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрдардиреАрдп рд░рд╣реЗрдВред MongoDB рдпрд╣ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИред
4. рдХреНрд╡реЗрд░реА рдпреЛрдЧреНрдп рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде рдЗрди-рдпреВрдЬрд╝ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди (CSFLE): рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд░реНрдг рдорд╛рдирдХ
рдЬрд╣рд╛рдБ рдПрдЯ рд░реЗрд╕реНрдЯ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, Client-Side Field Level Encryption (CSFLE) рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдкрд░ рд╕рдЯреАрдХ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХреЗрдВред
5. рдХреНрд╡реЗрд░реАрдпреЛрдЧреНрдп рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде рдЗрди-рдпреВрдЬрд╝ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди
Queryable Encryption CSFLE рдХрд╛ рдПрдХ рдЙрдиреНрдирдд рд░реВрдк рд╣реИ рдЬреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╝реАрд▓реНрдбреНрд╕ рдкрд░ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреА рдЪреБрдиреМрддреА рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЛ рд╕рдорд╛рдирддрд╛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ (рдЬреИрд╕реЗ, рдРрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдвреВрдБрдврдирд╛ рдЬрд╣рд╛рдБ рдХреЛрдИ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╝реАрд▓реНрдб рдХрд┐рд╕реА рдорд╛рди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ) рд╕реАрдзреЗ рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдзред рдпрд╣ CSFLE рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдбреЗрдЯрд╛ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ, рдпрд╛рдиреА рдбреЗрдЯрд╛ рдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рднреА рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░рдЦрддрд╛ рд╣реИред
рдСрдбрд┐рдЯрд┐рдВрдЧ: рдкреЛрд╕реНрдЯ-рдореЙрд░реНрдЯрдо рдЯреВрд▓
рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп рд░реЛрдХрдерд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдСрдбрд┐рдЯрд┐рдВрдЧ рдЬрд╡рд╛рдмрджреЗрд╣реА рдФрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред MongoDB рдХрд╛ рдЗрдирдмрд┐рд▓реНрдЯ рдСрдбрд┐рдЯрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд╛-рд╕рдВрдмрдВрдзреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдФрд░ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдлреЙрд░реЗрдВрд╕рд┐рдХ, рдЕрдиреБрдкрд╛рд▓рди, рдФрд░ рд╕рдХреНрд░рд┐рдп рдЦрддрд░рд╛ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд░рд┐рдХреЙрд░реНрдб рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИред
1. рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреНрдпреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ?
рдСрдбрд┐рдЯрд┐рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓реЙрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддреА рд╣реИред рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдпрд╣ рд▓реЙрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ-рдЗрдВрд╕рд┐рдбреЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг ("рдкреЛрд╕реНрдЯ-рдореЙрд░реНрдЯрдо" рдЯреВрд▓) рдХрд░рдиреЗ рдпрд╛ рдирд┐рдпрд╛рдордХ рдЕрдиреБрдкрд╛рд▓рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрдореВрд▓реНрдп рд╣реИред
2. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ
рдСрдбрд┐рдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╕реАрдзрд╛ рд╣реИ, рдЕрдХреНрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдФрд░ рд▓реЙрдЧ рдХреЗ рдЧрдВрддрд╡реНрдп (рдлрд╝рд╛рдЗрд▓, syslog, рдпрд╛ рдХрдВрд╕реЛрд▓) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╕рд╛рд░рд╛рдВрд╢ рдФрд░ рдЖрдЧреЗ рдХреЗ рдЪрд░рдг
MongoDB рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░, рдПрдХ рдордЬрдмреВрдд рдбрд┐рдлреЗрдВрд╕-рдЗрди-рдбреЗрдкреНрде рд░рдгрдиреАрддрд┐ рдмрдирд╛рддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкрдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдп рд╡рд┐рдХрд╛рд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯреНрд╕ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдХрд░ рдЗрди рдореБрдЦреНрдп рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред
рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрди рддреАрди рдореБрдЦреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдпрддрд╛рдУрдВ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ:
рд╕реБрд░рдХреНрд╖рд╛ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрд╢рд╛рд╕рди рд╣реИред рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭрдиреЗ рдФрд░ рдЙрдиреНрдирдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
рдореИрдВ рдпрд╣ рднреА рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдБ рдХрд┐ рдЖрдк Introduction to Using MongoDB for Data Science in Python рдкрд╛рдареНрдпрдХреНрд░рдо рджреЗрдЦреЗрдВред