X-Road անվտանգության սերվերի տեղակայման ուղեցույց¶
NISS-ը (Nordic Institute for Interoperability Solutions) առաջարկում է տեղակայման երկու տարբերակ՝
- Վիրտուալ մեքենաների (Virtual Machines) միջոցով՝ օգտագործելով Ansible Playbook
- Kubernetes կլաստերում՝ օգտագործելով X-tee Helm Chart
Վիրտուալ մեքենաների (Virtual Machines) միջոցով տեղակայման համար աջակցվող օպերացիոն համակարգերն են Ubuntu 24.04-ը և Red Hat 9-ը։ Անվտանգության սերվերի (Security Server) տվյալ տարբերակի համար առաջարկվող տվյալների բազան PostgreSQL 16-ն է։ X-Road-ի պաշտոնական փաստաթղթերի համաձայն՝ մեկ Անվտանգության սերվերի նվազագույն ռեսուրսային պահանջներն են՝
- 2 CPU
- 4 GB RAM
- 100 Mbps ցանցային ինտերֆեյս
X-Road անվտանգության սերվերը անդամների միջև տվյալների փոխանակման և սերվերի կառավարման համար կիրառում է մի շարք պորտեր՝
- 5500 (HTTPS) - Հանրային (պետք է հասանելի լինի համացանցով), օգտագործվում է Անվտանգության սերվերների (Security Server) միջև տվյալների փոխանակման համար։
- 5577 (OCSP) - Հանրային (պետք է հասանելի լինի համացանցով), օգտագործվում է Անվտանգության սերվերների (Security Server) միջև տվյալների փոխանակման համար։
- 8080 (HTTP) - Միայն ներքին ցանցով, օգտագործվում է ծառայությունների կողմից X-Road ցանցին հասանելիություն ապահովելու համար։
- 8443 (HTTPS) - Միայն ներքին ցանցով, օգտագործվում է ծառայությունների կողմից X-Road ցանցին հասանելիություն ապահովելու համար։
- 4000 (HTTPS) - Միայն ներքին ցանցով, օգտագործվում է Administration UI-ի համար։
Տեղակայումից առաջ խնդրում ենք կապ հաստատել ՀՏՀԳ-ի հետ՝ x-road@isaa.am էլ․ հասցեով configuration anchor-ը և Ձեր member code-ը ստանալու համար։ Այս տեղեկատվությունը անհրաժեշտ է հետ-տեղակայման Անվտանգության սերվերի (post-deployment Security Server) կարգավորումների համար։
Տեղակայում վիրտուալ մեքենաների (Virtual Machines) միջոցով՝ օգտագործելով Ansible¶
Ansible-ի միջոցով անվտանգության սերվերը տեղակայելու համար անհրաժեշտ է կլոնավորել X-Road Git պահոցը (https://github.com/nordic-institute/X-Road), անցնել 7.8.0 թեգին և մուտք գործել ansible թղթապանակ։
cd path/to/working/directory
git clone https://github.com/nordic-institute/X-Road.git
git checkout 7.8.0
cd ./ansible
[ss_servers]
${VM-IP-ADDRESS} ansible_ssh_user=${VM-USER}
[example:children]
ss_servers
[ss_servers:vars]
variant=vanilla
- VM-IP-ADDRESS - վիրտուալ մեքենայի (Virtual Machine) IP հասցեն և SSH պորտը, եթե այն լռելյայնը չէ։
- VM-USER - վիրտուալ մեքենայի (Virtual Machine) օգտատեր, որն ունի sudo հասանելիություն, կամ root օգտատերը։
X-Road դիստրիբյուտիվները (distributions) համատեղում են այնպիսի կարգավորում, որտեղ տվյալների բազան տեղադրված է նույն մեքենայի (machine) վրա, ինչ սերվերը, սակայն վերջինս խորհուրդ չի տրվում նույնիսկ թեստային միջավայրերի համար։ Փոխարենը պետք է նշել առանձին տվյալների բազայի միջավայրը անվտանգության սերվերի փոփոխականների ֆայլում։
Խնդրում ենք համոզվել, որ PostgreSQL-ը հասանելի է ցանցին միացված ինտերֆեյսի միջոցով (լռելյայն օգտագործվում է localhost-ը), և որ pg_hba.conf ֆայլը կարգավորված է այնպես, որ ընդունի Ձեր ցանցից եկող հարցումները բոլոր օգտատերերի համար։
Օրինակ՝
../ansible/vars_files/ss_database.yaml
database_host: "127.0.0.1:5432"
database_admin_password: "superuser-password" ## password of postgres user
Այնուհետև միացրեք օպերացիոն մոնիթորինգը, եթե այն արդեն միացված չէ՝
../ansible/vars_files/base.yaml
Տեղակայեք անվտանգության սերվերը՝ կիրառելով հետևյալ հրահանգը՝Kubernets-ի տեղակայում՝ օգտագործելով Helm Chart¶
Անվտանգության սերվերը Helm Chart-ի օգնությամբ տեղակայելու համար անհրաժեշտ է կլոնավորել X-Road-Helm Git-ի պահոցը և անցնել helm/security-server թղթապանակ։
Թղթապանակում անհրաժեշտ է խմբագրել values.yaml ֆայլը որպեսզի․
1․ Սահմանել անվտանգության սերվերի տարբերակը 7.7.0։
2․ Սահմանել անվտանգության սերվերի PIN-ը և ստեղծել առաջին ադմին օգտատեր (Kubernetes Secret-ից)։
Այստեղ XROAD-USER-SECRET-ը նախապես ստեղծված Kubernetes Secret է, որը պետք է պարունակի հետևյալ բանալիները (key)`
- XROAD_TOKEN_PIN
- XROAD_ADMIN_USER
- XROAD_ADMIN_PASSWORD
XROAD_TOKEN_PIN-ը պետք է լինի գաղտնաբառ (passphrase)՝ բաղկացած մեծատառերից, փոքրատառերից, նշաններից և թվերից (նվազագույնը 10 նիշ)։
3․ Տրամադրել տվյալների բազայի secret-ը՝ superuser-ի գաղտնաբառով (Kubernetes Secret-ից)։
Այստեղ XROAD-DB-SECRET-ը նախապես ստեղծված Kubernetes Secret է, որը պետք է պարունակի գաղտնաբառի բանալին (password key)՝ որպես արժեք ունենալով postgres օգտատիրոջ գաղտնաբառը։4․ Տրամադրել SSH բանալիները (keys), որպեսզի secondary pod-երը կարողանան սինխրոնիզացնել իրենց կոնֆիգուրացիան primary pod-ից։
Այստեղ XROAD-SSH-SECRET-ը նախապես ստեղծված Kubernetes Secret է, որը պետք է պարունակի հետևյալ բանալիները (key)՝private-keypublic-key
5․ Կիրառել Helm chart։ Կարգավորել PVC volume-ների չափերը և ծառայության տեսակը (անհրաժեշտության դեպքում): Լռելյայն կարգավորումներն են՝
Օգտագործել հետևյալ հրահանգը կլաստերում տեղակայելու համար՝Տեղեկայումից հետո, հետևեք X-Road Անվտանգության սերվերի կարգավորման ուղեցույցի քայլերին՝ տեղադրման գործընթացը շարունակելու համար։
Տեսանյութ-ուղեցույց¶
Ստորև ներկայացված է տեսանյութ, որը ներառում է այս ուղեցույցում նկարագրված քայլերը։