ืขื ืงืจื™ืคึผืฉืึทืŸ ืื™ืŸ MySQL: Keystore

ืื™ืŸ ืึทื ื˜ื™ืกืึทืคึผื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ืึท ื ื™ื™ึท ืขื ืจืึธื•ืœืžืึทื ื˜ ืคึฟืึทืจ ื“ืขื ืงื•ืจืก "ื“ืึทื˜ืึทื‘ืึทืกืข" ืžื™ืจ ื”ืึธื‘ืŸ ืฆื•ื’ืขื’ืจื™ื™ื˜ ืึท ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ืึท ื ื•ืฆื™ืง ืึทืจื˜ื™ืงืœ ืคึฟืึทืจ ืื™ืจ.

ืขื ืงืจื™ืคึผืฉืึทืŸ ืื™ืŸ MySQL: Keystore

ื˜ืจืึทื ืกืคึผืึทืจืขื ื˜ ื“ืึทื˜ืึท ืขื ืงืจื™ืคึผืฉืึทืŸ (TDE) ืื™ื– ืืจื•ื™ืก ืื™ืŸ ืคึผืขืจืงืึธื ืึท ืกืขืจื•ื•ื™ืจืขืจ ืคึฟืึทืจ MySQL ืื•ืŸ MySQL ืคึฟืึทืจ ื’ืึทื ืฅ ืขื˜ืœืขื›ืข ืžืึธืœ. ืึธื‘ืขืจ ื”ืึธื‘ืŸ ืื™ืจ ืืœืฅ ื’ืขื“ืึทื ืง ื•ื•ืขื’ืŸ ื•ื•ื™ ืขืก ืึทืจื‘ืขื˜ ืื•ื ื˜ืขืจ ื“ื™ ืงืึทืคึผื˜ืขืจ ืื•ืŸ ื•ื•ืึธืก ืคึผืจืึทืœ TDE ืงืขืŸ ื”ืึธื‘ืŸ ืื•ื™ืฃ ื“ื™ื™ืŸ ืกืขืจื•ื•ืขืจ? ืื™ืŸ ื“ืขืจ ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืึทืจื˜ื™ืงืœืขืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ื•ื•ื™ TDE ืึทืจื‘ืขื˜ ื™ื ืขื•ื•ื™ื™ื ื™ืง. ืœืึธืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ืฉืœื™ืกืœ ืกื˜ืึธืจื™ื“ื–ืฉ, ื•ื•ื™ื™ึทืœ ื“ืึธืก ืื™ื– ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ืงื™ื™ืŸ ืขื ืงืจื™ืคึผืฉืึทืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ. ื“ืขืจื ืึธืš ืžื™ืจ ื•ื•ืขืœืŸ ื ืขืžืขืŸ ืึท ื ืขืขื ื˜ืขืจ ืงื•ืง ื•ื•ื™ ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืจื‘ืขื˜ ืื™ืŸ Percona Server ืคึฟืึทืจ MySQL / MySQL ืื•ืŸ ื•ื•ืึธืก ื ืึธืš ืคึฟืขื™ึดืงื™ื™ื˜ืŸ Percona Server for MySQL ื”ืื˜.

MySQL Keyring

ืงื™ื™ืจื™ื ื’ ื–ืขื ืขืŸ ืคึผืœื•ื’ื™ื ืก ื•ื•ืึธืก ืœืึธื–ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืฆื• ืึธื ืคืจืขื’, ืฉืึทืคึฟืŸ ืื•ืŸ ื•ื™ืกืžืขืงืŸ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ืึท ื”ื™ื’ืข ื˜ืขืงืข (ืงื™ื™ืจื™ื ื’_ืคื™ืœืข) ืึธื“ืขืจ ืื•ื™ืฃ ืึท ื•ื•ื™ื™ึทื˜ ืกืขืจื•ื•ืขืจ (ืึทื–ืึท ื•ื•ื™ HashiCorp Vault). ืงื™ื– ื–ืขื ืขืŸ ืฉื˜ืขื ื“ื™ืง ืงืึทืฉื˜ ืœืึธื•ืงืึทืœื™ ืฆื• ืคืึทืจื’ื™ื›ืขืจืŸ ื–ื™ื™ืขืจ ืจื™ื˜ืจื™ื•ื•ืึทืœ.

