Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
repokid — वितरित, उच्च-गति परिनियोजन के लिए AWS न्यूनतम विशेषाधिकार | Kitploit
उपकरण/GitHubGitHub/netflix/repokid
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगक्लाउड सुरक्षाDevSecOpsपहचान और एक्सेस प्रबंधन (IAM)
GitHubnetflix/repokid

repokid

वितरित, उच्च-गति परिनियोजन के लिए AWS न्यूनतम विशेषाधिकार

रिपॉजिटरी देखें
1.1k105165 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Repokid

NetflixOSS Lifecycle Build Status PyPI version Coverage Status Discord chat

Repokid Logo

Repokid, AWS खाते में IAM भूमिकाओं की इनलाइन नीतियों से अप्रयुक्त सेवाओं तक पहुँच प्रदान करने वाली अनुमतियों को हटाने के लिए Aardvark द्वारा प्रदान किए गए Access Advisor का उपयोग करता है।

आरंभ करना

स्थापित करें

mkvirtualenv repokid
git clone [email protected]:Netflix/repokid.git
cd repokid
pip install -e .
repokid config config.json

DynamoDB

आपको repokid_roles नामक एक DynamoDB तालिका की आवश्यकता होगी (कॉन्फ़िग फ़ाइल में dynamo_db में खाता और एंडपॉइंट निर्दिष्ट करें)।

तालिका में निम्नलिखित गुण होने चाहिए:

  • RoleId (स्ट्रिंग) प्राथमिक विभाजन कुंजी के रूप में, कोई प्राथमिक सॉर्ट कुंजी नहीं
  • Account नामक एक वैश्विक द्वितीयक सूचकांक जिसमें प्राथमिक विभाजन कुंजी Account है और RoleId तथा Account अनुमानित विशेषताओं के रूप में हैं
  • RoleName नामक एक वैश्विक द्वितीयक सूचकांक जिसमें प्राथमिक विभाजन कुंजी RoleName है और RoleId तथा RoleName अनुमानित विशेषताओं के रूप में हैं

विकास के लिए, आप DynamoDB को स्थानीय रूप से चला सकते हैं।

स्थानीय रूप से चलाने के लिए:

docker-compose up

DynamoDB के लिए एंडपॉइंट http://localhost:8000 होगा। एक DynamoDB एडमिन पैनल http://localhost:8001 पर पाया जा सकता है।

यदि आप विकास संस्करण चलाते हैं तो तालिका और सूचकांक आपके लिए स्वचालित रूप से बनाए जाएँगे।

IAM अनुमतियाँ

Repokid को प्रत्येक खाते में एक IAM भूमिका की आवश्यकता होती है जिससे पूछताछ की जाएगी। इसके अतिरिक्त, Repokid को एक ऐसी भूमिका या उपयोगकर्ता के साथ लॉन्च किया जाना चाहिए जो विभिन्न खाता भूमिकाओं में sts:AssumeRole कॉल कर सके।

RepokidInstanceProfile:

  • केवल एक बनाएँ।
  • सभी RepokidRole में sts:AssumeRole कॉल करने की क्षमता आवश्यक है।
  • repokid_roles तालिका और सभी सूचकांकों के लिए DynamoDB अनुमतियाँ (कॉन्फ़िग में dynamo_db के assume_role उपखंड में निर्दिष्ट) और dynamodb:ListTables चलाने की क्षमता।

RepokidRole:

  • Repokid द्वारा प्रबंधित किए जाने वाले प्रत्येक खाते में मौजूद होना चाहिए।
  • एक विश्वास नीति होनी चाहिए जो RepokidInstanceProfile की अनुमति देती है।
  • कॉन्फ़िग फ़ाइल में connection_iam में नाम निर्दिष्ट होना चाहिए।
  • इन अनुमतियाँ हैं:
{
 "Version": "2012-10-17",
 "Statement": [
   {
     "Action": [
       "iam:DeleteInstanceProfile",
       "iam:DeleteRole",
       "iam:DeleteRolePolicy",
       "iam:GetAccountAuthorizationDetails",
       "iam:GetInstanceProfile",
       "iam:GetRole",
       "iam:GetRolePolicy",
       "iam:ListInstanceProfiles",
       "iam:ListInstanceProfilesForRole",
       "iam:ListRolePolicies",
       "iam:PutRolePolicy",
       "iam:UpdateRoleDescription"
     ],
     "Effect": "Allow",
     "Resource": "*"
   }
 ]
}

इसलिए यदि आप n खातों की निगरानी कर रहे हैं, तो आपको हमेशा n+1 भूमिकाओं की आवश्यकता होगी। (n RepokidRole और 1 RepokidInstanceProfile)।

config.json संपादित करना

repokid config config.json चलाने पर एक फ़ाइल बनती है जिसे आपको संपादित करना होगा। इन फ़ील्ड को खोजें और अपडेट करें:

  • dynamodb: यदि DynamoDB स्थानीय रूप से उपयोग कर रहे हैं, तो एंडपॉइंट http://localhost:8010 पर सेट करें। यदि AWS होस्टेड DynamoDB का उपयोग कर रहे हैं, तो region, assume_role, और account_number सेट करें।
  • aardvark_api_location: आपके Aardvark REST API का स्थान। जैसे https://aardvark.yourcompany.net/api/1/advisors
  • connection_iam: assume_role को RepokidRole पर सेट करें, या जो भी आपने इसे कहा है।

वैकल्पिक कॉन्फ़िगरेशन

