เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™ MySQL: Keystore

เปƒเบ™เบ„เบงเบฒเบกเบ„เบฒเบ”เบซเบงเบฑเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบซเบผเบฑเบเบชเบนเบ” "เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™" เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเบฐเบเบฝเบกเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™.

เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™ MySQL: Keystore

เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เป‚เบ›เปˆเบ‡เปƒเบช (TDE) เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ เป€เบŠเบตเบšเป€เบงเบต Percona เบชเปเบฒเบฅเบฑเบš MySQL เปเบฅเบฐ MySQL เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เป€เบงเบฅเบฒ. เปเบ•เปˆเบ—เปˆเบฒเบ™เป€เบ„เบตเบเบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ•เป‰ hood เปเบฅเบฐเบœเบปเบ™เบเบฐเบ—เบปเบšเบญเบฑเบ™เปƒเบ”เบ—เบตเปˆ TDE เบชเบฒเบกเบฒเบ”เบกเบตเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™? เปƒเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™ TDE เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ™. เบกเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบฐเปเบˆ, เป€เบžเบฒเบฐเบงเปˆเบฒเบญเบฑเบ™เบ™เบตเป‰เบˆเบณเป€เบ›เบฑเบ™เบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ”เป†เบเปเบ•เบฒเบกเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบขเปˆเบฒเบ‡เปƒเบเป‰เบŠเบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™ Percona Server เบชเปเบฒเบฅเบฑเบš MySQL / MySQL เปเบฅเบฐเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡ Percona Server เบชเปเบฒเบฅเบฑเบš MySQL เบกเบตเบซเบเบฑเบ‡เปเบ”เปˆ.

MySQL Keyring

เบเบฐเปเบˆเปเบกเปˆเบ™เบ›เบฅเบฑเบเบญเบดเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบŠเบตเบšเป€เบงเบตเบชเบญเบšเบ–เบฒเบก, เบชเป‰เบฒเบ‡ เปเบฅเบฐเบฅเบถเบšเบเบฐเปเบˆเปƒเบ™เป„เบŸเบฅเปŒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (keyring_file) เบซเบผเบทเปƒเบ™เป€เบŠเบตเบšเป€เบงเบตเบ—เบฒเบ‡เป„เบ (เป€เบŠเบฑเปˆเบ™: HashiCorp Vault). เบฅเบฐเบซเบฑเบ”เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเป€เปเบตเป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™.

Plugins เบชเบฒเบกเบฒเบ”เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบชเบญเบ‡เบ›เบฐเป€เบžเบ”:

  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป„เบŸเบฅเปŒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบตเป‰เบ™เบ™เบตเป‰เบงเปˆเบฒ keyring เป„เบŸเบฅเปŒ).
  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบฅเบเบฐเป„เบ. เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, Vault Server (เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบตเป‰เบ™เบญเบฑเบ™เบ™เบตเป‰เบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เป€เบŠเบตเบšเป€เบงเบต).

เบเบฒเบ™เปเบเบเบ™เบตเป‰เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒเบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบ”เบถเบ‡เบฅเบฐเบซเบฑเบ”, เปเบ•เปˆเบเบฑเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเปˆเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒ, เป€เบกเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป€เบ™เบทเป‰เบญเปƒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบˆเบฐเบ–เบทเบเป‚เบซเบฅเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ cache: key id, key user, key type, and the key itself.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เป‰เบฒเบ‡เป€เบŠเบตเบŸเป€เบงเบต (เป€เบŠเบฑเปˆเบ™: เป€เบŠเบตเบŸเป€เบงเบต Vault), เบžเบฝเบ‡เปเบ•เปˆ id เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ–เบทเบเป‚เบซเบฅเบ”เปƒเบ™เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบšเปเปˆเป„เบ”เป‰เบŠเป‰เบฒเบฅเบปเบ‡เปƒเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบเบฐเปเบˆเบ–เบทเบเป‚เบซเบผเบ”เบขเปˆเบฒเบ‡เบญเบดเบ”เป€เบกเบทเปˆเบญเบ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบเบธเบ™เปเบˆเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบ–เบทเบเป‚เบซเบฅเบ”เบˆเบฒเบ Vault เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบปเบงเบˆเบดเบ‡. เป€เบกเบทเปˆเบญเบ”เบฒเบงเป‚เบซเบฅเบ”เปเบฅเป‰เบง, เบฅเบฐเบซเบฑเบ”เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป€เบžเบทเปˆเบญเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TLS เบเบฑเบš Vault Server เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. เบ•เปเปˆเป„เบ›, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เปƒเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบฎเป‰เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™.

เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

  • เบฅเบฐเบซเบฑเบ”เบฅเบฐเบซเบฑเบ” โ€” เบ•เบปเบงโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹, เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹:
    INNODBKey-764d382a-7324-11e9-ad8f-9cb6d0d5dc99-1
  • เบ›เบฐเป€เบžเบ”เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™ โ€” เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เบญเบตเบ‡โ€‹เบ•เบฒเบกโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹: โ€œAESโ€‹โ€โ€‹, โ€œRSAโ€‹โ€ เบซเบผเบท โ€œDSAโ€‹โ€โ€‹.
  • เบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™ โ€” เบ„เบงเบฒเบกโ€‹เบเบฒเบงโ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เปƒเบ™ bytesโ€‹, AESโ€‹: 16โ€‹, 24 เบซเบผเบท 32โ€‹, RSA 128โ€‹, 256โ€‹, 512 เปเบฅเบฐ DSA 128โ€‹, 256 เบซเบผเบท 384โ€‹.
  • เบœเบนเป‰เปƒเบŠเป‰ - เป€เบˆเบปเป‰เบฒโ€‹เบ‚เบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹. เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบฅเบฐเบšเบปเบš, เบ•เบปเบงเบขเปˆเบฒเบ‡, Master Key, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ. เบ–เป‰เบฒเบเบฐเปเบˆเบ–เบทเบเบชเป‰เบฒเบ‡เป‚เบ”เบเปƒเบŠเป‰ keyring_udf, เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบˆเบฐเบฅเบฐเบšเบธเป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบเบฐเปเบˆ.
  • เบเบธเบ™เปเบˆเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡

เบ„เบตเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ„เบนเปˆ: key_id, เบœเบนเป‰เปƒเบŠเป‰.

เบเบฑเบ‡เบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบเบฒเบ™เบฅเบถเบšเบฅเบฐเบซเบฑเบ”.

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเป„เบงเบ‚เบถเป‰เบ™. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ„เบดเบ”เบงเปˆเบฒเบฎเป‰เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบ‚เบฝเบ™เบเบฐเปเบˆเปƒเบชเปˆเป„เบŸเบฅเปŒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™, เบกเบฑเบ™เบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบตเป‰. เป€เบกเบทเปˆเบญเปƒเบ”เบเปเปˆเบ•เบฒเบกเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบ–เบทเบเป€เบฎเบฑเบ”, เบชเปเบฒเป€เบ™เบปเบฒเบชเปเบฒเบฎเบญเบ‡เบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”. เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเป„เบŸเบฅเปŒเป€เบญเบตเป‰เบ™เบงเปˆเบฒ my_biggest_secrets, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเปเบฒเป€เบ™เบปเบฒเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเป€เบ›เบฑเบ™ my_biggest_secrets.backup. เบ•เปเปˆเป„เบ›, cache เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ›เบ‡ (เบ›เบธเปˆเบกเบ–เบทเบเป€เบžเบตเปˆเบกเบซเบผเบทเบฅเบถเบšเบญเบญเบ) เปเบฅเบฐ, เบ–เป‰เบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”, cache เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เปƒเบซเบกเปˆเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบซเบฒเบเบฒเบ, เป€เบŠเบฑเปˆเบ™เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป€เบซเบฑเบ™เป„เบŸเบฅเปŒเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰. เป„เบŸเบฅโ€‹เปŒโ€‹เบฒโ€‹เบฎเบญเบ‡โ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบฅเบปเบšโ€‹เปƒเบ™โ€‹เบ„เบฑเป‰เบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ—เบตเปˆโ€‹เบเบฐโ€‹เปเบˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เป‚เบซเบผเบ” (เป‚เบ”เบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบโ€‹เปเบกเปˆเบ™ restartedโ€‹)โ€‹.

เป€เบกเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบซเบผเบทเบฅเบถเบšเบเบฐเปเบˆเบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ MySQL เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡ "เบชเบปเปˆเบ‡เบฅเบฐเบซเบฑเบ”" / "เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบฅเบถเบšเบฅเบฐเบซเบฑเบ”".