ืคึผืœื•ื’ื™ื ืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืฆืขื˜ื™ื™ืœื˜ ืื™ืŸ ืฆื•ื•ื™ื™ ืงืึทื˜ืขื’ืึธืจื™ืขืก:

  • ืœืืงืืœืข ืกื˜ืึธืจื™ื“ื–ืฉ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืึท ื”ื™ื’ืข ื˜ืขืงืข (ืžื™ืจ ืจื•ืคืŸ ื“ืขื ืึท ื˜ืขืงืข-ื‘ืื–ื™ืจื˜ ืงื™ื™ืจื™ื ื’).
  • ื•ื•ื™ื™ึทื˜ ืกื˜ืึธืจื™ื“ื–ืฉ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืึธืœื˜ ืกืขืจื•ื•ื™ืจืขืจ (ืžื™ืจ ืจื•ืคืŸ ื“ืขื ืึท ืกืขืจื•ื•ืขืจ-ื‘ืื–ื™ืจื˜ ืงื™ื™ืจื™ื ื’).

ื“ืขืจ ืฆืขืฉื™ื™ื“ื•ื ื’ ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ื•ื•ื™ื™ึทืœ ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ื‘ื™ื›ื™ื™ื•ื• ืึท ื‘ื™ืกืœ ืึทื ื“ืขืจืฉ, ื ื™ื˜ ื‘ืœื•ื™ื– ื•ื•ืขืŸ ืกื˜ืึธืจื™ื ื’ ืื•ืŸ ืจื™ื˜ืจื™ื•ื•ื™ื ื’ ืฉืœื™ืกืœืขืŸ, ืึธื‘ืขืจ ืื•ื™ืš ื•ื•ืขืŸ ื–ื™ื™ ืœื•ื™ืคืŸ.

ื•ื•ืขืŸ ื ื™ืฆืŸ ืึท ื˜ืขืงืข ืกื˜ืึธืจื™ื“ื–ืฉ, ื‘ื™ื™ ืกื˜ืึทืจื˜ืึทืคึผ, ื“ื™ ื’ืื ืฆืข ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืื™ื– ืœืึธื•ื“ื™ื“ ืื™ืŸ ื“ื™ ืงืึทืฉ: ืฉืœื™ืกืœ ืฉื™ื™ึทืŸ, ืฉืœื™ืกืœ ื‘ืึทื ื™ืฆืขืจ, ืฉืœื™ืกืœ ื˜ื™ืคึผ ืื•ืŸ ื“ืขืจ ืฉืœื™ืกืœ ื–ื™ืš.

ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืึท ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜ ืงืจืึธื (ืึทื–ืึท ื•ื•ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ื™ืจืขืจ), ื‘ืœื•ื™ื– ื“ื™ ืฉืœื™ืกืœ ืฉื™ื™ึทืŸ ืื•ืŸ ืฉืœื™ืกืœ ื‘ืึทื ื™ืฆืขืจ ื–ืขื ืขืŸ ืœืึธื•ื“ื™ื“ ื‘ื™ื™ ืกื˜ืึทืจื˜ืึทืคึผ, ืึทื–ื•ื™ ื’ืขื˜ื™ื ื’ ืึทืœืข ื“ื™ ืฉืœื™ืกืœืขืŸ ืงืขืŸ ื ื™ืฉื˜ ืคึผืึทืžืขืœืขืš ื“ื™ ืกื˜ืึทืจื˜ืึทืคึผ. ืฉืœื™ืกืœืขืŸ ื–ืขื ืขืŸ ืœืึธื•ื“ื™ื“ ืคื•ื™ืœ. ืึทื– ืื™ื–, ื“ืขืจ ืฉืœื™ืกืœ ื–ื™ืš ืื™ื– ืœืึธื•ื“ื™ื“ ืคึฟื•ืŸ ื•ื•ืึธืœื˜ ื ืึธืจ ื•ื•ืขืŸ ืขืก ืื™ื– ืคืืงื˜ื™ืฉ ื“ืืจืฃ. ืึทืžืึธืœ ื“ืึทื•ื ืœืึธื•ื“ื™ื“, ื“ืขืจ ืฉืœื™ืกืœ ืื™ื– ืงืึทืฉื˜ ืื™ืŸ ื–ื›ึผืจื•ืŸ ืึทื–ื•ื™ ืึทื– ืขืก ื“ืึทืจืฃ ื ื™ื˜ ื–ื™ื™ืŸ ืึทืงืกืขืกื˜ ื“ื•ืจืš TLS ืงืึทื ืขืงืฉืึทื ื– ืฆื• ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ื™ืจืขืจ ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜. ื“ืขืจื ืึธืš, ืœืึธืžื™ืจ ื–ืขืŸ ื•ื•ืึธืก ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื– ืคืึธืจืฉื˜ืขืœืŸ ืื™ืŸ ื“ื™ ืฉืœื™ืกืœ ืงืจืึธื.

