ื”ืฆืคื ื” ื‘-MySQL: ืžืื’ืจ ืžืคืชื—ื•ืช

ืœืงืจืืช ืชื—ื™ืœืช ื”ืจืฉืžื” ื—ื“ืฉื” ืœืงื•ืจืก "ืžืื’ืจ ืžื™ื“ืข" ื”ื›ื ื• ืขื‘ื•ืจื›ื ืชืจื’ื•ื ืฉืœ ืžืืžืจ ืฉื™ืžื•ืฉื™.

ื”ืฆืคื ื” ื‘-MySQL: ืžืื’ืจ ืžืคืชื—ื•ืช

ื”ืฆืคื ืช ื ืชื•ื ื™ื ืฉืงื•ืคื” (TDE) ื”ื•ืคื™ืขื” ื‘ ืฉืจืช Percona ืขื‘ื•ืจ MySQL ื•-MySQL ื‘ืžืฉืš ื“ื™ ื”ืจื‘ื” ื–ืžืŸ. ืื‘ืœ ื”ืื ืื™ ืคืขื ื—ืฉื‘ืช ืขืœ ืื™ืš ื–ื” ืขื•ื‘ื“ ืžืชื—ืช ืœืžื›ืกื” ื”ืžื ื•ืข ื•ืื™ื–ื• ื”ืฉืคืขื” ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืœ-TDE ืขืœ ื”ืฉืจืช ืฉืœืš? ื‘ืกื“ืจืช ืžืืžืจื™ื ื–ื• ื ื‘ื—ืŸ ื›ื™ืฆื“ TDE ืขื•ื‘ื“ ื‘ืื•ืคืŸ ืคื ื™ืžื™. ื ืชื—ื™ืœ ืขื ืื—ืกื•ืŸ ืžืคืชื—ื•ืช, ืžื›ื™ื•ื•ืŸ ืฉื–ื” ื ื“ืจืฉ ื›ื“ื™ ืฉื›ืœ ื”ืฆืคื ื” ืชืขื‘ื•ื“. ืœืื—ืจ ืžื›ืŸ ื ืกืงื•ืจ ืžืงืจื•ื‘ ื›ื™ืฆื“ ืคื•ืขืœืช ื”ื”ืฆืคื ื” ื‘-Percona Server ืขื‘ื•ืจ MySQL/MySQL ื•ืื™ื–ื” ืชื›ื•ื ื•ืช ื ื•ืกืคื•ืช ื™ืฉ ืœ-Percona Server for MySQL.

ืžื—ื–ื™ืง ืžืคืชื—ื•ืช MySQL

Keyring ื”ื ืชื•ืกืคื™ื ื”ืžืืคืฉืจื™ื ืœืฉืจืช ืœื‘ืฆืข ืฉืื™ืœืชื•ืช, ืœื™ืฆื•ืจ ื•ืœืžื—ื•ืง ืžืคืชื—ื•ืช ื‘ืงื•ื‘ืฅ ืžืงื•ืžื™ (keyring_file) ืื• ื‘ืฉืจืช ืžืจื•ื—ืง (ื›ื’ื•ืŸ HashiCorp Vault). ืžืคืชื—ื•ืช ืชืžื™ื“ ืžืื•ื—ืกื ื™ื ื‘ืžื˜ืžื•ืŸ ืžืงื•ืžื™ ื›ื“ื™ ืœื–ืจื– ืืช ืฉืœื™ืคืชื.

ื ื™ืชืŸ ืœื—ืœืง ืชื•ืกืคื™ื ืœืฉืชื™ ืงื˜ื’ื•ืจื™ื•ืช:

  • ืื—ืกื•ืŸ ืžืงื•ืžื™. ืœื“ื•ื’ืžื”, ืงื•ื‘ืฅ ืžืงื•ืžื™ (ืื ื—ื ื• ืงื•ืจืื™ื ืœื–ื” ืžื—ื–ื™ืง ืžืคืชื—ื•ืช ืžื‘ื•ืกืก ืงื‘ืฆื™ื).
  • ืื—ืกื•ืŸ ืžืจื—ื•ืง. ืœื“ื•ื’ืžื”, Vault Server (ืื ื—ื ื• ืงื•ืจืื™ื ืœื–ื” ืžื—ื–ื™ืง ืžืคืชื—ื•ืช ืžื‘ื•ืกืก ืฉืจืช).

