குபெர்னெட்ஸ் பாதுகாப்பு சூழலில் லினக்ஸ் திறன்களைச் சேர்க்கவும் அல்லது அகற்றவும்

Kupernets Patukappu Culalil Linaks Tirankalaic Cerkkavum Allatu Akarravum



குபெர்னெட்ஸ் கொள்கலனில் உள்ள ஒவ்வொரு பாட் மற்றும் கொள்கலனுக்கும் வழங்கப்படும் சலுகைகளின் அளவை நிர்வகிப்பது கடினமாக இருக்கலாம். கொள்கலனின் பாதுகாப்பை அதிகரிக்க, பாட் மற்றும் கன்டெய்னரில் இருந்து லினக்ஸ் திறன்களைச் சேர்க்க அல்லது நீக்க, குபெர்னெட்டஸ் பாதுகாப்பு சூழல் திறன்களைப் பயன்படுத்துவோம். இந்தக் கட்டுரை, பாதுகாப்புச் சூழலைப் பயன்படுத்தி, திறன்களைச் சேர்ப்பதற்கும் நீக்குவதற்கும் ஒரு எளிய உதாரணத்தைச் செயல்படுத்துவதில் கவனம் செலுத்துகிறது. ஒரு yaml கோப்பின் உள்ளமைவு அனைத்து திறன்களையும் நீக்க மற்றும் ஒரு கொள்கலனில் ஒரு திறனை மட்டும் சேர்க்க மாதிரி எடுத்துக்காட்டில் கொடுக்கப்பட்டுள்ளது. இந்தக் கட்டுரையில், கொள்கலனின் திறன்களைக் காட்ட proc மற்றும் capsh கட்டளைகள் பயன்படுத்தப்படுகின்றன.

படி 1: Minikube சேவையகத்தைத் தொடங்கவும்







முதலில், minikube சேவையகத்தைத் தொடங்கவும், இதன் மூலம் நீங்கள் உங்கள் பயன்பாட்டை இயக்கலாம் மற்றும் kubectl வழிமுறைகளைப் பயன்படுத்தலாம். குபெர்னெட்ஸ் சூழலில் மினிகுப் சேவையகத்தைப் பயன்படுத்தி உங்கள் கணுக்கள், காய்கள் மற்றும் கிளஸ்டரையும் பயன்படுத்தலாம். மினிகுப்பை செயலில் உள்ள பயன்முறையில் பராமரிக்க பின்வரும் கட்டளை பயன்படுத்தப்பட வேண்டும்:



> minikube ஐ தொடங்கவும்



அவ்வாறு செய்வதன் மூலம், minikube சேவையகம் இயக்கப்பட்டது மற்றும் Kubernetes சூழல் பயன்படுத்த தயாராக உள்ளது.





படி 2: குபெர்னெட்ஸ் YAML கோப்பை உருவாக்கவும்



இரண்டாவது கட்டத்தில், ஒரு பாட் வரிசைப்படுத்த ஒரு YAML கோப்பை உருவாக்கவும்.

நானோவைப் பயன்படுத்தி yaml கோப்பை உருவாக்க, படிகளைப் பின்பற்றவும்:

  • நீங்கள் கோப்பை உருவாக்க அல்லது ஏற்கனவே உள்ள கோப்பை மாற்ற விரும்பும் அடைவு பாதைக்குச் செல்லவும்.
  • கோப்பு பெயரைத் தொடர்ந்து நானோ கட்டளையை உள்ளிடவும்.

பின்வரும் நானோ கட்டளையை இயக்கவும். இது 'nano podsample.yaml' என்ற YAML உள்ளமைவு கோப்பை உருவாக்குகிறது.

> நானோ podsample.yaml

podsample.yaml கோப்பை எவ்வாறு கட்டமைப்பது என்பதை அறிய உதவும் அடுத்த கட்டத்திற்குச் செல்வோம்.

படி 3: YAML கோப்பை உள்ளமைக்கவும்