ื“ืขืจ ืฉืœื™ืกืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื›ึผื•ืœืœ ื“ื™ ืคืืœื’ืขื ื“ืข:

  • ืฉืœื™ืกืœ ืฉื™ื™ึทืŸ - ืฉืœื™ืกืœ ืื™ื“ืขื ื˜ื™ื˜ืขื˜, ืœืžืฉืœ:
    INNODBKey-764d382a-7324-11e9-ad8f-9cb6d0d5dc99-1
  • ืฉืœื™ืกืœ ื˜ื™ืคึผ - ืฉืœื™ืกืœ ื˜ื™ืคึผ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทื ื’ืขื ื™ืฆื˜, ืžืขื’ืœืขืš ื•ื•ืึทืœื•ืขืก: "AES", "RSA" ืึธื“ืขืจ "DSA".
  • ืฉืœื™ืกืœ ืœืขื ื’ - ืฉืœื™ืกืœ ืœืขื ื’ ืื™ืŸ ื‘ื™ื˜ืขืก, 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. ื“ืขืจื ืึธืš, ื“ื™ ืงืึทืฉ ืื™ื– ืคืืจืขื ื“ืขืจื˜ (ืงื™ื– ื–ืขื ืขืŸ ืžื•ืกื™ืฃ ืึธื“ืขืจ ืื•ื™ืกื’ืขืžืขืงื˜) ืื•ืŸ ืื•ื™ื‘ ืึทืœืฅ ืื™ื– ื’ืขืจืึธื˜ืŸ, ื“ื™ ืงืึทืฉ ืื™ื– ื‘ืึทืฉื˜ืขื˜ื™ืง ืฆื• ืึท ื˜ืขืงืข. ืื™ืŸ ื–ืขืœื˜ืŸ ืงืึทืกืขืก, ืึทื–ืึท ื•ื•ื™ ืึท ืกืขืจื•ื•ืขืจ ื“ื•ืจื›ืคืึทืœ, ืื™ืจ ืงืขืŸ ื–ืขืŸ ื“ืขื ื‘ืึทืงืึทืคึผ ื˜ืขืงืข. ื“ื™ ื‘ืึทืงืึทืคึผ ื˜ืขืงืข ืื™ื– ืื•ื™ืกื’ืขืžืขืงื˜ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ืžืึธืœ ื“ื™ ืฉืœื™ืกืœืขืŸ ื–ืขื ืขืŸ ืœืึธื•ื“ื™ื“ (ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื ืึธืš ื“ื™ ืกืขืจื•ื•ืขืจ ืื™ื– ืจื™ืกื˜ืึทืจื˜ื™ื“).

ื•ื•ืขืŸ ืื™ืจ ืฉืคึผืึธืจืŸ ืึธื“ืขืจ ื•ื™ืกืžืขืงืŸ ืึท ืฉืœื™ืกืœ ืื™ืŸ ืึท ืกืขืจื•ื•ืขืจ ืกื˜ืึธืจื™ื“ื–ืฉ, ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืžื•ื–ืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ื“ื™ MySQL ืกืขืจื•ื•ืขืจ ืžื™ื˜ ื“ื™ ืงืึทืžืึทื ื“ื– "ืฉื™ืงืŸ ื“ืขื ืฉืœื™ืกืœ" / "ื‘ืขื˜ืŸ ืฉืœื™ืกืœ ื“ื™ืœื™ืฉืึทืŸ".