ื”ืคืจื“ื” ื–ื• ื—ืฉื•ื‘ื” ืžื›ื™ื•ื•ืŸ ืฉืกื•ื’ื™ ืื—ืกื•ืŸ ืฉื•ื ื™ื ืžืชื ื”ื’ื™ื ืžืขื˜ ืฉื•ื ื”, ืœื ืจืง ื‘ืขืช ืื—ืกื•ืŸ ื•ืฉืœื™ืคื” ืฉืœ ืžืคืชื—ื•ืช, ืืœื ื’ื ื‘ืขืช ื”ืคืขืœืชื.

ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืื—ืกื•ืŸ ืงื‘ืฆื™ื, ื‘ืขืช ื”ื”ืคืขืœื”, ื›ืœ ืชื•ื›ืŸ ื”ืื—ืกื•ืŸ ื ื˜ืขืŸ ืœืžื˜ืžื•ืŸ: ืžื–ื”ื” ืžืคืชื—, ืžืฉืชืžืฉ ืžืคืชื—, ืกื•ื’ ืžืคืชื— ื•ื”ืžืคืชื— ืขืฆืžื•.

ื‘ืžืงืจื” ืฉืœ ื—ื ื•ืช ื‘ืฆื“ ื”ืฉืจืช (ื›ื’ื•ืŸ Vault Server), ืจืง ืžื–ื”ื” ื”ืžืคืชื— ื•ืžืฉืชืžืฉ ื”ืžืคืชื— ื ื˜ืขื ื™ื ื‘ืขืช ื”ืืชื—ื•ืœ, ื›ืš ืฉืงื‘ืœืช ื›ืœ ื”ืžืคืชื—ื•ืช ืื™ื ื” ืžืื˜ื” ืืช ื”ื”ืคืขืœื”. ืžืคืชื—ื•ืช ื ื˜ืขื ื™ื ื‘ืขืฆืœืชื™ื™ื. ื›ืœื•ืžืจ, ื”ืžืคืชื— ืขืฆืžื• ื ื˜ืขืŸ ืž-Vault ืจืง ื›ืืฉืจ ื”ื•ื ื ื—ื•ืฅ ื‘ืคื•ืขืœ. ืœืื—ืจ ื”ื”ื•ืจื“ื”, ื”ืžืคืชื— ื ืฉืžืจ ื‘ื–ื™ื›ืจื•ืŸ ื›ืš ืฉืื™ืŸ ืฆื•ืจืš ืœื’ืฉืช ืืœื™ื• ื“ืจืš ื—ื™ื‘ื•ืจื™ TLS ืœืฉืจืช ื”ื›ืกืคืช ื‘ืขืชื™ื“. ืœืื—ืจ ืžื›ืŸ, ื”ื‘ื” ื ื‘ื—ืŸ ืื™ื–ื” ืžื™ื“ืข ืงื™ื™ื ื‘ื—ื ื•ืช ื”ืžืคืชื—ื•ืช.

