Whakamuna ki MySQL: Keystore

I te tatari mo te timatanga o te whakaurunga hou mo te akoranga "Patengi Raraunga" Kua whakaritea e matou he whakamaoritanga o tetahi tuhinga whai hua mo koe.

Whakamuna ki MySQL: Keystore

I puta mai te Whakamuna Raraunga Puata (TDE). Tūmau Percona mo MySQL me MySQL mo etahi wa roa. Engari kua whakaaro koe me pehea te mahi i raro i te awhi me te aha te paanga o te TDE ki to tuumau? I roto i tenei raupapa tuhinga ka titiro tatou ki te mahi a TDE i roto. Me timata ma te rokiroki matua, i te mea e hiahiatia ana kia mahi tetahi whakamunatanga. Katahi ka ata titiro atu ki te mahi whakamunatanga i roto i te Percona Server mo MySQL/MySQL me etahi atu ahuatanga kei a Percona Server mo MySQL.

MySQL Keyring

He monomai te Ring Keyring e taea ai e te tūmau te uiui, te hanga, me te muku i nga taviri i roto i te konae rohe (keyring_file), i runga ranei i te tūmau mamao (pērā i te HashiCorp Vault). Kei te keteroki tonu nga taviri ki te rohe kia tere ake ai te tiki mai.

Ka taea te wehea nga monomai kia rua nga waahanga:

  • Rokiroki rohe. Hei tauira, he konae paetata (ka kiia tenei ko te whakakai-a-roto).
  • Rokiroki mamao. Hei tauira, Vault Server (ka kiia e matou he taapene-a-kaupapa).

He mea nui tenei wehenga na te mea he rereke te ahua o nga momo rokiroki, ehara i te wa e penapena ana me te tango taviri anake, engari i te wa e whakahaere ana.

I te wa e whakamahi ana i te rokiroki konae, i te tiimatanga, ka utaina nga ihirangi katoa o te rokiroki ki te keteroki: id matua, kaiwhakamahi matua, momo matua, me te ki tonu.

Mo te toa taha-tumau (penei i te Vault Server), ko te id matua me te kaiwhakamahi matua anake ka utaina i te tiimatanga, na te whiwhi ki nga kii katoa kaore e whakaroa te tiimata. Ka utaina nga taviri ma te mangere. Arā, ko te kī tonu ka utaina mai i Vault anake ina tino hiahiatia. Ina tikiakehia, ka keteroki te kī ki roto i te pūmahara kia kore ai e uru atu ma nga hononga TLS ki te Vault Server a muri ake nei. I muri mai, me titiro ki nga korero kei roto i te toa matua.

Kei roto i nga korero matua enei e whai ake nei:

  • id matua — tohu tohu matua, hei tauira:
    INNODBKey-764d382a-7324-11e9-ad8f-9cb6d0d5dc99-1
  • momo matua — momo matua i runga i te algorithm whakamunatanga i whakamahia, nga uara ka taea: “AES”, “RSA” ranei “DSA”.
  • roa matua — te roa matua i roto i nga paita, AES: 16, 24, 32 ranei, RSA 128, 256, 512 me DSA 128, 256, 384 ranei.
  • kaiwhakamahi - te rangatira o te ki. Mēnā he pūnaha te kī, hei tauira, Kī Matua, ka noho kau tēnei āpure. Mēnā ka hangaia he kī mā te keyring_udf, ka tohu tēnei āpure i te rangatira o te kī.
  • te taviri iho

Ko te matua he tohu motuhake e te takirua: key_id, user.

He rereke ano te penapena me te whakakore i nga taviri.

He tere ake te rokiroki kōnae. Ka whakaaro pea koe ko te toa matua kei te tuhi noa i te ki o te konae kotahi, engari kao, he maha ake nga mahi kei konei. I nga wa katoa ka mahia he whakarereketanga rokiroki konae, ka hanga tuatahi he kape taapiri o nga ihirangi katoa. Me kii ko te konae ko aku_nui_mea ngaro, katahi ko te kape taapiri ko taku_nui_huna.backup. I muri mai, ka hurihia te keteroki (ka taapirihia nga taviri, ka mukua ranei) a, ki te angitu nga mea katoa, ka tautuhia ano te keteroki ki tetahi konae. I nga keehi onge, penei i te rahunga o te tūmau, ka kite pea koe i tenei konae taapiri. Ka mukua te kōnae pūrua i te wā ka utaina ngā kī (i te nuinga o te wā ka tīmata anō te tūmau).