ื–ืืœ ืก ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ืกืขืจื•ื•ื™ืจืขืจ ืกื˜ืึทืจื˜ืึทืคึผ ื’ื™ื›ืงื™ื™ึทื˜. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืงืึทื˜ืขืจ ื’ื™ื›ืงื™ื™ึทื˜ ืื™ื– ืึทืคืขืงื˜ืึทื“ ื“ื•ืจืš ื“ื™ ื•ื•ืึธืœื˜ ื–ื™ืš, ืขืก ืื™ื– ืื•ื™ืš ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืคื•ืŸ ื•ื•ื™ ืคื™ืœืข ืงื™ื– ืคื•ืŸ ื“ื™ ื•ื•ืึธืœื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ืจื™ื˜ืจื™ื•ื•ื“ ื‘ื™ื™ ืกื˜ืึทืจื˜ืึทืคึผ. ืคื•ืŸ ืงื•ืจืก, ื“ืึธืก ืื™ื– ืกืคึผืขืฆื™ืขืœ ื•ื•ื™ื›ื˜ื™ืง ืคึฟืึทืจ ืกืขืจื•ื•ืขืจ ืกื˜ืึธืจื™ื“ื–ืฉ. ื‘ื™ื™ ืกื˜ืึทืจื˜ืึทืคึผ, ื“ืขืจ ืกืขืจื•ื•ืขืจ ื˜ืฉืขืงืก ื•ื•ืึธืก ืฉืœื™ืกืœ ืื™ื– ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ื™ื ืงืจื™ืคึผื˜ื™ื“ ื˜ื™ืฉืŸ / ื˜ื™ืฉืŸ ืกืคึผื™ื™ืกืึทื– ืื•ืŸ ืจื™ืงื•ื•ืขืก ื“ื™ ืฉืœื™ืกืœ ืคึฟื•ืŸ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ. ืื•ื™ืฃ ืึท "ืจื™ื™ืŸ" ืกืขืจื•ื•ืขืจ ืžื™ื˜ Master Key ืขื ืงืจื™ืคึผืฉืึทืŸ, ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืื™ื™ืŸ Master Key, ื•ื•ืึธืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืจื™ื˜ืจื™ื•ื•ื“ ืคื•ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ. ืึธื‘ืขืจ, ืึท ื’ืจืขืกืขืจืข ื ื•ืžืขืจ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืงืขืŸ ื–ื™ื™ืŸ ืคืืจืœืื ื’ื˜, ืœืžืฉืœ, ื•ื•ืขืŸ ื“ื™ ื‘ืึทืงืึทืคึผ ืกืขืจื•ื•ืขืจ ืจื™ืกื˜ืึธืจื– ืึท ื‘ืึทืงืึทืคึผ ืคื•ืŸ ื“ื™ ืขืจืฉื˜ื™ืง ืกืขืจื•ื•ืขืจ. ืื™ืŸ ืึทื–ืึท ืงืึทืกืขืก, ืจืึธื•ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื”ืืจ ืฉืœื™ืกืœ ื–ืึธืœ ื–ื™ื™ืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜. ื“ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืื“ืขืงื˜ ืื™ืŸ ืžืขืจ ื“ืขื˜ืึทืœ ืื™ืŸ ืฆื•ืงื•ื ืคึฟื˜ ืึทืจื˜ื™ืงืœืขืŸ, ื›ืึธื˜ืฉ ื“ืึธ ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ื˜ืึธืŸ ืึทื– ืึท ืกืขืจื•ื•ืขืจ ื ื™ืฆืŸ ืงื™ื™ืคืœ ื”ืืจ ืงื™ื– ืงืขืŸ ื ืขืžืขืŸ ืึท ื‘ื™ืกืœ ืžืขืจ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ, ืกืคึผืขืฆื™ืขืœ ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ ืึท ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜ ืฉืœื™ืกืœ ืงืจืึธื.

ืื™ืฆื˜ ืœืึธื–ืŸ ืื•ื ื“ื– ืจืขื“ืŸ ืึท ื‘ื™ืกืœ ืžืขืจ ื•ื•ืขื’ืŸ keyring_file. ื•ื•ืขืŸ ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ keyring_file, ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ืื•ื™ืš ื–ืืจื’ืŸ ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืคึฟืึทืจ Keyring_file ืขื ื“ืขืจื•ื ื’ืขืŸ ื‘ืฉืขืช ื“ื™ ืกืขืจื•ื•ืขืจ ืื™ื– ืคืœื™ืกื ื“ื™ืง. ืื™ืŸ 5.7, ื“ื™ ื˜ืฉืขืง ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื˜ืขืงืข ืกื˜ืึทื˜ื™ืกื˜ื™ืง, ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืึทืŸ ืื™ื“ืขืืœ ืœื™ื™ื–ื•ื ื’, ืื•ืŸ ืื™ืŸ 8.0 ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืจื™ืคึผืœื™ื™ืกื˜ ืžื™ื˜ ืึท SHA256 ื˜ืฉืขืงืงืกื•ื.