முந்தைய கட்டத்தில் கேப்ஷ் கருவியைச் சேர்ப்போம், இதன் மூலம் எங்கள் கொள்கலனின் திறன்களைக் காணலாம்.

இந்தக் கொள்கலனுக்கான பாதுகாப்புச் சூழல் பகுதிக்காக அந்த அளவுருக்கள் எதுவும் கட்டமைக்கப்படவில்லை என்பதை நினைவில் கொள்ளவும். எனவே, அவை அனைத்தும் கணினி இயல்புநிலைக்கு அமைக்கப்பட்டுள்ளன. இந்த கொள்கலன் இயல்புநிலை பயனராக இயங்குகிறது என்ற உண்மையைக் கவனியுங்கள், இது Kubernetes இல் எந்தப் பயனரும் வரையறுக்கப்படவில்லை என்றால், அது உருவாக்கப்பட்ட Dockerfile இல் வழங்கப்படும். பல கொள்கலன்களுக்கு, இந்த இயல்புநிலை பயனர் ரூட் ஆகும்.

படி 4: ஒரு பாட் உருவாக்கவும்

இந்த கட்டத்தில், பின்வரும் இணைக்கப்பட்ட கட்டளையுடன் podsample.yaml ஐ உருவாக்குவோம்:

> kubectl பொருந்தும் -எஃப் podsample.yaml

படி 5: திறன்களை சரிபார்க்கவும்

முந்தைய கட்டத்தில், ஒரு பாட் உருவாக்கப்பட்டு இயங்குகிறது.

இப்போது அதன் உள்ளே ஒரு ஷெல் உள்ளது, பின்வரும் கட்டளையைப் பயன்படுத்தி அதன் திறன்களை சரிபார்க்க capsh ஐப் பயன்படுத்தலாம்:

> $ kubectl exec - -stdin - -டிடி தொப்பிகள் -- சாம்பல்

capsh கட்டளையைப் பயன்படுத்தி, பின்வருமாறு பட்டியலிடப்பட்டுள்ள கொள்கலனின் இயல்புநிலை திறன்களைக் காண முடியும்:

கன்டெய்னருக்கு இயக்க நேரத்தில் கொடுக்கப்பட்ட பல இயல்புநிலை திறன்கள் இருப்பதை கொடுக்கப்பட்ட வெளியீட்டில் இருந்து நாம் அவதானிக்கலாம்.

படி 6: கைவிடவும் ஒற்றை திறன் ஒய் குபெர்னெட்டஸ் பாதுகாப்பு சூழலில்

இந்த கட்டத்தில், கொள்கலனின் ஒற்றை திறனை நாங்கள் கைவிடுகிறோம்.

பின்வரும் கட்டளையைப் பயன்படுத்தி yaml கோப்பை உள்ளமைப்போம்:

> நானோ dropod.yaml

அதன் பிறகு, பின்வரும் கட்டளையைப் பயன்படுத்தி droppod.yaml கோப்பை உள்ளமைக்க நகர்த்தவும்:

> kubectl பொருந்தும் -எஃப் droppod.yaml

படி 7 : YAML கோப்பில் ஒற்றைத் திறனைச் சேர்க்க கட்டமைக்கவும்

இந்த கட்டத்தில், படி 6 இல் உருவாக்கப்பட்ட yaml கோப்பை (dropped.yaml) திறக்கவும். பின்னர், புதிய கோப்பு முறைமை முனைகளை உருவாக்கும் திறனை அகற்றும் CAP_MKNOD திறனை அணுக முடியாத வகையில் கொள்கலனை அமைக்கவும்.

கட்டமைக்கப்பட்ட கோப்பு காட்டப்பட்டுள்ளது:

படி 8 : திறன்களை சரிபார்க்கவும்

yaml கோப்பு CAP_MKNOD திறனை கைவிட கட்டமைக்கப்பட்டுள்ளது.