Repokid फ़िल्टर का उपयोग यह तय करने के लिए करता है कि कौन सी भूमिकाएँ repo किए जाने के लिए उम्मीदवार हैं। फ़िल्टर को आपके वातावरण के अनुसार कॉन्फ़िगर किया जा सकता है जैसा कि नीचे वर्णित है।

ब्लॉकलिस्ट फ़िल्टर

ब्लॉकलिस्ट फ़िल्टर में जोड़कर भूमिकाओं को बाहर रखा जा सकता है। किसी भूमिका को बाहर करने का एक सामान्य कारण यह है कि संबंधित कार्यभार कभी-कभी ऐसे कार्य करता है जो देखे नहीं गए होंगे लेकिन आवश्यक माने जाते हैं। भूमिका को बाहर करने के दो तरीके हैं:

  • सभी खातों के लिए भूमिका का नाम बाहर करें: इसे कॉन्फ़िगरेशन filter_config.BlocklistFilter.all की सूची में जोड़ें।
  • विशिष्ट खाते के लिए भूमिका का नाम बाहर करें: इसे कॉन्फ़िगरेशन filter_config.BlocklistFilter.<ACCOUNT_NUMBER> की सूची में जोड़ें।

ब्लॉकलिस्ट को S3 ब्लॉकलिस्ट फ़ाइल में भी बनाए रखा जा सकता है। उन्हें निम्नलिखित रूप में होना चाहिए:

{
  "arns": ["arn1", "arn2"],
  "names": {"role_name_1": ["all", "account_number_1"], "role_name_2": ["account_number_2", "account_number_3"]}
}

अनन्य फ़िल्टर

यदि आप केवल कुछ भूमिकाओं को repo करना पसंद करते हैं तो आप अनन्य फ़िल्टर (Exclusive Filter) का उपयोग कर सकते हैं। हो सकता है कि आप केवल उत्पादन में या कुछ टीमों द्वारा उपयोग की जाने वाली भूमिकाओं पर विचार करना चाहें। repo-ing के लिए भूमिकाओं का चयन करने के लिए आप कॉन्फ़िगरेशन फ़ाइलों में उनके नाम सूचीबद्ध कर सकते हैं। शेल शैली के ग्लोब पैटर्न भी समर्थित हैं। भूमिका चयन को प्रत्येक खाते के लिए अलग-अलग या वैश्विक रूप से निर्दिष्ट किया जा सकता है। इस फ़िल्टर को सक्रिय करने के लिए कॉन्फ़िग फ़ाइल के active_filters अनुभाग में "repokid.filters.exclusive:ExclusiveFilter" डालें। इसे कॉन्फ़िगर करने के लिए आप स्वचालित रूप से उत्पन्न कॉन्फ़िग फ़ाइल से शुरू कर सकते हैं, जिसमें "filter_config" अनुभाग में एक उदाहरण कॉन्फ़िग है:

"ExclusiveFilter": {
                   "all": [
                     "<GLOB_PATTERN>"
                     ],
                   "<ACCOUNT_NUMBER>": [
                     "<GLOB_PATTERN>"
                    ]
                   }

आयु फ़िल्टर

डिफ़ॉल्ट रूप से आयु फ़िल्टर उन भूमिकाओं को बाहर करता है जो 90 दिनों से छोटी हैं। इसे बदलने के लिए कॉन्फ़िग सेटिंग संपादित करें: filter_config.AgeFilter.minimum_age।

सक्रिय फ़िल्टर

आंतरिक तर्क का समर्थन करने के लिए नए फ़िल्टर बनाए जा सकते हैं। Netflix पर हमारे पास कई हैं जो हमारे उपयोग के मामलों के लिए विशिष्ट हैं। उन्हें सक्रिय बनाने के लिए सुनिश्चित करें कि वे Python पथ में हैं और उन्हें कॉन्फ़िगरेशन में active_filters अनुभाग की सूची में जोड़ें।

Repokid का विस्तार करना

हुक

Repokid हुक के माध्यम से विस्तार योग्य है जो विभिन्न कार्यों से पहले, दौरान और बाद में कॉल किए जाते हैं जैसा कि नीचे सूचीबद्ध है।

हुक नामप्रसंग
AFTER_REPOभूमिका, त्रुटियाँ
AFTER_REPO_ROLESभूमिकाएँ, त्रुटियाँ
BEFORE_REPO_ROLESखाता_संख्या, भूमिकाएँ
AFTER_SCHEDULE_REPOभूमिकाएँ
DURING_REPOABLE_CALCULATIONभूमिका_आईडी, arn, खाता_संख्या, भूमिका_नाम, संभावित_रीपो_योग्य_अनुमतियाँ, न्यूनतम_आयु
DURING_REPOABLE_CALCULATION_BATCHभूमिका_बैच, संभावित_रीपो_योग्य_अनुमतियाँ, न्यूनतम_आयु

हुक को निम्नलिखित इंटरफ़ेस का पालन करना चाहिए:

from repokid.hooks import implements_hook
from repokid.types import RepokidHookInput, RepokidHookOutput

@implements_hook("TARGET_HOOK_NAME", 1)
def custom_hook(input_dict: RepokidHookInput) -> RepokidHookOutput:
    """हुक फ़ंक्शन को लक्ष्य हुक के आधार पर ऊपर सूचीबद्ध कुंजियों वाले एक डिक्ट के साथ कॉल किया जाता है।
    इनपुट में किए गए कोई भी उत्परिवर्तन और आउटपुट में लौटाए गए, बाद के हुक फ़ंक्शन में पास कर दिए जाएँगे।
    """
    ...

हुक कार्यान्वयन के उदाहरण repokid.hooks.loggers में पाए जा सकते हैं।

फ़िल्टर

टूल डाउनलोड करें