ื“ืขืจ ืขืจืฉื˜ืขืจ ืžืึธืœ ืื™ืจ ืœื•ื™ืคืŸ keyring_file, ื˜ืขืงืข ืกื˜ืึทื˜ื™ืกื˜ื™ืง ืื•ืŸ ืึท ื˜ืฉืขืงืงืกื•ื ื–ืขื ืขืŸ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื“, ื•ื•ืึธืก ื–ืขื ืขืŸ ื“ืขืจืžืื ื˜ ื“ื•ืจืš ื“ื™ ืกืขืจื•ื•ืขืจ, ืื•ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื‘ืœื•ื™ื– ื’ืขื•ื•ืขื ื“ื˜ ืื•ื™ื‘ ื–ื™ื™ ื’ืœื™ื™ึทื›ืŸ. ื•ื•ืขืŸ ื“ืขืจ ื˜ืขืงืข ืขื ื“ืขืจื•ื ื’ืขืŸ, ื“ื™ ื˜ืฉืขืงืงืกื•ื ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜.

ืžื™ืจ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืงืึทื•ื•ืขืจื“ ืคื™ืœืข ืคึฟืจืื’ืŸ ื•ื•ืขื’ืŸ ืฉืœื™ืกืœ ื•ื•ืึธืœืฅ. ืึธื‘ืขืจ, ืขืก ืื™ื– ืืŸ ืื ื“ืขืจ ื•ื•ื™ื›ื˜ื™ืง ื˜ืขืžืข ื•ื•ืึธืก ืื™ื– ืึธืคื˜ ืคืืจื’ืขืกืŸ ืึธื“ืขืจ ืžื™ืกืึทื ื“ืขืจืกื˜ื•ื“: ื™ื™ึทื ื˜ื™ื™ืœื•ื ื’ ืฉืœื™ืกืœืขืŸ ืึทืจื™ื‘ืขืจ ืกืขืจื•ื•ืขืจืก.