இந்த கட்டத்தில், பின்வரும் கட்டளையைப் பயன்படுத்தி கொள்கலனின் திறன்களை சரிபார்க்க dropcaps.yaml கோப்பை இயக்கவும் மற்றும் இயக்கவும்:

> $ kubectl exec - -stdin - -டிடி டிராப்கேப்ஸ் -- சாம்பல்

டிராப்கேப்ஸ் கோப்பை இயக்குவதன் மூலம் திறன்களை சரிபார்க்கலாம்:

> # capsh - -print

முதல் காய்களுடன் ஒப்பிடும்போது இந்த பாட் CAP_MKNOD திறனைக் குறைத்திருப்பதை நாம் அவதானிக்கலாம்.

படி 9 : Kubernetes SecurityContext இல் அனைத்து திறன்களையும் கைவிடவும்

குபெர்னெட்டஸ் ஒரு திறனைக் கைவிட முடியும் என்பதால், இது பாதுகாப்பு சூழல் மூலம் அனைத்து திறன்களையும் கைவிடலாம். இந்த கட்டத்தில், கொடுக்கப்பட்ட கட்டளையைக் குறிப்பதன் மூலம் கொள்கலனின் அனைத்து திறன்களையும் கைவிடவும்:

> நானோ மாதிரிநோகாப்.யாம்ல்

அதன் பிறகு, பின்வரும் கட்டளையைப் பயன்படுத்தி samplenocap.yaml கோப்பை உள்ளமைக்கவும்:

> kubectl உருவாக்கவும் -எஃப் மாதிரிநோகாப்.யாம்ல்

இப்போது, ​​​​எங்கள் பாதுகாப்பு சூழல் அமைப்புகளில் உள்ள அனைத்து திறன்களையும் கைவிட அடுத்த படிக்குச் செல்லலாம்.

படி 10: YAML கோப்பில் உள்ள அனைத்து திறன்களையும் உள்ளமைக்கவும்

இந்தப் படிநிலையில், படி 9 இல் உருவாக்கப்பட்ட yaml கோப்பைத் திறக்கவும். பின்னர், container.securityContext  உள்ளே உள்ளமைத்து, கொள்கலனின் அனைத்து திறன்களையும் கைவிடவும்.

கட்டமைக்கப்பட்ட கோப்பு காட்டப்பட்டுள்ளது:

படி பதினொரு : திறன்களை சரிபார்க்கவும்

திறன்களைப் பற்றிய தகவலைப் பார்க்க, nocaps ஐ கேப்ஷில் இயக்கவும். இந்த கட்டத்தில், பின்வரும் கட்டளையைப் பயன்படுத்தவும் மற்றும் கொள்கலனின் அனைத்து திறன்களையும் காட்டவும்:

> kubectl exec - -stdin - -டிடி nocaps -- சாம்பல்

கேப்ஷில் சாம்பிள்னோகேப்ஸ் யாம்ல் கோப்பை இயக்குவதன் மூலம் திறன்களை பின்வரும் விளக்கப்படத்தில் சரிபார்க்கலாம்:

> # capsh - -print

முந்தைய வெளியீடு தற்போதைய=”” மற்றும் வரம்பு செட்=”” இப்போது காலியாக இருப்பதைக் காட்டுகிறது. திறன்கள் வெற்றிகரமாக கைவிடப்பட்டன.

படி 1 2 : பாஷை நிறுவவும்

இந்த கட்டத்தில், apk மூலம் Bash ஐ நிறுவவும், ஏனெனில் எங்களிடம் எந்த திறன்களும் இல்லை என்றால் சில கணினி செயல்பாடுகள் இயங்காது. எங்கள் கொள்கலன் ரூட்டாக இயங்கினாலும், பாஷ் தொகுப்பின் நிறுவல் தோல்வியடைகிறது.

> # apk add bash

படி 1 3 : திறன் தகவலைச் சரிபார்க்கவும்