ื”ืžื™ื“ืข ื”ืžืจื›ื–ื™ ืžื›ื™ืœ ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

  • ืžื–ื”ื” ืžืคืชื— - ืžื–ื”ื” ืžืคืชื—, ืœื“ื•ื’ืžื”:
    INNODBKey-764d382a-7324-11e9-ad8f-9cb6d0d5dc99-1
  • ืกื•ื’ ืžืคืชื— - ืกื•ื’ ืžืคืชื— ื”ืžื‘ื•ืกืก ืขืœ ืืœื’ื•ืจื™ืชื ื”ื”ืฆืคื ื” ื‘ืฉื™ืžื•ืฉ, ืขืจื›ื™ื ืืคืฉืจื™ื™ื: "AES", "RSA" ืื• "DSA".
  • ืื•ืจืš ื”ืžืคืชื— - ืื•ืจืš ืžืคืชื— ื‘ื‘ืชื™ื, AES: 16, 24 ืื• 32, RSA 128, 256, 512 ื•-DSA 128, 256 ืื• 384.
  • ื”ืžืฉืชืžืฉ - ื‘ืขืœ ื”ืžืคืชื—. ืื ื”ืžืคืชื— ื”ื•ื ืžืขืจื›ืช, ืœืžืฉืœ, ืžืคืชื— ืจืืฉื™, ืื– ืฉื“ื” ื–ื” ืจื™ืง. ืื ืžืคืชื— ื ื•ืฆืจ ื‘ืืžืฆืขื•ืช keyring_udf, ืฉื“ื” ื–ื” ืžื–ื”ื” ืืช ื”ื‘ืขืœื™ื ืฉืœ ื”ืžืคืชื—.
  • ื”ืžืคืชื— ืขืฆืžื•

ื”ืžืคืชื— ืžื–ื•ื”ื” ื‘ืื•ืคืŸ ื™ื™ื—ื•ื“ื™ ืขืœ ื™ื“ื™ ื”ื–ื•ื’: key_id, user.

ื™ืฉื ื ื’ื ื”ื‘ื“ืœื™ื ื‘ืื—ืกื•ืŸ ื•ืžื—ื™ืงื” ืฉืœ ืžืคืชื—ื•ืช.

ืื—ืกื•ืŸ ืงื‘ืฆื™ื ืžื”ื™ืจ ื™ื•ืชืจ. ืื•ืœื™ ืชื—ืฉื•ื‘ ืฉื—ื ื•ืช ืžืคืชื—ื•ืช ื”ื™ื ืคืฉื•ื˜ ื›ื•ืชื‘ืช ืืช ื”ืžืคืชื— ืœืงื•ื‘ืฅ ืคืขื ืื—ืช, ืื‘ืœ ืœื, ื™ืฉ ื›ืืŸ ืขื•ื“ ื“ื‘ืจื™ื ืฉืงื•ืจื™ื. ื‘ื›ืœ ืคืขื ืฉืžืชื‘ืฆืข ืฉื™ื ื•ื™ ื‘ืื—ืกื•ืŸ ื”ืงื‘ืฆื™ื, ืขื•ืชืง ื’ื™ื‘ื•ื™ ืฉืœ ื›ืœ ื”ืชื•ื›ืŸ ื ื•ืฆืจ ืชื—ื™ืœื”. ื ื ื™ื— ืฉื”ืงื•ื‘ืฅ ื ืงืจื my_biggest_secrets, ื•ืื– ืขื•ืชืง ื”ื’ื™ื‘ื•ื™ ื™ื”ื™ื” my_biggest_secrets.backup. ืœืื—ืจ ืžื›ืŸ, ื”ืžื˜ืžื•ืŸ ืžืฉืชื ื” (ืžืคืชื—ื•ืช ืžืชื•ื•ืกืคื™ื ืื• ื ืžื—ืงื™ื) ื•ืื ื”ื›ืœ ืžืฆืœื™ื—, ื”ืžื˜ืžื•ืŸ ืžืื•ืคืก ืœืงื•ื‘ืฅ. ื‘ืžืงืจื™ื ื ื“ื™ืจื™ื, ื›ื’ื•ืŸ ื›ืฉืœ ื‘ืฉืจืช, ื™ื™ืชื›ืŸ ืฉืชืจืื” ืืช ืงื•ื‘ืฅ ื”ื’ื™ื‘ื•ื™ ื”ื–ื”. ืงื•ื‘ืฅ ื”ื’ื™ื‘ื•ื™ ื ืžื—ืง ื‘ืคืขื ื”ื‘ืื” ืฉื”ืžืคืชื—ื•ืช ื ื˜ืขื ื™ื (ื‘ื“ืจืš ื›ืœืœ ืœืื—ืจ ื”ืคืขืœื” ืžื—ื“ืฉ ืฉืœ ื”ืฉืจืช).