ื•ื•ืืก ืžื™ื™ืŸ ืื™ืš? ื™ืขื“ืขืจ ืกืขืจื•ื•ืขืจ (ืœืžืฉืœ, ืคึผืขืจืงืึธื ืึท ืกืขืจื•ื•ื™ืจืขืจ) ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ ืžื•ื–ืŸ ื”ืึธื‘ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืึธืจื˜ ืื•ื™ืฃ ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ื™ืจืขืจ ืื™ืŸ ื•ื•ืึธืก ืคึผืขืจืงืึธื ืึท ืกืขืจื•ื•ื™ืจืขืจ ืžื•ื–ืŸ ืงืจืึธื ื–ื™ื™ึทืŸ ืฉืœื™ืกืœืขืŸ. ื™ืขื“ืขืจ ื‘ืขืœ ืงื™ื™ ื’ืขืจืื˜ืขื•ื•ืขื˜ ืื™ืŸ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ื›ึผื•ืœืœ ื“ื™ GUID ืคื•ืŸ ื“ื™ ืคึผืขืจืงืึธื ืึท ืกืขืจื•ื•ื™ืจืขืจ ืื™ืŸ ื–ื™ื™ืŸ ืื™ื“ืขื ื˜ื™ื˜ืขื˜. ืคืืจื•ื•ืืก ืื™ื– ืขืก ื•ื•ื™ื›ื˜ื™ืง? ื™ืžืึทื“ื–ืฉืึทืŸ ืึทื– ืื™ืจ ื”ืึธื˜ ื‘ืœื•ื™ื– ืื™ื™ืŸ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ื™ืจืขืจ ืื•ืŸ ืึทืœืข ืคึผืขืจืงืึธื ืึท ืกืขืจื•ื•ืขืจืก ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ ื ื•ืฆืŸ ื“ืขื ืื™ื™ืŸ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ื™ืจืขืจ. ื“ื™ ืคึผืจืึธื‘ืœืขื ืžื™ื™ื ื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’. ืื•ื™ื‘ ืึทืœืข ืคึผืขืจืงืึธื ืึท ืกืขืจื•ื•ืขืจืก ื’ืขื•ื•ื™ื™ื ื˜ ืึท ื”ืืจ ืงื™ื™ ืึธืŸ ื™ื™ื ืฆื™ืง ื™ื“ืขื ื˜ื™ืคื™ืขืจืก, ืึทื–ืึท ื•ื•ื™ ืฉื™ื™ึทืŸ = 1, ืฉื™ื™ึทืŸ = 2, ืืื–"ื• ื•, ืึทืœืข ืกืขืจื•ื•ืขืจืก ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ ื•ื•ืึธืœื˜ ื ื•ืฆืŸ ื“ื™ ื–ืขืœื‘ืข ื”ืืจ ืงื™ื™. ื•ื•ืึธืก ื“ื™ GUID ื’ื™ื˜ ืื™ื– ื“ื™ ื“ื™ืกื˜ื™ื ื’ืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ืกืขืจื•ื•ืขืจืก. ืคืืจื•ื•ืืก ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื™ื™ึทื ื˜ื™ื™ืœื•ื ื’ ืฉืœื™ืกืœืขืŸ ืฆื•ื•ื™ืฉืŸ ืกืขืจื•ื•ืขืจืก ืื•ื™ื‘ ืขืก ืื™ื– ืฉื•ื™ืŸ ืึท ื™ื™ื ืฆื™ืง GUID? ืขืก ืื™ื– ืืŸ ืื ื“ืขืจ ืคึผืœื•ื’ื™ืŸ - keyring_udf. ืžื™ื˜ ื“ืขื ืคึผืœื•ื’ื™ืŸ, ื“ื™ื™ืŸ ืกืขืจื•ื•ื™ืจืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืงืจืึธื ื–ื™ื™ืขืจ ืฉืœื™ืกืœืขืŸ ืื•ื™ืฃ ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ืขืจ. ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืึทืงืขืจื– ื•ื•ืขืŸ ืึท ื‘ืึทื ื™ืฆืขืจ ืงืจื™ื™ื™ืฅ ืึท ืฉืœื™ืกืœ ืื•ื™ืฃ ืกืขืจื•ื•ืขืจ 1, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ืŸ ื“ืขืžืึธืœื˜ ืคืจื•ื•ื•ื˜ ืฆื• ืฉืึทืคึฟืŸ ืึท ืฉืœื™ืกืœ ืžื™ื˜ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฉื™ื™ึทืŸ ืื•ื™ืฃ ืกืขืจื•ื•ืขืจ 2, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ:

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

ื•ื•ืึทืจื˜ืŸ. ื‘ื™ื™ื“ืข ืกืขืจื•ื•ืขืจืก ื ื•ืฆืŸ ื“ื™ ื–ืขืœื‘ืข ื•ื•ืึธืœื˜ ืกืขืจื•ื•ื™ืจืขืจ, ื–ืึธืœ ื“ื™ keyring_key_store ืคื•ื ืงืฆื™ืข ื ื™ื˜ ืคืึทืจืœืึธื–ืŸ ืื•ื™ืฃ ืกืขืจื•ื•ืขืจ 2? ื™ื ื˜ืขืจืขืกื˜ื™ื ื’ืœื™, ืื•ื™ื‘ ืื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื˜ืึธืŸ ื“ื™ ื–ืขืœื‘ืข ืื•ื™ืฃ ืื™ื™ืŸ ืกืขืจื•ื•ืขืจ, ืื™ืจ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืึท ื˜ืขื•ืช:

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

ืึทื– ืก ืจืขื›ื˜, ROB_1 ืฉื•ื™ืŸ ื™ื’ื–ื™ืกืฅ.