capsh மற்றும் proc கட்டளைகளைப் பயன்படுத்துவது போன்ற எங்கள் கொள்கலனின் திறன்களைக் காண பல வழிகள் உள்ளன. இந்த கட்டத்தில், proc கட்டளையைப் பயன்படுத்தி கொள்கலன் திறன்களைக் காண்பிக்கிறோம் மற்றும் proc திறன்களை பிட்மேப்பாகக் காட்டுகிறது. இது கேப்ஷின் விளைவாக படிக்கக்கூடியதாக இல்லாவிட்டாலும், இங்கு வரையறுக்கப்பட்ட ஒவ்வொரு பிட்டும் ஒரு குறிப்பிட்ட திறனைக் குறிக்கிறது.

> # cd /proc/1/

இந்த குறிப்பிட்ட கொள்கலனில் செயல்படுத்தப்பட்ட திறன்கள் இல்லை என்பதை இங்கே காணலாம்; இந்த மதிப்புகள் அனைத்தும் பூஜ்ஜியமாகும்.

படி 1 4 : குபெர்னெட்ஸ் பாதுகாப்புச் சூழலில் ஒற்றைத் திறனைச் சேர்த்தல்

முந்தைய படிகளில், CAP_MKNOD என்ற ஒற்றைத் திறனைக் கைவிட்டோம் மற்றும் அனைத்து திறன்களையும் கைவிட்டோம். ஆனால், இந்த கட்டத்தில், திறன்களை மீண்டும் சேர்க்கலாம்.

yAML கோப்பை உருவாக்க பின்வரும் கட்டளையை இயக்கவும்:

> நானோ சாம்பிளேட்.யாம்ல்

அதன் பிறகு, sampleadd.yaml கோப்பை உள்ளமைக்கவும்.

> kubectl உருவாக்கவும் -எஃப் சாம்பிளேட்.யாம்ல்

இப்போது, ​​sampleadd.yaml கோப்பை முயற்சி செய்து, நமது பாதுகாப்பு சூழல் அமைப்புகளில் ஒரு திறனைச் சேர்ப்போம்.

படி 1 5 : YAML கோப்பில் ஒற்றை திறனை உள்ளமைக்கவும்

இப்போது, ​​spec.container.securityContext இல் உள்ள திறனை capabilities.add [“MKNOD”] என்பதில் சேர்ப்பதன் மூலம் கோப்பை உள்ளமைப்போம்.

திறன் YAML கோப்பில் காட்டப்படும்.

படி 16 : திறன்களை சரிபார்க்கவும்

இந்த கட்டத்தில், பின்வரும் கட்டளையைப் பயன்படுத்தி திறன்களை சரிபார்க்க addcaps ஐ இயக்கவும்:

> kubectl exec - -stdin - -டிடி addcaps -- என

பின்வரும் கொடுக்கப்பட்ட வெளியீட்டில் கூடுதல் திறனைக் காணலாம்:

தற்போதைய = cap_mknod+ep

எல்லை தொகுப்பு = cap_mknod

> # capsh - -print

முடிவுரை

கேப்ஷ் கட்டளையுடன் காட்டப்படும் இயக்க நேரத்தில் ஒதுக்கப்படும் கொள்கலனின் இயல்புநிலை திறன்களைப் பற்றி செயல்படுத்தப்பட்ட உதாரணத்திலிருந்து நீங்கள் முதலில் கற்றுக்கொண்டீர்கள். அடுத்து, CAP_MKNOD என்ற கன்டெய்னரில் ஒற்றைத் திறனைக் கைவிட கற்றுக்கொண்டீர்கள். பின்னர், //drop: –all configuration ஐப் பயன்படுத்தி கொள்கலனின் அனைத்து திறன்களையும் எப்படி கைவிடுவது என்பதையும் நீங்கள் கற்றுக்கொண்டீர்கள். பின்னர், கொள்கலன்களின் திறன்களைக் காட்ட இரண்டு வழிகளைப் பயன்படுத்தினோம் - capsh மற்றும் proc கட்டளைகளைப் பயன்படுத்தி.