เปƒเบซเป‰เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ„เบงเบฒเบกเป„เบงเปƒเบ™เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเป‚เบ”เบ vault เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เบเบฑเบ‡เบกเบตเบšเบฑเบ™เบซเบฒเบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบเบฐเปเบˆเบˆเบฒเบ vault เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เบถเบ‡เบญเบญเบเบกเบฒเปƒเบ™เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปเบ™เปˆเบ™เบญเบ™, เบ™เบตเป‰เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป€เบŠเบตเบšเป€เบงเบตเบˆเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบเบฐเปเบˆเปƒเบ”เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡/เบžเบทเป‰เบ™เบ—เบตเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ เปเบฅเบฐเบฎเป‰เบญเบ‡เบ‚เปเบฅเบฐเบซเบฑเบ”เบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™. เปƒเบ™เป€เบŠเบตเบšเป€เบงเบตเบ—เบตเปˆ "เบชเบฐเบญเบฒเบ”" เบ”เป‰เบงเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” Master Key, เบ•เป‰เบญเบ‡เบกเบต Master Key เบญเบฑเบ™เปœเบถเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เบถเบ‡เบกเบฒเบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบˆเปเบฒเบ™เบงเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปเบฒเบฅเบฑเบ‡เบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบปเป‰เบ™เบ•เป. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบเบฒเบ™เบซเบกเบธเบ™เบ‚เบญเบ‡ Master Key เบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡. เบ™เบตเป‰เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบงเบกเป€เบญเบปเบฒเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเปƒเบŠเป‰ Master Keys เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเป‰เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบ•เบทเปˆเบกเบญเบตเบเป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบš keyring_file. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เป‰เบญเบเบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒ keyring_file, เบ‚เป‰เบญเบเบเบฑเบ‡เบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ keyring_file เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ. เปƒเบ™ 5.7, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบดเบ•เบดเป„เบŸเบฅเปŒ, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เปเบฅเบฐเปƒเบ™ 8.0 เบกเบฑเบ™เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ checksum SHA256.

เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ keyring_file, เบชเบฐเบ–เบดเบ•เบดเป„เบŸเบฅเปŒเปเบฅเบฐ checksum เป„เบ”เป‰เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆ, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบˆเบปเบ”เบˆเปเบฒเป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบกเปˆเบ™เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบเบปเบ‡เบเบฑเบ™. เป€เบกเบทเปˆเบญเป„เบŸเบฅเปŒเบ›เปˆเบฝเบ™เปเบ›เบ‡, checksum เบˆเบฐเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเบงเบกเป€เบญเบปเบฒเบซเบผเบฒเบเบ„เปเบฒเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบš vaults เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบฅเป‰เบง. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบตเบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบฑเบเบˆเบฐเบ–เบทเบเบฅเบทเบกเบซเบผเบทเป€เบ‚เบปเป‰เบฒเปƒเบˆเบœเบดเบ”: เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ”เบ—เบปเปˆเบงเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.

เบชเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบงเปˆเบฒ? เปเบ•เปˆเบฅเบฐเป€เบŠเบตเบšเป€เบงเบต (เบ•เบปเบงเบขเปˆเบฒเบ‡, Percona Server) เปƒเบ™เบเบธเปˆเบกเบ•เป‰เบญเบ‡เบกเบตเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบขเบนเปˆเปƒเบ™ Vault Server เบ—เบตเปˆ Percona Server เบ•เป‰เบญเบ‡เป€เบเบฑเบšเบเบฐเปเบˆเบ‚เบญเบ‡เบกเบฑเบ™. เปเบ•เปˆเบฅเบฐ Master Key เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบกเบต GUID เบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบต Percona เบžเบฒเบเปƒเบ™เบ•เบปเบงเบฅเบฐเบšเบธเบ‚เบญเบ‡เบกเบฑเบ™. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™? เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบต Vault Server เปœเปˆเบงเบเบ”เบฝเบง เปเบฅเบฐเป€เบŠเบตเบšเป€เบงเบต Percona เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบเบธเปˆเบกเปƒเบŠเป‰ Vault Server เบ”เบฝเบงเบ™เบฑเป‰เบ™. เบšเบฑเบ™เบซเบฒเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฐเปเบˆเป‰เบ‡. เบ–เป‰เบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ Percona เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบŠเป‰ Master Key เป‚เบ”เบเบšเปเปˆเบกเบตเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ, เป€เบŠเบฑเปˆเบ™: id = 1, id = 2, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ cluster เบˆเบฐเปƒเบŠเป‰ Master Key เบ”เบฝเบงเบเบฑเบ™. เบชเบดเปˆเบ‡เบ—เบตเปˆ GUID เบชเบฐเบซเบ™เบญเบ‡เปเบกเปˆเบ™เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบˆเบดเปˆเบ‡เป€เบงเบปเป‰เบฒเป€เบฅเบทเปˆเบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฐเปเบˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบŠเบตเบšเป€เบงเบต เบ–เป‰เบฒเบกเบต GUID เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบขเบนเปˆเปเบฅเป‰เบง? เบกเบต plugin เบญเบทเปˆเบ™ - keyring_udf . เบ”เป‰เบงเบเบ›เบฑเปŠเบเบญเบดเบ™เบ™เบตเป‰, เบœเบนเป‰เปƒเบŠเป‰เป€เบŠเบตเบšเป€เบงเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบเบฐเปเบˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆเปƒเบ™เป€เบŠเบตเบšเป€เบงเบต Vault. เบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบทเป‰เบ™เป€เบกเบทเปˆเบญเบœเบนเป‰เปƒเบŠเป‰เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™ server1, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบต ID เบ”เบฝเบงเบเบฑเบ™เบขเบนเปˆเปƒเบ™ server2, เบ•เบปเบงเบขเปˆเบฒเบ‡:

--server1:
select keyring_key_store('ROB_1','AES',"123456789012345");
1
--1 ะทะฝะฐั‡ะธั‚ ัƒัะฟะตัˆะฝะพะต ะทะฐะฒะตั€ัˆะตะฝะธะต
--server2:
select keyring_key_store('ROB_1','AES',"543210987654321");
1

เบฅเปเบ–เป‰เบฒ. เป€เบŠเบตเบšเป€เบงเบตเบ—เบฑเบ‡เบชเบญเบ‡เบเบณเบฅเบฑเบ‡เปƒเบŠเป‰ Vault Server เบ”เบฝเบงเบเบฑเบ™, เบŸเบฑเบ‡เบŠเบฑเบ™ keyring_key_store เบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™ server2 เบšเป? เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบ™เบถเปˆเบ‡, เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”:

--server1:
select keyring_key_store('ROB_1','AES',"123456789012345");
1
select keyring_key_store('ROB_1','AES',"543210987654321");
0

เบ–เบทเบเปเบฅเป‰เบง, ROB_1 เบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡เบเปˆเบญเบ™. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเปˆเบฒเบงเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบฑเป‰เบ™, keyring_vault เบซเบผเบท plugin keyring เบญเบทเปˆเบ™เป†เบˆเบฐเป€เบเบฑเบš ID เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ, ROB_1 เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ server1, เปเบฅเบฐเบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบชเบปเปˆเบ‡เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เป„เบ›เบซเบฒ Vault, เบฅเบฐเบซเบฑเบ”เบเบฑเบ‡เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ cache. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบžเบฐเบเบฒเบเบฒเบกเป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”เบ”เบฝเบงเบเบฑเบ™เป€เบ›เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡, keyring_vault เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบกเบตเบขเบนเปˆเปƒเบ™ cache เปเบฅเบฐเบ–เบดเป‰เบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เปเบฒเบญเบดเบ”, เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. Server1 เปเบฅเบฐ server2 เบกเบตเปเบ„เบ”เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบžเบตเปˆเบก ROB_1 เปƒเบชเปˆ cache เบซเบผเบฑเบเปƒเบ™ server1 เปเบฅเบฐ Vault server, key cache เปƒเบ™ server2 เบšเปเปˆเป„เบ”เป‰เบŠเบดเป‰เบ‡. เบšเปเปˆเบกเบตเบเบฐเปเบˆ ROB_2 เปƒเบ™ cache เปƒเบ™ server1. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบฐเบซเบฑเบ” ROB_1 เบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆ keyring_key_store เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ Vault, เป€เบŠเบดเปˆเบ‡เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบ‚เบฝเบ™เบ—เบฑเบš (!) เบ„เปˆเบฒเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ. เบ•เบญเบ™เบ™เบตเป‰เบเบฐเปเบˆ ROB_1 เปƒเบ™เป€เบŠเบตเบšเป€เบงเบต Vault เปเบกเปˆเบ™ 543210987654321. เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ, เป€เบŠเบตเบšเป€เบงเบต Vault เบšเปเปˆเป„เบ”เป‰เบ›เบดเบ”เบเบฑเป‰เบ™เบเบฒเบ™เบเบฐเบ—เบณเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง เปเบฅเบฐเบ‚เบฝเบ™เบ—เบฑเบšเบ„เปˆเบฒเป€เบเบปเปˆเบฒเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ.

เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ™ Vault เบชเบฒเบกเบฒเบ”เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™ - เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ keyring_udf เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบเบฐเปเบˆเบขเบนเปˆเปƒเบ™ Vault. เบงเบดเบ—เบตเบเบฒเบ™เบšเบฑเบ™เบฅเบธเบเบฒเบ™เปเบเบเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ Vault?

เบกเบตเบชเบญเบ‡เบงเบดเบ—เบตเปƒเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Vault. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบˆเบธเบ” mount เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบซเบผเบทเปƒเบŠเป‰เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบžเบฒเบเปƒเบ™เบˆเบธเบ” mount เบ”เบฝเบงเบเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ”เป‰เบงเบเบ•เบปเบงเบขเปˆเบฒเบ‡. เบชเบฐเบ™เบฑเป‰เบ™ เป€เบฎเบปเบฒเบกเบฒเป€เบšเบดเปˆเบ‡เบˆเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบ•เปˆเบฅเบฐเบญเบฑเบ™เบเปˆเบญเบ™:

--server1:
vault_url = http://127.0.0.1:8200
secret_mount_point = server1_mount
token = (...)
vault_ca = (...)

--server2:
vault_url = http://127.0.0.1:8200
secret_mount_point = sever2_mount
token = (...)
vault_ca = (...)

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒ server1 เปเบฅเบฐ server2 เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบˆเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹, เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบตเป‰โ€‹:

--server1:
vault_url = http://127.0.0.1:8200
secret_mount_point = mount_point/server1
token = (...)
vault_ca = (...)
--server2:
vault_url = http://127.0.0.1:8200
secret_mount_point = mount_point/sever2
token = (...)
vault_ca = (...)

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ—เบฑเบ‡เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบŠเป‰เบˆเบธเบ” mount เบ”เบฝเบงเบเบฑเบ™ "mount_point", เปเบ•เปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปƒเบ™ server1 เป‚เบ”เบเปƒเบŠเป‰เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ™เบตเป‰, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ Vault เบˆเบฐเบชเป‰เบฒเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต "server1" เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบชเปเบฒเบฅเบฑเบš server2 เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™. เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบฅเบถเบšเบ„เบงเบฒเบกเบฅเบฑเบšเบชเบธเบ”เบ—เป‰เบฒเบเปƒเบ™ mount_point/server1 เบซเบผเบท mount_point/server2, เป€เบŠเบตเบšเป€เบงเบต Vault เบˆเบฐเบฅเบถเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เป€เบŠเบฑเปˆเบ™เบเบฑเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เปเบเบเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบˆเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบงเปเบฅเบฐเบ›เปˆเบฝเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบŠเป‰เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบˆเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป HTTP. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ CURL เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

curl -L -H "X-Vault-Token: TOKEN" โ€“cacert VAULT_CA
--data '{"type":"generic"}' --request POST VAULT_URL/v1/sys/mounts/SECRET_MOUNT_POINT

เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ” (TOKEN, VAULT_CA, VAULT_URL, SECRET_MOUNT_POINT) เบเบปเบ‡เบเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. เปเบ™เปˆเบ™เบญเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ Vault Utilities เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™. เปเบ•เปˆเบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบˆเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ‚เป‰เบญเบเบซเบงเบฑเบ‡เบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบžเบปเบšเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เป€เบˆเบปเป‰เบฒเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ•เปเปˆเป„เบ›เปƒเบ™เบŠเบธเบ”เบ™เบตเป‰.

เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™ MySQL: Keystore

เบญเปˆเบฒเบ™โ€‹เบ•เบทเปˆเบก:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™