ืœืืžื™ืจ ืงื•ื“ื ื“ื™ืกืงื•ื˜ื™ืจืŸ ื“ืขื ืฆื•ื•ื™ื™ื˜ืŸ ื‘ื™ื™ืฉืคื™ืœ. ื•ื•ื™ ืžื™ืจ ื’ืขื–ืื’ื˜ ืคืจื™ืขืจ, keyring_vault ืึธื“ืขืจ ืงื™ื™ืŸ ืื ื“ืขืจืข ืงื™ืจื™ื ื’ ืคึผืœื•ื’ื™ืŸ ืงืึทืฉ ืึทืœืข ืฉืœื™ืกืœ IDs ืื™ืŸ ื–ื›ึผืจื•ืŸ. ืึทื–ื•ื™, ื ืึธืš ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ื ื™ื™ึทืข ืฉืœื™ืกืœ, ROB_1 ืื™ื– ืžื•ืกื™ืฃ ืฆื• ืกืขืจื•ื•ืขืจ1, ืื•ืŸ ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ืฉื™ืงืŸ ื“ืขื ืฉืœื™ืกืœ ืฆื• ื•ื•ืึธืœื˜, ื“ืขืจ ืฉืœื™ืกืœ ืื™ื– ืื•ื™ืš ืžื•ืกื™ืฃ ืฆื• ื“ื™ ืงืึทืฉ. ืื™ืฆื˜, ื•ื•ืขืŸ ืžื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืœื™ื™ื’ืŸ ื“ื™ ื–ืขืœื‘ืข ืฉืœื™ืกืœ ืึท ืฆื•ื•ื™ื™ื˜ ืžืึธืœ, keyring_vault ื˜ืฉืขืงืก ืฆื™ ื“ืขืจ ืฉืœื™ืกืœ ื™ื’ื–ื™ืกืฅ ืื™ืŸ ื“ื™ ืงืึทืฉ ืื•ืŸ ื•ื•ืืจืคื˜ ืขืจ ืึท ื˜ืขื•ืช.

ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืคืึทืœ ื“ื™ ืกื™ื˜ื•ืึทืฆื™ืข ืื™ื– ืึทื ื“ืขืจืฉ. ืกืขืจื•ื•ืขืจ 1 ืื•ืŸ ืกืขืจื•ื•ืขืจ 2 ื”ืึธื‘ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืงืึทื˜ืฉืขืก. ื ืึธืš ืึทื“ื™ื ื’ ROB_1 ืฆื• ื“ื™ ืฉืœื™ืกืœ ืงืึทืฉ ืื•ื™ืฃ ืกืขืจื•ื•ืขืจ 1 ืื•ืŸ ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ืขืจ, ื“ืขืจ ืฉืœื™ืกืœ ืงืึทืฉ ืื•ื™ืฃ ืกืขืจื•ื•ืขืจ 2 ืื™ื– ื ื™ืฉื˜ ืกื™ื ืง. ืขืก ืื™ื– ืงื™ื™ืŸ ROB_2 ืฉืœื™ืกืœ ืื™ืŸ ื“ื™ ืงืึทืฉ ืื•ื™ืฃ ืกืขืจื•ื•ืขืจ 1. ืื–ื•ื™, ื“ืขืจ ROB_1 ืฉืœื™ืกืœ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืฆื• ื“ื™ keyring_key_store ืื•ืŸ ืฆื• ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ืขืจ, ื•ื•ืึธืก ืึทืงืฉืœื™ ืึธื•ื•ื•ืขืจืจื™ื™ืฅ (!) ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ื•ื•ืขืจื˜. ืื™ืฆื˜ ื“ื™ ROB_1 ืฉืœื™ืกืœ ืื•ื™ืฃ ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ืขืจ ืื™ื– 543210987654321. ื™ื ื˜ืขืจืขืกื˜ื™ื ื’ืœื™, ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ืขืจ ื˜ื•ื˜ ื ื™ืฉื˜ ืคืึทืจืฉืคึผืึทืจืŸ ืึทื–ืึท ืึทืงืฉืึทื ื– ืื•ืŸ ืœื™ื™ื›ื˜ ืึธื•ื•ื•ืขืจืจื™ื™ืฅ ื“ื™ ืึทืœื˜ ื•ื•ืขืจื˜.

ืื™ืฆื˜ ืžื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ื•ื•ืึธืก ืกืขืจื•ื•ืขืจ ืคึผืึทืจื˜ื™ืฉืึทื ื™ื ื’ ืื™ืŸ ื•ื•ืึธืœื˜ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื•ื•ื™ื›ื˜ื™ืง - ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ keyring_udf ืื•ืŸ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืงืจืึธื ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื•ื•ืึธืœื˜. ื•ื•ื™ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ืขื ืฆืขืฉื™ื™ื“ื•ื ื’ ืื•ื™ืฃ ืึท ื•ื•ืึธืœื˜ ืกืขืจื•ื•ืขืจ?

ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื•ื•ืขื’ืŸ ืฆื• ืฆืขื˜ื™ื™ืœืŸ ืื™ืŸ ื•ื•ืึธืœื˜. ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื‘ืืจื’ ื•ื•ื™ื™ื–ื˜ ืคึฟืึทืจ ื™ืขื“ืขืจ ืกืขืจื•ื•ืขืจ, ืึธื“ืขืจ ื ื•ืฆืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืึทื˜ืก ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื‘ืืจื’ ืคื•ื ื˜. ื“ืึธืก ืื™ื– ื‘ืขืกื˜ืขืจ ืื™ืœื•ืกื˜ืจื™ืจื˜ ืžื™ื˜ ื‘ื™ื™ืฉืคื™ืœืŸ. ืึทื–ื•ื™ ืœืึธื–ืŸ ืก ืงื•ืง ืื™ืŸ ื“ื™ ื™ื—ื™ื“ ื‘ืืจื’ ืคื•ื ืงื˜ืŸ ืขืจืฉื˜ืขืจ:

