“API களுக்கான அணுகலை SQL எவ்வாறு ஒருங்கிணைக்க முடியும்” என்பதில், பல்வேறு API களில் இருந்து தரவுப் பாய்வுகளைப் பற்றி ஒரு பொதுவான சூழலாக SQL ஐ உருவாக்கினேன். அந்தச் சூழ்நிலையின் முக்கிய செயல்பாட்டாளர் SteamPipe ஆகும், இது Postgres-அடிப்படையிலான கருவியாகும், இது போஸ்ட்கிரெஸில் உள்ள வெளிநாட்டு அட்டவணைகளுக்கு APIகளை வரைபடமாக்குவதற்கு API செருகுநிரல்களின் வளர்ந்து வரும் தொகுப்பாகும்.
இந்த APIகள், ஆரம்பத்தில், AWS, Azure மற்றும் GCP ஆல் வழங்கப்பட்டன. இத்தகைய APIகள் பொதுவாக boto3 போன்ற ரேப்பர்கள் மூலம் டெவலப்பர்களுக்கு அணுகக்கூடியதாக இருக்கும். ஒரு பொதுவான SQL இடைமுகம் இந்த மேகங்களுக்குள் பரவியுள்ள API சுற்றுச்சூழல் அமைப்பின் சிறந்த ஒருங்கிணைப்பாளராக உள்ளது, மேலும் இது பல கிளவுட் காட்சிகளில் நிச்சயமாக உண்மை. Postgres இன் கீழ், நீங்கள் SQL க்கு மட்டுப்படுத்தப்படவில்லை: நீங்கள் Python அல்லது JavaScript அல்லது வேறு எந்த மொழியையும் Postgres உடன் இணைக்கலாம் மற்றும் அந்த மொழிகளில் இருந்து பொதுவான SQL இடைமுகத்தைப் பயன்படுத்திக் கொள்ளலாம்.
GitHub, Google Workspace, IMAP, Jira, LDAP, Shodan, Slack, Stripe மற்றும் Zendesk உள்ளிட்ட பல சேவைகளுக்கான செருகுநிரல்களுடன் SteamPipe சுற்றுச்சூழல் விரிவாக்கப்பட்டது. இந்த API களில் சேர்வது இந்த எடுத்துக்காட்டு மூலம் சிறப்பாக நிரூபிக்கப்பட்ட ஒரு வல்லரசாகும், இது மிகவும் அடிப்படையான SQL இன் 10 வரிகளில் உள்ள அமேசான் EC2 எண்ட்பாயிண்ட்டுகளுடன் இணைக்கப்பட்டுள்ளது.
select a.instance_id, s.ports s.vulns from aws_ec2_instance a left join shodan_host s on a.public_ip_address = s.ip where a.public_ip_address is not null; +---------------------+----------+--------------------+ | instance_id | ports | vulns | +---------------------+----------+--------------------+ | i-0dc60dd191cb84239 | null | null | | i-042a51a815773780d | [80,22] | null | | i-00cf426db9b8a58b6 | [22] | null | | i-0e97f373db42dfa3f | [22,111] | ["CVE-2018-15919"] | +---------------------+----------+--------------------+
கோப்புகளும் APIகள்
ஆனால் API என்றால் என்ன? இது எப்போதும் HTTP கோரிக்கைகளை சேவை முடிவுப் புள்ளிகளுக்கு வழங்க வேண்டுமா? பரவலாகப் பேசும் APIகள் மற்ற சுவைகளிலும் வரும் தரவு மூலங்களாகும். இணையப் பக்கங்கள் பெரும்பாலும், இன்னும், உண்மையான APIகளைக் கொண்டிருக்கும். பல ஆண்டுகளாக நான் நினைத்ததை விட அதிகமான வலை ஸ்கிராப்பிங்கைச் செய்துள்ளேன் மேலும் திறமை பயனுள்ளதாக உள்ளது.
கோப்புகளும் தரவு மூலங்களாகும்: உள்ளமைவு கோப்புகள் (INI, YAML, JSON), உள்கட்டமைப்பு-குறியீடு கோப்புகள் (டெர்ராஃபார்ம், CloudFormation), தரவு கோப்புகள் (CSV). இந்த மூலங்களிலிருந்து செருகுநிரல்கள் கலவையில் சேர்க்கத் தொடங்கியபோது, Steampipe இன்னும் சக்திவாய்ந்ததாக மாறியது.
முதலில் CSV செருகுநிரல் வந்தது, இது அனைத்து வகையான பயனுள்ள வினவல்களையும் திறக்கும். எடுத்துக்காட்டாக, விரிதாள்களை எவ்வாறு தரவுத்தளங்களாகக் காட்டுகிறோம் என்பதைக் கவனியுங்கள். அவ்வாறு செய்யும்போது, உண்மையில் இல்லாதபோது குறிப்பு ஒருமைப்பாடு இருப்பதாக நாம் கருதலாம். நீங்கள் விரிதாள் தரவை CSV க்கு ஏற்றுமதி செய்தால், அந்த குறைபாடுள்ள அனுமானங்களைக் கண்டறிய SQL ஐப் பயன்படுத்தலாம். தரவு பரிமாற்றத்திற்கான உலகின் முன்னணி கோப்பு வடிவத்தை வினவ SQL ஐப் பயன்படுத்துவதற்கான முடிவற்ற வழிகளில் இதுவும் ஒன்றாகும்.
பின்னர் Terraform சொருகி வந்தது, இது Terraform கோப்புகளை வினவுகிறது மற்றும் “எந்த தடங்கள் குறியாக்கம் செய்யப்படவில்லை?” போன்ற கேள்விகளுக்கு பதிலளிக்கிறது.
select name, path from terraform_resource where type="aws_cloudtrail" and arguments -> 'kms_key_id' is null;
AWS செருகுநிரலின் aws_cloudtrail_trail அட்டவணையைப் பயன்படுத்தி, பயன்படுத்தப்பட்ட உள்கட்டமைப்பிற்கான அதே கேள்விகளை நாங்கள் கேட்கலாம் மற்றும் பதிலளிக்கலாம், மேலும் நீங்கள் முதல் ஒன்றை UNION செய்யக்கூடிய முடிவைத் தரலாம்.
select name, arn as path from aws_cloudtrail_trail where kms_key_id is null;
வெறுமனே பதில்கள் எப்போதும் ஒரே மாதிரியாக இருக்கும். நீங்கள் கூறியது Terraform ஐப் பயன்படுத்தி பயன்படுத்தப்பட வேண்டும், AWS API ஐ வினவினால், உண்மையில் பயன்படுத்தப்படுவதைப் பொருத்த வேண்டும். நிஜ உலகில், நிச்சயமாக, பராமரிப்பு மற்றும்/அல்லது சம்பவத்தின் பதில் ஏற்படலாம் கட்டமைப்பு ஓட்டம், வரையறுக்கப்பட்ட மற்றும் வரிசைப்படுத்தப்பட்ட உள்கட்டமைப்பைப் பற்றிய ஒரு பொதுவான வழியைக் கருத்தில் கொண்டு, அத்தகைய சறுக்கலை நிரல் ரீதியாக நாம் நிர்வகிக்க முடியும்.
பெல்ட்கள் மற்றும் சஸ்பெண்டர்கள்
பயன்படுத்தப்பட்ட உள்கட்டமைப்பிற்காக, ஸ்டீம்பைப் நீண்ட காலமாக ஏபிஐ-பெறப்பட்ட வெளிநாட்டு அட்டவணைகளில் பாதுகாப்பு மற்றும் இணக்க சோதனைகளைச் செய்யும் மோட்களின் தொகுப்பை வழங்குகிறது. AWS இணக்கப் பயன்முறையானது பதினொரு தரநிலைகள் மற்றும் கட்டமைப்புகளுக்கு எதிராக பயன்படுத்தப்பட்ட உள்கட்டமைப்பைச் சோதிப்பதற்கான வரையறைகளையும் கட்டுப்பாடுகளையும் வழங்குகிறது, எடுத்துக்காட்டாக, CIS, GDPR, HIPAA, NIST 800-53 மற்றும் SOC 2.
டெர்ராஃபார்ம் செருகுநிரலின் வருகையுடன், டெர்ராஃபார்ம் AWS இணக்கம் போன்ற நிரப்பு முறைகளை உருவாக்குவது சாத்தியமானது, இது வரையறுக்கப்பட்ட உள்கட்டமைப்பிற்கான காசோலைகளை ஒத்த வகைகளை வழங்குகிறது.
கடந்த மாதம் நீங்கள் வரையறுத்தது நேற்று நீங்கள் இடுகையிட்டதற்குப் பொருந்துகிறதா? ஒரு திருப்திகரமான பதிலுக்கு, வரையறுக்கப்பட்ட மற்றும் பயன்படுத்தப்பட்ட உள்கட்டமைப்பை பொதுவான மற்றும் உராய்வு இல்லாத முறையில் பகுத்தறியும் திறன் தேவைப்படுகிறது. SQL அனைத்து உராய்வுகளையும் அகற்றாது ஆனால் அது ஒரு சக்திவாய்ந்த கரைப்பான்.
பதிப்புரிமை © 2022 IDG Communications, Inc.