ื‘ืขืช ืฉืžื™ืจื” ืื• ืžื—ื™ืงื” ืฉืœ ืžืคืชื— ื‘ืื—ืกื•ืŸ ืฉืจืช, ื”ืื—ืกื•ืŸ ื—ื™ื™ื‘ ืœื”ืชื—ื‘ืจ ืœืฉืจืช MySQL ืขื ื”ืคืงื•ื“ื•ืช "ืฉืœื— ืืช ื”ืžืคืชื—" / "ื‘ืงืฉ ืžื—ื™ืงืช ืžืคืชื—".

ื‘ื•ืื• ื ื—ื–ื•ืจ ืœืžื”ื™ืจื•ืช ื”ื”ืคืขืœื” ืฉืœ ื”ืฉืจืช. ื‘ื ื•ืกืฃ ืœืขื•ื‘ื“ื” ืฉืžื”ื™ืจื•ืช ื”ื”ืฉืงื” ืžื•ืฉืคืขืช ืžื”ื›ืกืคืช ืขืฆืžื”, ื™ืฉื ื” ื’ื ืกื•ื’ื™ื” ืฉืœ ื›ืžื” ืžืคืชื—ื•ืช ืžื”ื›ืกืคืช ืฆืจื™ืš ืœืื—ื–ืจ ื‘ื”ืคืขืœื”. ื›ืžื•ื‘ืŸ, ื–ื” ื—ืฉื•ื‘ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืื—ืกื•ืŸ ืฉืจืช. ื‘ืขืช ื”ื”ืคืขืœื”, ื”ืฉืจืช ื‘ื•ื“ืง ืื™ื–ื” ืžืคืชื— ื ื“ืจืฉ ืœื˜ื‘ืœืื•ืช/ืžืจื—ื‘ื™ ื˜ื‘ืœืื•ืช ืžื•ืฆืคื ื™ื ื•ืžื‘ืงืฉ ืืช ื”ืžืคืชื— ืžื”ืื—ืกื•ืŸ. ื‘ืฉืจืช "ื ืงื™" ืขื ื”ืฆืคื ืช ืžืคืชื— ืจืืฉื™, ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžืคืชื— ืจืืฉื™ ืื—ื“, ืื•ืชื• ื™ืฉ ืœืื—ื–ืจ ืžื”ืื—ืกื•ืŸ. ืขื ื–ืืช, ื™ื™ืชื›ืŸ ืฉื™ื™ื“ืจืฉ ืžืกืคืจ ื’ื“ื•ืœ ื™ื•ืชืจ ืฉืœ ืžืคืชื—ื•ืช, ืœื“ื•ื’ืžื”, ื›ืืฉืจ ืฉืจืช ื”ื’ื™ื‘ื•ื™ ืžืฉื—ื–ืจ ื’ื™ื‘ื•ื™ ืžื”ืฉืจืช ื”ืจืืฉื™. ื‘ืžืงืจื™ื ื›ืืœื”, ื™ืฉ ืœืกืคืง ืกื™ื‘ื•ื‘ ืฉืœ ื”ืžืคืชื— ื”ืจืืฉื™. ื–ื” ื™ื›ื•ืกื” ื‘ื™ืชืจ ืคื™ืจื•ื˜ ื‘ืžืืžืจื™ื ืขืชื™ื“ื™ื™ื, ืื ื›ื™ ื›ืืŸ ืื ื™ ืจื•ืฆื” ืœืฆื™ื™ืŸ ืฉืœืฉืจืช ื”ืžืฉืชืžืฉ ื‘ืžืกืคืจ ืžืคืชื—ื•ืช ืžืืกื˜ืจ ืขืฉื•ื™ ืœื”ื™ืžืฉืš ืžืขื˜ ื™ื•ืชืจ ื–ืžืŸ ืœื”ืชื—ื™ืœ, ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ืžืฉืชืžืฉื™ื ื‘ืžืื’ืจ ืžืคืชื—ื•ืช ื‘ืฆื“ ื”ืฉืจืช.