--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 = (...)

ื“ืึธ ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ืึทื– ืกืขืจื•ื•ืขืจ1 ืื•ืŸ ืกืขืจื•ื•ืขืจ2 ื ื•ืฆืŸ ืคืึทืจืฉื™ื“ืขื ืข ื‘ืืจื’ ืคื•ื ืงื˜ืŸ. ื•ื•ืขืŸ ืกืคึผืœื™ื˜ื™ื ื’ ื“ื™ ืคึผืึทื˜ืก, ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื•ื•ืขื˜ ืงื•ืงืŸ ื•ื•ื™ ื“ืึธืก:

--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_point", ืึธื‘ืขืจ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืึทื˜ืก. ื•ื•ืขืŸ ืื™ืจ ืžืึทื›ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืกื•ื“ ืื•ื™ืฃ ืกืขืจื•ื•ืขืจ 1 ื ื™ืฆืŸ ื“ืขื ื“ืจืš, ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ืขืจ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืงืจื™ื™ื™ืฅ ืึท "ืกืขืจื•ื•ืขืจ 1" ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ืคึฟืึทืจ ืกืขืจื•ื•ืขืจ 2 ืึทืœืฅ ืื™ื– ืขื ืœืขืš. ื•ื•ืขืŸ ืื™ืจ ื•ื™ืกืžืขืงืŸ ื“ื™ ืœืขืฆื˜ืข ืกื•ื“ ืื™ืŸ mount_point/server1 ืึธื“ืขืจ mount_point/server2, ื“ื™ ื•ื•ืึธืœื˜ ืกืขืจื•ื•ืขืจ ืื•ื™ืš ื“ื™ืœื™ืฅ ื“ื™ ื“ื™ืจืขืงื˜ืขืจื™ื–. ืื™ืŸ ืคืึทืœ ืื™ืจ ื ื•ืฆืŸ ื“ืจืš ืฆืขืฉื™ื™ื“ื•ื ื’, ืื™ืจ ืžื•ื–ืŸ ืฉืึทืคึฟืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืึธื ืงืœืึทืคึผืŸ ืคื•ื ื˜ ืื•ืŸ ื˜ื•ื™ืฉืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืขืก ืึทื–ื•ื™ ืึทื– ื“ื™ ืกืขืจื•ื•ืขืจืก ื ื•ืฆืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืคึผืึทื˜ืก. ื ื‘ืืจื’ ืคื•ื ื˜ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืืฉืืคืŸ ืžื™ื˜ ืึท ื”ื˜ื˜ืคึผ ื‘ืขื˜ืŸ. ื ื™ืฆืŸ 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 ื™ื•ื˜ื™ืœืึทื˜ื™ื– ืฆื• ื˜ืึธืŸ ื“ื™ ื–ืขืœื‘ืข. ืื‘ืขืจ ืขืก ืื™ื– ื’ืจื™ื ื’ืขืจ ืฆื• ืึธื˜ืึทืžื™ื™ื˜ ื“ื™ ืฉืึทืคื•ื ื’ ืคื•ืŸ ืึท ื‘ืึทืจื’ ืคื•ื ื˜. ืื™ืš ื”ืึธืคึฟืŸ ืื™ืจ ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื ื•ืฆื™ืง ืื•ืŸ ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ืื™ืจ ืื™ืŸ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ ื“ืขื ืกืขืจื™ืข.

ืขื ืงืจื™ืคึผืฉืึทืŸ ืื™ืŸ MySQL: Keystore

ืœื™ื™ืขื ืขืŸ ืžืขืจ:

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’