I te wa e penapena ana, e whakakore ana ranei i tetahi taviri i roto i te rokiroki tūmau, me hono te rokiroki ki te tūmau MySQL me nga whakahau "tukuhia te kī" / "tono te whakakore matua".

Kia hoki ano ki te tere whakaoho o te tūmau. I tua atu i te mea ko te tere o te whakarewatanga e pa ana ki a ia ano, kei reira ano te take mo te maha o nga taviri mai i te waahi me tiki mai i te tiimatanga. Ko te tikanga, he mea tino nui tenei mo te rokiroki tūmau. I te tiimatanga, ka tirohia e te tūmau ko tehea te kī e hiahiatia ana mo nga ripanga whakamuna / mokowā ripanga ka tono te kī mai i te rokiroki. I runga i te tūmau "ma" me te whakamunatanga Matua Matua, me kotahi te Matua Matua, me tango mai i te rokiroki. Heoi, ka hiahiatia he maha ake o nga taviri, hei tauira, i te wa e whakaora ana te tūmau pūrua i te pūrua mai i te tūmau tuatahi. I roto i enei ahuatanga, me whakarato te hurihanga o te Kī Matua. Ka nui ake nga korero o tenei korero i roto i nga tuhinga a muri ake nei, ahakoa kei konei ahau e hiahia ana ki te mohio he roa ake te tiimata o te tūmau e whakamahi ana i nga Kī Matua maha, ina koa ka whakamahi i te toa ki te taha tūmau.

Inaianei me korero iti ake mo te keyring_file. I ahau e whakawhanake ana i te keyring_file, i awangawanga ano ahau me pehea te tirotiro mo nga huringa keyring_file i te wa e rere ana te tūmau. I roto i te 5.7, i mahia te haki i runga i nga tatauranga o nga konae, ehara i te mea he otinga pai, a, i te 8.0 i whakakapihia ki te haki SHA256.

I te wa tuatahi ka whakahaere koe i te keyring_file, ka tatauhia nga tatauranga konae me te kaute arowhai, ka maumaharatia e te tūmau, ka tukuna nga huringa ki te rite. Ina huri te konae, ka whakahouhia te kaute arowhai.

He maha nga patai kua korerohia e matou mo nga wharangi matua. Heoi ano, tera ano tetahi kaupapa nui ka warewarehia, ka pohehehia ranei: te tiri i nga taviri puta noa i nga kaitoro.

He aha taku tikanga? Ko ia tūmau (hei tauira, Percona Server) i roto i te kāhui me whai waahi motuhake i runga i te Vault Server me rokiroki e Percona Server ona ki. Kei ia Kī Matua kua tiakina ki roto i te rokiroki kei roto te GUID o te Tūmau Percona kei roto i tōna pūtāutu. He aha te mea nui? Whakaarohia he kotahi anake te Tūmau Vault me ​​nga Tūmau Percona katoa i roto i te kāhui e whakamahi ana i taua Tūmau Vault kotahi. Ka kitea te raruraru. Mēnā i whakamahia e ngā Tūmau Percona katoa he Kī Matua kāore he tautohu ahurei, pēnei i te id = 1, id = 2, me ētahi atu, ka whakamahia e ngā tūmau katoa o te kāhui te kī Matua kotahi. Ko nga mea e whakaratohia ana e te GUID ko te wehewehe i waenga i nga kaitoro. He aha te take me korero mo te tiri i nga taviri i waenga i nga kaitoro mena he GUID kei te noho tonu? He mono ano - keyring_udf. Ma tenei mono, ka taea e to kaiwhakamahi tūmau te penapena i a raatau ki runga i te tūmau Vault. Ka puta te raruraru ina hanga e te kaiwhakamahi he taviri ki runga i te server1, hei tauira, ka ngana ki te hanga i tetahi taviri me te ID kotahi i runga i te server2, hei tauira:

--server1:
select keyring_key_store('ROB_1','AES',"123456789012345");
1
--1 значит успешное завершение
--server2:
select keyring_key_store('ROB_1','AES',"543210987654321");
1

Tatari. Kei te whakamahi nga tūmau e rua i te Tūmau Vault kotahi, me taka te mahi keyring_key_store i runga i te server2? He mea whakamiharo, ki te ngana koe ki te mahi pera i runga i te tūmau kotahi, ka puta he hapa:

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

Ka tika, kei te noho tonu a ROB_1.

Kia matapakihia te tauira tuarua i te tuatahi. Ka rite ki ta matou korero i mua ake nei, ko te keyring_vault me ​​etahi atu mono keyring e keteroki ana i nga ID matua katoa ki te mahara. Na, i muri i te hanga i tetahi taviri hou, ka taapirihia a ROB_1 ki te server1, me te taapiri ki te tuku i tenei ki ki Vault, ka taapirihia ano te ki ki te keteroki. Inaianei, ka ngana ana tatou ki te taapiri i te kii kotahi mo te wa tuarua, ka tirohia e keyring_vault mena kei te noho te ki i roto i te keteroki ka maka he hapa.

I te tuatahi he rereke te ahuatanga. He keteroki motuhake te Server1 me te server2. Whai muri i te taapiri i a ROB_1 ki te keteroki matua i runga i te server1 me te tūmau Vault, ka ngaro te keteroki matua o te server2 i te tukutahi. Karekau he matua ROB_2 i te keteroki i runga i te server1. No reira, ka tuhia te taviri ROB_1 ki te keyring_key_store me te tūmau Vault, e tino tuhirua (!) te uara o mua. Inaianei ko te taviri ROB_1 i runga i te tūmau Vault ko 543210987654321. He mea whakamiharo, kaore te tūmau Vault e aukati i aua mahi me te ngawari ki te tuhi i te uara tawhito.

Inaianei ka kite tatou he aha te mea nui te wehewehenga tūmau i Vault - ina whakamahi koe i te keyring_udf me te hiahia ki te penapena i nga taviri ki Vault. Me pehea te whakatutuki i tenei wehenga i runga i te tūmau Vault?

E rua nga huarahi ki te wehewehe ki Vault. Ka taea e koe te hanga i nga tohu maunga rereke mo ia tūmau, ka whakamahi ranei i nga huarahi rereke i roto i te waahi maunga kotahi. He pai te whakaatu i tenei me nga tauira. Na, kia titiro tatou ki nga waahi o nga maunga takitahi:

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

I konei ka kite koe kei te whakamahi te server1 me te server2 i nga tohu maunga rereke. Ina wehea nga ara, ka penei te ahua o te whirihoranga:

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

I tenei keehi, ka whakamahi nga kaitoro e rua i te tohu maunga kotahi "mount_point", engari he rereke nga huarahi. Ina waihangahia e koe te mea ngaro tuatahi ki te server1 ma te whakamahi i tenei ara, ka hanga aunoa e te tūmau Vault he whaiaronga "server1". Mo te server2 he rite nga mea katoa. Ina mukua e koe te mea ngaro whakamutunga i roto i te mount_point/server1, i te mount_point/server2 ranei, ka mukua ano e te Vault nga raarangi whaiaronga. Mena ka whakamahi koe i te wehenga ara, me hanga e koe kia kotahi anake te waahi maunga me te whakarereke i nga konae whirihoranga kia whakamahia e nga kaitoro nga huarahi motuhake. Ka taea te hanga i tetahi tohu maunga ma te tono HTTP. Ma te whakamahi i te CURL ka taea te mahi penei:

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

Ko nga mara katoa (TOKEN, VAULT_CA, VAULT_URL, SECRET_MOUNT_POINT) e rite ana ki nga tawhā o te konae whirihoranga. Ae ra, ka taea e koe te whakamahi i nga taputapu Vault hei mahi pera ano. Engari he ngawari ake ki te whakaaunoa i te hanga i tetahi tohu maunga. Ko taku tumanako ka whai hua enei korero ka kite koe i nga tuhinga e whai ake nei o tenei raupapa.

Whakamuna ki MySQL: Keystore

Pānuitia atu:

Source: will.com

Tāpiri i te kōrero