Paano Pamahalaan ang Mga Lihim Gamit ang AWS Secrets Manager at RDS?

Paano Pamahalaan Ang Mga Lihim Gamit Ang Aws Secrets Manager At Rds



Ang Amazon Relational Database ay isa sa mga serbisyo ng relational database na mas madali at mas simple na patakbuhin at patakbuhin ang mga kumplikadong query. Kasunod ng syntax ng mga query sa SQL, ang serbisyong ito ng AWS ay mas mabilis kaysa sa mga tradisyunal na database at i-auto-scale ang database batay sa mga kinakailangan ng application. Sa AWS RDS, inaalis nito ang pangangailangan na pasadyang i-set up ang hardware o gumawa ng mga pagsasaayos sa software upang patakbuhin ang mga query.

Ipinapakita ng artikulong ito kung paano pamahalaan ang mga lihim gamit ang AWS Secrets Manager at RDS.

Ano ang isang Secret Manager?

Ang mga banta sa seguridad at mga alalahanin sa privacy ay itinaas din ng mga eksperto at mga tao sa buong mundo. Upang protektahan ang iyong mga digital na lihim gaya ng mga kredensyal sa database, API, at mga token, ang AWS Secret Manager ay ang iyong go-to tool para sa layuning ito.







Tinutulungan ng AWS Secret Manager ang mga kumpanya at organisasyon na protektahan ang kanilang mga mapagkukunan at serbisyo mula sa mga malisyosong intensyon at pag-atake sa cyber upang mang-hijack o magnakaw ng sensitibong data. Ang serbisyong ito ay nagdaragdag ng karagdagang layer ng seguridad sa mga mapagkukunan at nagbibigay-daan sa iyong madaling sukatin at pamahalaan ang mga lihim.



Paano Pamahalaan ang Mga Lihim Gamit ang AWS Secret Manager at RDS?

Sa tuwing iko-configure ng user ang RDS cluster, nangangailangan ito ng impormasyon tungkol sa rehiyon, username, at password ng cluster at kinikilala ito sa pamamagitan ng paggamit ng natatanging identifier ng cluster. Ang pagsasama ng RDS sa Secret Manager ay magbibigay-daan sa iyong protektahan ang iyong mga kredensyal sa RDS at pamahalaan ang mga ito nang naaayon.



Sa pamamagitan ng paggamit ng Secret Manager, maaari mong tukuyin ang lifecycle ng mga lihim na ito at isama ang mga ito sa iba pang mapagkukunan. Dito sa artikulong ito, idaragdag namin ang AWS Secret Manager na may Lambda function sa aming RDS cluster.





Nasa ibaba ang ilang hakbang para sa layuning ito:

Hakbang 1: Gumawa ng RDS Cluster

Ang Secret Manager ay malawakang ginagamit upang protektahan ang mga kredensyal ng Database. Kaya, ang unang hakbang ay lumikha ng isang RDS cluster. Para sa layuning ito, sumangguni sa artikulong ito: ' Paano Gumawa ng RDS Cluster sa AWS? ”. Nakatayo at tumatakbo na ang cluster ng RDS:



Hakbang 2: AWS Secret Manager

Sa AWS Management Console, hanapin at piliin ang “ Tagapamahala ng mga Lihim ”:

Sa interface ng Secret Manager, mag-click sa “Mag-imbak ng bagong lihim” pindutan:

Nasa Secret type , Piliin ang 'Mga kredensyal para sa database ng Amazon RDS' opsyon habang kino-configure namin ito para sa RDS:

Sunod ay ang Mga kredensyal seksyon. Sa seksyong ito, ibigay ang Username at Password para sa RDS database na kakalikha lang namin:

Nasa Encryption key seksyon, maaaring gamitin ng user ang default na ibinigay ng AWS Secret Manager o lumikha ng bago sa pamamagitan ng pag-click sa 'Magdagdag ng bagong key' opsyon. Katulad nito, sa Database seksyon, piliin ang “DB instance” na iyong nilikha at pindutin ang “Susunod” pindutan:

Magbigay ng natatanging pangalan para sa 'Lihim' na makakatulong sa amin na makilala ito sa ibang pagkakataon. Opsyonal ang paglalarawan. Gayunpaman, maaari ding magbigay ang user ng custom na paglalarawan dito:

Sa interface , binibigyan din tayo ng Secret Manager ng pasilidad para kopyahin ang sikreto. Para dito, pumili ng rehiyon kung saan mo gustong gawin ang pagtitiklop. Sa demo na ito, hindi kami nangangailangan ng anumang pagtitiklop, samakatuwid sa pamamagitan ng pagpapanatiling default sa natitirang mga setting, i-tap ang “Susunod” pindutan:

Habang pinapanatili ang default, sinusuri at ine-edit namin ngayon ang impormasyon. Pagkatapos kumpirmahin ang impormasyong ibinigay, mag-click sa “Tindahan” pindutan upang lumikha, at mag-imbak ng lihim:

Narito, ang sikreto ay matagumpay na nalikha . Mag-click sa “ Pangalan ng lihim ” para tingnan ang mga configuration nito:

Pag-scroll pababa sa interface, magkakaroon tayo ng seksyong Sample code. Sa seksyong ito, ang isang code ay nabuo ng Secret Manager. Kopyahin ang code na ito dahil ito ay gagamitin sa Function ng Lambda:

// Gamitin ang snippet ng code na ito sa iyong app.
// Kung kailangan mo higit pa impormasyon tungkol sa mga configuration o pagpapatupad ng sample code, bisitahin ang AWS docs:
// https: // docs.aws.amazon.com / sdk-for-javascript / v3 / gabay ng developer / pagsisimula.html

angkat {
SecretsManagerClient,
GetSecretValueCommand,
} mula sa '@aws-sdk/client-secrets-manager' ;

const secret_name = 'mysecret1/sh' ;

const client = bagong SecretsManagerClient ( {
rehiyon: 'ap-timog-silangan-1' ,
} ) ;

hayaan tugon;

subukan {
tugon = hintayin ang kliyente.ipadala (
bagong GetSecretValueCommand ( {
SecretId: secret_name,
Yugto ng Bersyon: 'AWSCURENT' , // Nagde-default ang VersionStage sa AWSCURRENT kung hindi natukoy
} )
) ;
} mahuli ( pagkakamali ) {
// Para sa isang listahan ng mga pagbubukod na itinapon, tingnan
// https: // docs.aws.amazon.com / secretsmanager / pinakabago / apireference /
API_GetSecretValue.html
error sa pagtapon;
}

const secret = tugon.SecretString;

// Dito napupunta ang iyong code

Hakbang 3: Lumikha ng Lambda Function

Sa interface ng Lambda Function, i-click ang “ Lumikha ng isang function 'button:

Mag-click sa 'May-akda mula sa simula' opsyon mula sa 'Gumawa ng isang function' interface:

Susunod, lumipat kami patungo sa 'Batayang impormasyon' seksyon. Ibigay ang pangalan ng function sa 'Pangalan ng function' patlang at pagkatapos ay ibigay ang “Rtime” kapaligiran. Dito napili namin ang “Node.js 16. x” sa patlang ng Runtime:

Mag-click sa 'Gumawa ng function' pindutan:

Dito, nai-paste namin ang code na nabuo ng Secret Manager . Pagkatapos i-paste ang code, mag-click sa 'I-deploy' pindutan:

Pagkatapos i-deploy ang lahat ng mga pagbabago, mag-click sa 'Configuration' tab upang payagan ang mga pahintulot para sa Secret Manager:

Mag-click sa 'Mga Pahintulot' opsyon mula sa 'Mga Configuration' tab. Ipapakita nito ang ' Tungkulin sa pagpapatupad” interface at mag-click sa sumusunod na link sa ilalim ng 'Pangalan ng tungkulin' field:

Nasa 'Mga patakaran sa pahintulot' seksyon, i-click ang 'Magdagdag ng mga pahintulot' pindutan. Mula sa drop-down na menu, mag-click sa 'Mag-attach ng mga patakaran' opsyon:

Nasa 'Iba pang mga patakaran sa pahintulot' seksyon, hanapin at piliin ang 'SecretsManagerReadWrite' opsyon. Pindutin ang 'Magdagdag ng mga pahintulot' pindutan:

Dito matagumpay na na-attach at na-configure ang patakaran:

Hakbang 4: I-verify ang Lihim na Pag-access

Ngayon pumunta sa Lambda Dashboard Interface. Mag-click sa 'Pagsusulit' tab:

Sa susunod na interface, magbigay ng pangalan para sa pagsubok na kaganapan sa 'Pangalan ng pangyayari' patlang. Mag-click sa 'I-save' button para ilapat ang mga configuration:

Dito matagumpay na na-configure ang pagsubok. Mag-click sa 'Pagsusulit' pindutan:

Dito tayo mag-click sa 'Pagsusulit' button muli, at ipapakita nito ang sumusunod na output:

Iyon ay mula sa gabay na ito.

Konklusyon

Para pamahalaan ang mga lihim sa Secret Manager, gawin ang RDS cluster, ilakip ito sa Secret Manager, at pagkatapos ay i-execute ang code na iyon sa naka-configure na Lambda Function. Ang Lambda Function ay tutukuyin kung ang lihim ay maa-access o hindi sa pamamagitan ng pagpapatupad ng code sa loob nito na naglalaman ng detalye ng RDS cluster. Ang artikulong ito ay isang hakbang-hakbang na gabay sa pamamahala ng mga lihim gamit ang AWS Secret Manager at RDS.