ืขื›ืฉื™ื• ื‘ื•ืื• ื ื“ื‘ืจ ืงืฆืช ื™ื•ืชืจ ืขืœ keyring_file. ื›ืฉืคื™ืชื—ืชื™ keyring_file, ื”ื™ื™ืชื™ ืžื•ื“ืื’ ื’ื ืœื’ื‘ื™ ืื™ืš ืœื‘ื“ื•ืง ืฉื™ื ื•ื™ื™ื ื‘-keyring_file ื‘ื–ืžืŸ ืฉื”ืฉืจืช ืคื•ืขืœ. ื‘-5.7 ื”ื‘ื“ื™ืงื” ื‘ื•ืฆืขื” ืขืœ ืกืžืš ืกื˜ื˜ื™ืกื˜ื™ืงืช ืงื‘ืฆื™ื, ืžื” ืฉืœื ื”ื™ื” ืคืชืจื•ืŸ ืื™ื“ื™ืืœื™, ื•ื‘-8.0 ื”ื•ื—ืœืฃ ื‘-SHA256 checksum.

ื‘ืคืขื ื”ืจืืฉื•ื ื” ืฉืืชื” ืžืคืขื™ืœ keyring_file, ืžื—ื•ืฉื‘ื™ื ืกื˜ื˜ื™ืกื˜ื™ืงืช ืงื‘ืฆื™ื ื•ืกื›ื•ื ื‘ื“ื™ืงื”, ืืฉืจ ื ื–ื›ืจื™ื ืขืœ ื™ื“ื™ ื”ืฉืจืช, ื•ื”ืฉื™ื ื•ื™ื™ื ืžื•ื—ืœื™ื ืจืง ืื ื”ื ืชื•ืืžื™ื. ื›ืืฉืจ ื”ืงื•ื‘ืฅ ืžืฉืชื ื”, ืกื›ื•ื ื”ื‘ื“ื™ืงื” ืžืชืขื“ื›ืŸ.

ื›ื‘ืจ ื›ื™ืกื™ื ื• ืฉืืœื•ืช ืจื‘ื•ืช ืขืœ ื›ืกืคื•ืช ืžืคืชื—. ืขื ื–ืืช, ื™ืฉื ื• ื ื•ืฉื ื—ืฉื•ื‘ ื ื•ืกืฃ ืฉืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ื ืฉื›ื— ืื• ืœื ืžื•ื‘ืŸ: ืฉื™ืชื•ืฃ ืžืคืชื—ื•ืช ื‘ื™ืŸ ืฉืจืชื™ื.

ืžื” ืฉืื ื™ ืžืชื›ื•ื•ืŸ? ืœื›ืœ ืฉืจืช (ืœื“ื•ื’ืžื”, Percona Server) ื‘ืืฉื›ื•ืœ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžื™ืงื•ื ื ืคืจื“ ื‘-Vault Server ืฉื‘ื• Percona Server ื—ื™ื™ื‘ ืœืื—ืกืŸ ืืช ื”ืžืคืชื—ื•ืช ืฉืœื•. ื›ืœ ืžืคืชื— ืจืืฉื™ ืฉื ืฉืžืจ ื‘ืื—ืกื•ืŸ ืžื›ื™ืœ ืืช ื”-GUID ืฉืœ ืฉืจืช Percona ื‘ืชื•ืš ื”ืžื–ื”ื” ืฉืœื•. ืœืžื” ื–ื” ื—ืฉื•ื‘? ืชืืจ ืœืขืฆืžืš ืฉื™ืฉ ืœืš ืจืง ืฉืจืช ื›ืกืคืช ืื—ื“ ื•ื›ืœ ืฉืจืชื™ Percona ื‘ืืฉื›ื•ืœ ืžืฉืชืžืฉื™ื ื‘ืื•ืชื• ืฉืจืช ื›ืกืคืช ื‘ื•ื“ื“. ื”ื‘ืขื™ื” ื ืจืื™ืช ื‘ืจื•ืจื”. ืื ื›ืœ ืฉืจืชื™ Percona ื”ืฉืชืžืฉื• ื‘ืžืคืชื— ืจืืฉื™ ืœืœื ืžื–ื”ื™ื ื™ื™ื—ื•ื“ื™ื™ื, ื›ื’ื•ืŸ id = 1, id = 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

