ஆதாயங்கள்:
- IaC கான்செப்ட் மற்றும் டெர்ராஃபார்மின் வேலை சுழற்சியைப் (init, plan, apply, state, module) புரிந்து கொள்ளும் திறன் மற்றும் செயற்கை நுண்ணறிவு பாதுகாப்பான HCL வரைவுகளை உருவாக்குகிறது
- விண்ணப்பிக்கும் முன் ஒவ்வொரு மாற்றத்தையும் ஒரு திட்டத்துடன் சரிபார்த்து எதிர்பாராத அழித்தல்/மாற்று வரிகளைப் பிடிக்கும் திறன்
- குறியீட்டிற்கு வெளியே ரகசியங்களை வைத்திருத்தல், நிலையைப் பாதுகாப்பாக வைத்திருத்தல் மற்றும் IAM அனுமதிகளைக் குறைத்தல் போன்ற கொள்கைகளைப் பயன்படுத்துவதற்கான திறன்
கடந்த காலத்தில், ஒரு சேவையகத்தை அமைப்பது என்பது கிளவுட் பேனல் மூலம் கிளிக் செய்வதன் ஒரு விஷயமாக இருந்தது: ஒரு மெய்நிகர் இயந்திரத்தை உருவாக்கவும், பிணையத்தை அமைக்கவும், பாதுகாப்பு விதியைச் சேர்க்கவும். இந்த முறை மெதுவாகவும், பிழை ஏற்படக்கூடியதாகவும், மீண்டும் மீண்டும் செய்ய முடியாததாகவும் இருந்தது - அதே சூழலை இரண்டாவது முறையாக அமைப்பது கிட்டத்தட்ட சாத்தியமற்றது. இன்று, உள்கட்டமைப்பு என்பது குறியீடாக நிர்வகிக்கப்படுகிறது. IaC (Infrastructure as Code) என்பது மேகக்கணி ஆதாரங்களான சர்வர்கள், நெட்வொர்க்குகள் மற்றும் டேட்டாபேஸ்களை கைமுறையாக இல்லாமல் உரை கோப்புகளில் விவரிக்கும் அணுகுமுறையாகும். இந்தக் கோப்புகள் பதிப்புக் கட்டுப்பாட்டில் (Git) அமர்ந்துள்ளன; யார் எதை, எப்போது, எதை மாற்றினார்கள் என்பதை நீங்கள் பார்க்கலாம்; நீங்கள் ஒரே உள்கட்டமைப்பை பல முறை, அதே வழியில், ஒரு கட்டளை மூலம் அமைக்கலாம்.
மிகவும் பொதுவான IaC கருவி டெர்ராஃபார்ம் ஆகும். டெர்ராஃபார்ம் HCL (HashiCorp கட்டமைப்பு மொழி — Terraform இன் உள்ளமைவு மொழி) எனப்படும் படிக்கக்கூடிய மொழியில் நீங்கள் எழுதும் வரையறைகளை எடுத்து, அவற்றை கிளவுட் வழங்குநரின் (AWS, Azure, GCP) APIக்கு மொழிபெயர்த்து ஆதாரங்களை உருவாக்குகிறது. AI ஆனது HCL ஐ நன்கு அறிந்திருக்கிறது மற்றும் சிக்கலான தொகுதிகளை விரைவாக உருவாக்குகிறது. ஆனால் IaC இல், ஒரு தவறுக்கான விலை அதிகமாக உள்ளது: ஒரு தவறான வரையறை முழு தயாரிப்பு தரவுத்தளத்தையும் அழிக்கக்கூடும். அதனால்தான் டெர்ராஃபார்மில் உள்ள பொற்கால விதி என்னவென்றால், ஒவ்வொரு மாற்றத்தையும் செயல்படுத்துவதற்கு முன் ஒரு 'திட்டத்துடன்' பார்க்க வேண்டும்.
டெர்ராஃபார்மின் இயக்க நேரம்
டெர்ராஃபார்ம் மூன்று அடிப்படை கட்டளைகளுடன் வேலை செய்கிறது - AI வெளியீட்டைக் கட்டுப்படுத்துவதற்கு இவற்றை அறிவது ஒரு முன்நிபந்தனை:
- `terraform init`: திட்டத்தைத் தொடங்குகிறது, தேவையான வழங்குநர் செருகுநிரல்களைப் பதிவிறக்குகிறது.
- `டெர்ராஃபார்ம் திட்டம்`: தற்போதைய சூழ்நிலையை விரும்பிய சூழ்நிலையுடன் ஒப்பிட்டு, எதைச் சேர்க்க வேண்டும், எதை மாற்ற வேண்டும், எதை நீக்க வேண்டும் என்பதைக் காட்டுகிறது. எதையும் செயல்படுத்துவதில்லை. இது மிக முக்கியமான பாதுகாப்பு நடவடிக்கையாகும்.
- `டெர்ராஃபார்ம் பொருந்தும்`: உண்மையில் திட்டத்தைப் பயன்படுத்துகிறது, ஆதாரங்களை உருவாக்குகிறது/மாற்றுகிறது.
கூடுதலாக, இரண்டு கருத்துக்கள் முக்கியமானவை. மாநிலம் (நிலை கோப்பு): இது டெர்ராஃபார்ம் நிர்வகிக்கும் வளங்களின் தற்போதைய நிலையை வைத்திருக்கும் கோப்பு; இது வழக்கமாக ரிமோட் மற்றும் பூட்டப்பட்ட கிடங்கில் சேமிக்கப்படுகிறது, இதனால் இரண்டு பேர் ஒரே நேரத்தில் அதை மாற்றவோ அழிக்கவோ முடியாது. தொகுதி: மீண்டும் பயன்படுத்தக்கூடிய கட்டமைப்பு தொகுப்பு; எடுத்துக்காட்டாக, நீங்கள் பல திட்டங்களில் "நெட்வொர்க்கை அமைக்கவும்" தொகுதியைப் பயன்படுத்தலாம்.
உதவிக்குறிப்பு: டெர்ராஃபார்ம் வெளியீட்டில் மிகவும் ஆபத்தான அறிகுறி, திட்ட வெளியீட்டில் உள்ள அழித்தல் அல்லது -/+ (மாற்று) வரிகள். இந்த ஆதாரம் நீக்கப்படும் என்று அர்த்தம். ஒரு திட்டத்தில் எதிர்பாராத அழிவை நீங்கள் கண்டால், ஒருபோதும் பயன்படுத்த வேண்டாம், அது ஏன் தோன்றியது என்பதை முதலில் புரிந்து கொள்ளுங்கள்.
படிப்படியாக: AI உடன் IaC ஐ எழுதுதல்
- தேவையான உள்கட்டமைப்பை தெளிவுபடுத்துங்கள். "eu-central-1 இல் ஒரு VPC, இரண்டு சப்நெட்கள், ஒரு பாதுகாப்பு குழு மற்றும் ஒரு t3.micro EC2" போன்ற உறுதியானதாக இருங்கள்.
- வழங்குநர் மற்றும் பதிப்பைக் குறிப்பிடவும். எந்த மேகம், எந்த டெர்ராஃபார்ம் மற்றும் வழங்குநர் பதிப்பு? நீங்கள் பதிப்பைக் குறிப்பிடவில்லை எனில், AI காலாவதியான/இணக்கமற்ற தொடரியல் திரும்பப் பெறலாம்.
- HCL வரைவோலை தயாரிக்கவும். மாறிகள் மற்றும் வெளியீடுகளைக் கோரவும்.
- ரகசியத்தை வெளியே எடு. கடவுச்சொற்கள் மற்றும் விசைகள் போன்ற மதிப்புகள் மாறி மற்றும் ரகசிய பெட்டகத்திற்கு செல்ல வேண்டும், குறியீட்டிற்கு அல்ல.
- `init` + `plan` ஐ இயக்கவும். திட்ட வெளியீட்டை வரி மூலம் படிக்கவும்; எதிர்பாராத நீக்குதல்களைச் சரிபார்க்கவும்.
- சிறியதாக தொடங்கவும், படிப்படியாக செயல்படுத்தவும். தனிமைப்படுத்தப்பட்ட சோதனைக் கணக்கு/சூழலில் முதலில் அதைப் பயன்படுத்தவும்.
பாதுகாப்பு: IaC-குறிப்பிட்ட அபாயங்கள்
IaC ஆற்றல் வாய்ந்தது போலவே ஆபத்தானது. மூன்று முக்கியமான புள்ளிகள்:
- அரசு கோப்பில் ஒரு ரகசியம் உள்ளது. டெர்ராஃபார்ம் நிலை சில நேரங்களில் தரவுத்தள கடவுச்சொற்கள் போன்ற முக்கியமான மதிப்புகளை எளிய உரையில் வைத்திருக்கும். மாநிலத்தை ஒரு பொது களஞ்சியத்தில் வைக்க வேண்டாம்; மறைகுறியாக்கப்பட்ட, கட்டுப்படுத்தப்பட்ட அணுகல் தொலைநிலை பின்தளத்தைப் பயன்படுத்தவும்.
- HCL இல் ரகசியங்களை உட்பொதிக்க வேண்டாம். கடவுச்சொல் = "prod123" போன்ற வரிகள் Git வரலாற்றில் நிரந்தரமாக எழுதப்படும். அதற்குப் பதிலாக, ஒரு மாறியைப் பயன்படுத்தி, சூழல் மாறி (TF_VAR_...) அல்லது ரகசிய பெட்டகத்திலிருந்து இயக்க நேரத்தில் மதிப்பைக் கொடுக்கவும்.
- மிகவும் பரந்த IAM அனுமதி. AI சில நேரங்களில் ஆக்ஷன் போன்ற தொகுதிகளை உருவாக்குகிறது: "*" (எல்லாவற்றையும் அனுமதி) "அதைச் செயல்படுத்த". இது ஒரு பாதிப்பு; தேவையான குறைந்தபட்ச அனுமதியைக் குறைக்கவும்.
கவனம்: ஒரு ரகசியம் Git வரலாற்றில் நுழைந்தவுடன், அது கடந்த காலத்திலேயே இருக்கும் மற்றும் நீங்கள் கோப்பை நீக்கினாலும் சமரசம் செய்யலாம். நீங்கள் தவறு செய்தால், உடனடியாக ரத்துசெய்து இரகசியத்தை சுழற்றவும்; நீக்கினால் மட்டும் போதாது.
ஆபத்தான திட்ட அறிகுறிகள் அட்டவணை
பிளான் பிரிண்ட்அவுட்
பொருள்
என்ன செய்வது
+உருவாக்கு
புதிய வளம் சேர்க்கப்படும்
பொதுவாக பாதுகாப்பானது, இருப்பினும் மதிப்பாய்வு செய்யவும்
~ இடத்தில் புதுப்பித்தல்
தளத்தில் ஆதாரம் மாறும்
பாதிப்பைச் சரிபார்க்கவும் (ஒரு செயலிழப்பு ஏற்படுமா?)
-/+ மாற்றவும்
நீக்கப்பட்டு மீண்டும் உருவாக்கப்படும்
எச்சரிக்கை: தரவு இழப்பு ஏற்படலாம்
- அழிக்க
வளம் அழிக்கப்படும்
நிறுத்து: நீங்கள் எதிர்பார்க்கவில்லை என்றால் ஒருபோதும் விண்ணப்பிக்க வேண்டாம்
மூன்று சிறிய வழக்குகள்
வழக்கு 1 - 3 மணி நேரத்தில் 2 நாட்கள் வேலை. ஒரு குழு புதிய சோதனை சூழலை (VPC, subnets, RDS database, ECS cluster) அமைப்பதற்காக Terraform எழுதப் போகிறது, ஆனால் அவர்கள் HCL க்கு நகர்ந்தனர். அவர்கள் கட்டிடக்கலை மற்றும் பதிப்புகளை AI க்கு விவரித்தனர் மற்றும் ஒரு மட்டு வரைபடத்தை உருவாக்கினர். அவர்கள் ஒவ்வொரு தொகுதியையும் திட்டத்துடன் சரிபார்த்து, அதை 3 மணிநேரத்தில் இயக்கிவிட்டனர்; இது அவர்களுக்கு இரண்டு நாட்கள் கைமுறை சோதனை மற்றும் பிழை எடுக்கும்.
வழக்கு 2 - திட்டம் நீக்கப்பட்டது. AI-உருவாக்கிய புதுப்பிப்புக் குறியீட்டைப் பயன்படுத்தாமல் ஒரு பொறியாளர் ஒரு திட்டத்தை இயக்கியுள்ளார். உற்பத்தித் தரவுத்தளத்திற்கான பதிலாக -/+ உள்ள வெளியீடு - AI மாற்ற முடியாத புலத்தை மாற்ற முயற்சித்தது, அதாவது தரவுத்தளத்தை நீக்குதல் மற்றும் மீண்டும் உருவாக்குதல். பொறியாளர் விண்ணப்பத்தை நிறுத்திவிட்டு பாதுகாப்பான முறைக்கு மாற்றினார். திட்டமிடும் பழக்கம் பேரழிவைத் தடுத்தது.
வழக்கு 3 - புதைக்கப்பட்ட இரகசிய கசிவு. ஒரு இளைய, YZ db_password = "S3cret!" லைனை அப்படியே கமிட் செய்து தள்ளினான். குறியீடு மதிப்பாய்வில் சிக்கியது; கடவுச்சொல் உடனடியாக ரத்து செய்யப்பட்டு மாற்றப்பட்டது, மதிப்பு மாறிக்கு மாற்றப்பட்டு ரகசிய பெட்டகத்திலிருந்து கொடுக்கப்பட்டது. பாடம்: எச்.சி.எல்-ல் ஒருபோதும் எளிய உரை ரகசியங்கள் இல்லை.
நகலெடுக்கக்கூடிய நான்கு வார்ப்புருக்கள்
1) உள்கட்டமைப்பு வரைவை உருவாக்குதல்:
பின்வரும் உள்கட்டமைப்பை [CLOUD: AWS] இல் Terraform (பதிப்பு ~> 1.7) உடன் எழுதவும்: [SOURCE LIST]. பிராந்தியம் [X]. விதிகள்:- எல்லா முக்கிய மதிப்புகளையும் மாறக்கூடியதாக ஆக்குங்கள், அவற்றை HCL இல் உட்பொதிக்க வேண்டாம்.- வழங்குநர் பதிப்பை சரிசெய்யவும் (தேவையான_வழங்குநர்கள்).- IAM அனுமதிகளைக் குறைக்கவும், "*" ஐப் பயன்படுத்த வேண்டாம்.- [X, Y] ஐ அவுட்புட்டாகத் திரும்பவும். குறியீட்டை மட்டுமின்றி விளக்கங்களுடன் கொடுக்கவும்.
2) திட்ட வெளியீட்டை விளக்குதல்:
கீழே உள்ள 'டெர்ராஃபார்ம் திட்டம்' வெளியீட்டை பகுப்பாய்வு செய்யவும். என்னைப் பட்டியலிடவும்:(1) என்ன ஆதாரங்கள் சேர்க்கப்பட்டன/மாற்றப்பட்டன/நீக்கப்பட்டன,(2) தரவு இழப்பு அல்லது குறுக்கீடு ஏற்படும் அபாயத்தில் உள்ள வரிசைகள்,(3) விண்ணப்பிக்கும் முன் நான் கேட்க வேண்டிய 3 கேள்விகள். திட்டம்: [அவுட்புட்]
3) பாதுகாப்பிற்காக ஏற்கனவே உள்ள HCL ஐ ஆய்வு செய்யவும்:
பாதுகாப்பிற்காக பின்வரும் டெர்ராஃபார்ம் குறியீட்டைச் சரிபார்க்கவும்: உட்பொதிக்கப்பட்ட ரகசியம், மிகையான பரந்த IAM அனுமதி, திறந்த நெட்வொர்க் விதி (0.0.0.0/0), மறைகுறியாக்கப்படாத சேமிப்பகம்? ஒவ்வொரு கண்டுபிடிப்பையும் முக்கியத்துவம் மற்றும் திருத்தத்தின் வரிசையில் எழுதுங்கள். குறியீடு: [HCL]
4) மீண்டும் மீண்டும் வரும் குறியீட்டை தொகுதிக்கு மாற்றவும்:
பின்வரும் மீண்டும் மீண்டும் வரும் டெர்ராஃபார்ம் குறியீட்டை மீண்டும் பயன்படுத்தக்கூடிய தொகுதியாக மாற்றவும்: என்ன மதிப்புகள் மாறிகளாக இருக்க வேண்டும், தொகுதி இடைமுகம் என்னவாக இருக்க வேண்டும்? உதாரண பயன்பாட்டையும் காட்டவும். குறியீடு: [HCL]
பலவீனமான வரியில் / வலுவான வரியில்
பலவீனமானது: "டெர்ராஃபார்ம் மூலம் தரவுத்தளத்தை உருவாக்கவும்."
முடிவு: எந்த மேகம், எந்த இயந்திரம், எந்த பதிப்பு, குறியாக்கம் செய்யப்பட்டதா இல்லையா என்பது தெளிவாகத் தெரியவில்லை; மரபு தொடரியல் மூலம், குறியீட்டில் கடவுச்சொல்லை உட்பொதிக்கும் பொதுவில் கிடைக்கும் உதாரணத்தை AI வழங்க முடியும்.
வலிமையானது: "Terraform ~> 1.7 உடன் AWS இல் RDS PostgreSQL 15 நிகழ்வை உருவாக்கவும். கடவுச்சொல்லை மாறி, குறியீட்டில் உட்பொதிக்க வேண்டாம். சேமிப்பகம் என்க்ரிப்ட் செய்யப்பட்டுள்ளது, தனிப்பட்ட சப்நெட்டில் இருந்து மட்டுமே அணுக முடியும், பொதுவில் இல்லை. வழங்குநரின் பதிப்பைச் சரிசெய்யவும். இறுதிப் புள்ளியை வெளியீட்டாகத் திருப்பி விடுங்கள்."
வேறுபாடு: இரண்டாவது வரியில் இயந்திரம், பதிப்பு, குறியாக்கம், பிணைய கட்டுப்பாடு மற்றும் இரகசிய விதி - வெளியீடு பாதுகாப்பானது மற்றும் தயாரிப்புக்கு நெருக்கமாக உள்ளது.
பொதுவான தவறுகள்
- `திட்டம்` செய்யாமல் `விண்ணப்பிக்க`. IaC இல் மிகவும் விலையுயர்ந்த தவறு; எப்போதும் முதலில் திட்டமிடுங்கள்.
- HCL இல் உட்பொதிக்கும் ரகசியம். Git வரலாற்றில் நிரந்தர கசிவை உருவாக்குகிறது.
- மாநில பாதுகாப்பற்ற சேமிப்பு. மறைகுறியாக்கப்பட்ட, திறக்கப்படாத, பொது நிலை ஒரு பேரழிவு.
- பதிப்பை சரி செய்யவில்லை. பதிப்பைக் குறிப்பிடாமல் வழங்குநரைப் பயன்படுத்துவது எதிர்காலத்தில் திடீர் தோல்விகளுக்கு வழிவகுக்கும்.
- *`செயல்: ""` போன்ற பரந்த அனுமதி.** குறைந்தபட்ச சிறப்புரிமைக் கொள்கையை மீறுகிறது.
- எதிர்பாராத `அழிப்பதை` புறக்கணித்தல். திட்டத்தில் உள்ள நீக்கல் வரிகளை கேள்வி கேட்காமல் பயன்படுத்துதல்.
சுருக்கமாக
IaC உள்கட்டமைப்பை மீண்டும் மீண்டும் செய்யக்கூடிய, பதிப்பு செய்யக்கூடிய மற்றும் தணிக்கை செய்யக்கூடிய குறியீடாக மாற்றுகிறது; மிகவும் பொதுவான கருவி டெர்ராஃபார்ம் ஆகும். AI விரைவாக HCL ஸ்டப்களை உருவாக்குகிறது, ஆனால் நீங்கள் பதிப்பு, கிளவுட்-குறிப்பிட்ட விவரங்கள் மற்றும் பாதுகாப்பு விதிகளை வழங்க வேண்டும். டெர்ராஃபார்மில் தவறான விதி: ஒவ்வொரு மாற்றத்தையும் ஒரு திட்டத்துடன் பார்க்க, எதிர்பாராத நீக்குதல்களை வினவ, குறியீடிலிருந்து ரகசியங்களை விலக்கி, அரசை பாதுகாப்பாக வைத்திருக்க. திட்ட வெளியீட்டில் உள்ள அழித்தல் மற்றும் மாற்றும் வரிகள் மிகவும் கவனமாக படிக்க வேண்டிய இடங்கள்.
விண்ணப்ப பணி
மேலே உள்ள "உள்கட்டமைப்பு ஓவியத்தை உருவாக்கு" டெம்ப்ளேட்டைப் பயன்படுத்தி, AI ஒரு சிறிய உள்கட்டமைப்பை (எ.கா. சேமிப்பக வாளி மற்றும் அணுகல் கொள்கை) உருவாக்க வேண்டும். பின்னர்: (1) "சரிபார்ப்பு" டெம்ப்ளேட்டை ரகசியமாக சரிபார்க்கவும் அல்லது * அனுமதிகளை குறியீட்டில் உட்பொதிக்கவும்; (2) முடிந்தால், சோதனைக் கணக்கில் init + திட்டத்தை இயக்கி, "திட்ட விளக்கம்" டெம்ப்ளேட்டுடன் திட்ட வெளியீட்டைப் படிக்கவும்; (3) எதிர்பாராத நீக்கங்கள்/மாற்றங்கள் ஏதேனும் இருந்தால் கவனிக்கவும்.
சரிபார்ப்பு பட்டியல்
- [ ] கிளவுட், டெர்ராஃபார்ம்/வழங்குபவர் பதிப்பு மற்றும் என்க்ரிப்ஷன்/நெட்வொர்க் கட்டுப்பாடுகளை எனது அறிவுறுத்தலில் சேர்த்துள்ளேன்.
- [ ] குறியீட்டில் எளிய உரை ரகசியம் இல்லை; துல்லியமான மதிப்புகள் மாறி.
- [ ] IAM/அனுமதிகளை குறைந்தபட்ச அனுமதிகளாகக் குறைத்தேன், * நான் அதைப் பயன்படுத்தவில்லை.
- [ ] நான் விண்ணப்பிக்கும் முன் திட்டத்தை இயக்கி அவுட்புட் வரியை வரியாகப் படித்தேன்.
- [ ] திட்டத்தில் எதிர்பாராத அழிவு/மாற்று எதுவும் இல்லை என்பதை நான் சரிபார்த்தேன்.
- [ ] மாநிலமானது மறைகுறியாக்கப்பட்ட, பூட்டப்பட்ட மற்றும் கட்டுப்படுத்தப்பட்ட பின்தளத்தில் வைக்கப்பட்டுள்ளது என்று நான் உறுதியாக நம்புகிறேன்.