ืœึทื—ึฒื›ื•ึนืช. ืฉื ื™ ื”ืฉืจืชื™ื ืžืฉืชืžืฉื™ื ื‘ืื•ืชื• Vault Server, ื”ืื ื”ืคื•ื ืงืฆื™ื” 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 ืื• ื›ืœ ืชื•ืกืฃ ืžื—ื–ื™ืง ืžืคืชื—ื•ืช ืื—ืจ ืžืื—ืกืŸ ืืช ื›ืœ ืžื–ื”ื™ ื”ืžืคืชื— ื‘ื–ื™ื›ืจื•ืŸ. ืœื›ืŸ, ืœืื—ืจ ื™ืฆื™ืจืช ืžืคืชื— ื—ื“ืฉ, ROB_1 ืžืชื•ื•ืกืฃ ืœืฉืจืช1, ื•ื‘ื ื•ืกืฃ ืœืฉืœื™ื—ืช ืžืคืชื— ื–ื” ืœื›ืกืคืช, ื”ืžืคืชื— ืžืชื•ื•ืกืฃ ื’ื ืœืžื˜ืžื•ืŸ. ื›ืขืช, ื›ืืฉืจ ืื ื• ืžื ืกื™ื ืœื”ื•ืกื™ืฃ ืืช ืื•ืชื• ืžืคืชื— ืคืขื ืฉื ื™ื™ื”, keyring_vault ื‘ื•ื“ืง ื”ืื ื”ืžืคืชื— ืงื™ื™ื ื‘ืžื˜ืžื•ืŸ ื•ื–ื•ืจืง ืฉื’ื™ืื”.

ื‘ืžืงืจื” ื”ืจืืฉื•ืŸ ื”ืžืฆื‘ ืฉื•ื ื”. ืœืฉืจืช1 ื•ืœืฉืจืช2 ื™ืฉ ืžื˜ืžื•ื ื™ื ื ืคืจื“ื™ื. ืœืื—ืจ ื”ื•ืกืคืช ROB_1 ืœืžื˜ืžื•ืŸ ื”ืžืคืชื—ื•ืช ื‘ืฉืจืช1 ื•ืœืฉืจืช ื”ื›ืกืคืช, ืžื˜ืžื•ืŸ ื”ืžืคืชื—ื•ืช ื‘ืฉืจืช2 ืื™ื ื• ืžืกื•ื ื›ืจืŸ. ืื™ืŸ ืžืคืชื— ROB_2 ื‘ืžื˜ืžื•ืŸ ื‘ืฉืจืช1. ื›ืš, ืžืคืชื— ROB_1 ื ื›ืชื‘ ืœ-keyring_key_store ื•ืœืฉืจืช Vault, ืฉืœืžืขืฉื” ืžื—ืœื™ืฃ (!) ืืช ื”ืขืจืš ื”ืงื•ื“ื. ื›ืขืช ื”ืžืคืชื— ROB_1 ื‘ืฉืจืช ื”ื›ืกืคืช ื”ื•ื 543210987654321. ืžืขื ื™ื™ืŸ ืœืฆื™ื™ืŸ ืฉืฉืจืช ื”ื›ืกืคืช ืื™ื ื• ื—ื•ืกื ืคืขื•ืœื•ืช ื›ืืœื” ื•ืžื—ืœื™ืฃ ื‘ืงืœื•ืช ืืช ื”ืขืจืš ื”ื™ืฉืŸ.

ื›ืขืช ืื ื• ื™ื›ื•ืœื™ื ืœืจืื•ืช ืžื“ื•ืข ื—ืœื•ืงืช ืฉืจืช ื‘ื›ืกืคืช ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื—ืฉื•ื‘ื” - ื›ืืฉืจ ืืชื” ืžืฉืชืžืฉ ื‘-keyring_udf ื•ื‘ืจืฆื•ื ืš ืœืื—ืกืŸ ืžืคืชื—ื•ืช ื‘ื›ืกืคืช. ื›ื™ืฆื“ ืœื”ืฉื™ื’ ืืช ื”ื”ืคืจื“ื” ื”ื–ื• ื‘ืฉืจืช Vault?

ื™ืฉื ืŸ ืฉืชื™ ื“ืจื›ื™ื ืœื—ืœื•ืงื” ืœื›ืกืคืช. ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ื ืงื•ื“ื•ืช ื”ืจื›ื‘ื” ืฉื•ื ื•ืช ืขื‘ื•ืจ ื›ืœ ืฉืจืช, ืื• ืœื”ืฉืชืžืฉ ื‘ื ืชื™ื‘ื™ื ืฉื•ื ื™ื ื‘ืชื•ืš ืื•ืชื” ื ืงื•ื“ืช ื”ืจื›ื‘ื”. ื–ื” ืžื•ืžื—ืฉ ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืขื ื“ื•ื’ืžืื•ืช. ืื– ื‘ื•ืื• ื ืกืชื›ืœ ืชื—ื™ืœื” ืขืœ ื ืงื•ื“ื•ืช ื”ื”ืจื›ื‘ื” ื”ื‘ื•ื“ื“ื•ืช:

--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 ื‘ืืžืฆืขื•ืช ื ืชื™ื‘ ื–ื”, ืฉืจืช ื”ื›ืกืคืช ื™ื•ืฆืจ ืื•ื˜ื•ืžื˜ื™ืช ืกืคืจื™ื™ืช "server1". ืขื‘ื•ืจ server2 ื”ื›ืœ ื“ื•ืžื”. ื›ืืฉืจ ืืชื” ืžื•ื—ืง ืืช ื”ืกื•ื“ ื”ืื—ืจื•ืŸ ื‘-mount_point/server1 ืื• mount_point/server2, ืฉืจืช ื”ื›ืกืคืช ืžื•ื—ืง ื’ื ืืช ื”ืกืคืจื™ื•ืช ื”ืœืœื•. ื‘ืžืงืจื” ืฉืืชื” ืžืฉืชืžืฉ ื‘ื”ืคืจื“ืช ื ืชื™ื‘, ืขืœื™ืš ืœื™ืฆื•ืจ ืจืง ื ืงื•ื“ืช ื”ืจื›ื‘ื” ืื—ืช ื•ืœืฉื ื•ืช ืืช ืงื‘ืฆื™ ื”ืชืฆื•ืจื” ื›ืš ืฉื”ืฉืจืชื™ื ื™ืฉืชืžืฉื• ื‘ื ืชื™ื‘ื™ื ื ืคืจื“ื™ื. ื ื™ืชืŸ ืœื™ืฆื•ืจ ื ืงื•ื“ืช ื”ืจื›ื‘ื” ื‘ืืžืฆืขื•ืช ื‘ืงืฉืช 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 ื›ื“ื™ ืœืขืฉื•ืช ืืช ืื•ืชื• ื”ื“ื‘ืจ. ืื‘ืœ ืงืœ ื™ื•ืชืจ ืœื”ืคื•ืš ืืช ื™ืฆื™ืจืช ื ืงื•ื“ืช ื”ืจื›ื‘ื” ืœืื•ื˜ื•ืžื˜ื™ืช. ืื ื™ ืžืงื•ื•ื” ืฉืชืžืฆื ืžื™ื“ืข ื–ื” ืฉื™ืžื•ืฉื™ ื•ื ืชืจืื” ื‘ืžืืžืจื™ื ื”ื‘ืื™ื ื‘ืกื“ืจื” ื–ื•.

ื”ืฆืคื ื” ื‘-MySQL: ืžืื’ืจ ืžืคืชื—ื•ืช

ืงืจื ืขื•ื“:

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”