
# CI/CD कार्यप्रवाहों में एआई‑समर्थित अनुपालन एकीकरण

आज के तेज़‑तर्रार SaaS माहौल में, **गति** और **विश्वास** अब अलग‑अलग उद्देश्य नहीं रहे—इन दोनों को साथ‑साथ चलना आवश्यक है। विकास टीमें दिन में कई बार कोड को डिप्लॉय करती हैं, जबकि सुरक्षा और अनुपालन टीमों से अभी भी प्रत्येक बड़े रिलीज़ के बाद विस्तृत ऑडिट दस्तावेज़ बनाने को कहा जाता है। इस असंतुलन से बाधाएँ उत्पन्न होती हैं, डील में देरी होती है, और गैर‑अनुपालन का जोखिम बढ़ता है।

**Procurize** एआई‑चालित प्लेटफ़ॉर्म है जो सुरक्षा प्रश्नावली, नीति दस्तावेज़ और अनुपालन साक्ष्य को एकीकृत करता है। कई ग्राहक पहले से ही बाहरी ऑडिट के उत्तरों को ऑटोमेट करने के लिए Procurize का उपयोग करते हैं; अब एक नई दिशा उभर रही है: **इस ऑटोमेशन को सीधे आपके CI/CD (Continuous Integration / Continuous Deployment) पाइपलाइन में एम्बेड करना**। अनुपालन को कोड के रूप में मानते हुए और वास्तविक‑समय एआई सहायता का उपयोग करते हुए, संगठन **निरंतर सुरक्षा आश्वासन** प्राप्त कर सकते हैं—जैसे वे पहले से ही निरंतर डिलीवरी हासिल कर चुके हैं।

यह लेख बताता है कि CI/CD में अनुपालन ऑटोमेशन को एकीकृत करना क्यों महत्वपूर्ण है, इसे संभव बनाने वाले आर्किटेक्चर पैटर्न को रेखांकित करता है, और कोड स्निपेट्स के साथ एक चरण‑दर‑चरण कार्यान्वयन गाइड प्रदान करता है। चाहे आप **DevSecOps** लीड हों, **CISO**, या प्रोडक्ट मैनेजर, आप एक व्यावहारिक रोडमैप के साथ इस लेख को समाप्त करेंगे जो अनुपालन को पोस्ट‑रिलीज़ चेक‑लिस्ट से **हमेशा‑सक्रिय गार्डरेल** में बदल देगा।

---

## परम्परागत अनुपालन क्यों बाधा है

| परम्परागत उपागम | एआई‑इंटीग्रेटेड CI/CD |
|-------------------|--------------------------|
| रिलीज़ के बाद मैनुअल प्रश्नावली भरना | बिल्ड के समय नीति‑आधारित स्वचालित उत्तर |
| त्रैमासिक केंद्रीय रिपॉज़िटरी अपडेट | वास्तविक‑समय नीति अपडेट तुरंत प्रकट |
| रिलीज़ के बाद हफ़्तों में ऑडिटर्स साक्ष्य माँगते हैं | प्रत्येक बिल्ड आर्टिफैक्ट में साक्ष्य संलग्न |
| अनुपालन टीम गेटकीपर बनकर डिलीवरी धीमी करती है | अनुपालन पाइपलाइन में साझा जिम्मेदारी बन जाता है |

**मुख्य समस्याएँ** :

1. **विलंब** – सुरक्षा साक्ष्य अक्सर रिलीज़ के हफ़्तों बाद बनते हैं, जिससे रिग्रेशन का जोखिम बढ़ता है।  
2. **मानव त्रुटि** – मैनुअल नीति उत्तरों की प्रतिलिपि में असंगतियां उत्पन्न होती हैं।  
3. **डुप्लिकेशन** – ऑडिट और आंतरिक उपयोग के लिए अलग‑अलग नीति दस्तावेज़ बनाते हैं।  
4. **दृश्यता की कमी** – इंजीनियर अक्सर अनुपालन स्थिति नहीं देखते जब तक ऑडिट अनुरोध नहीं आता।

अनुपालन को CI/CD प्रवाह में ले जाकर आप इन समस्याओं को कम कर सकते हैं और अनुपालन को **पूर्वानुमानित, डेटा‑आधारित कार्य** में बदल सकते हैं।

---

## मुख्य अवधारणाएँ: कोड के रूप में नीति, एआई‑जनित उत्तर, और साक्ष्य के रूप में कलाकृतियाँ

1. **कोड के रूप में नीति** – अपनी सुरक्षा नीतियों (जैसे **[SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2)**, **[ISO 27001](https://www.iso.org/standard/27001)**, **[GDPR](https://gdpr.eu/)**) को एक वर्ज़न‑कंट्रोल्ड रिपॉज़िटरी (जैसे Git) में रखें। प्रत्येक नीति को मशीन‑रीडेबल फॉर्मेट (YAML/JSON) में व्यक्त किया जाता है ताकि टूल्स द्वारा पार्स किया जा सके।

2. **एआई‑जनित उत्तर** – Procurize का बड़ा‑भाषा‑मॉडल (LLM) इंजन नीति परिभाषाओं को ingest करके प्रश्नावली आइटम के संक्षिप्त, ऑडिट‑तैयार उत्तर स्वचालित रूप से बनाता है। एआई उत्तरों के साथ confidence स्तर भी देता है, जिससे पता चलता है कि कहाँ मानव रिव्यू आवश्यक है।

3. **साक्ष्य कलाकृतियाँ** – बिल्ड के दौरान पाइपलाइन अपरिवर्तनीय साक्ष्य (जैसे कॉन्फ़िगरेशन स्नैपशॉट, एक्सेस लॉग, टेस्ट रिपोर्ट) उत्पन्न करती है। Procurize इन साक्ष्यों को उत्पन्न उत्तरों से जोड़ता है, जिससे ऑडिटर्स के लिये **एकल सत्य स्रोत** बनता है।

इन तीन परतों से मिलकर एक **निरंतर अनुपालन फीडबैक लूप** बनता है :

```
git push → CI पाइपलाइन → एआई उत्तर जनरेशन → साक्ष्य संलग्न → अनुपालन डैशबोर्ड अपडेट
```

---

## आर्किटेक्चर ब्लूप्रिंट

```mermaid
graph LR
    A[डेवलपर कोड कमिट करता है] --> B["CI सर्वर (Jenkins/GitHub Actions)"]
    B --> C["नीति रिपॉज़िटरी (Git)"]
    B --> D["बिल्ड & टेस्ट स्टेज"]
    D --> E["साक्ष्य कलाकृतियाँ जनरेट करें"]
    C --> F["Procurize नीति इंजन (API)"]
    E --> G["Procurize एआई उत्तर सेवा (API)"]
    F --> G
    G --> H[अनुपालन मेटाडाटा स्टोर]
    H --> I[अनुपालन डैशबोर्ड / ऑडिटर्स]
    style A fill:#f9f,stroke:#333,stroke-width:2px
    style I fill:#bbf,stroke:#333,stroke-width:2px
```

**घटक** :

- **नीति रिपॉज़िटरी** – नीति परिभाषाओं वाली केंद्रीय Git रिपॉज़िटरी (`policies/` फ़ोल्डर)।  
- **CI सर्वर** – बिल्ड, टेस्ट, स्थैतिक विश्लेषण चलाता है और अनुपालन चरण ट्रिगर करता है।  
- **साक्ष्य जनरेटर** – स्क्रिप्ट्स जो JSON/YAML साक्ष्य बनाते हैं (जैसे `evidence/aws-iam.json`)।  
- **Procurize API** – दो एन्डपॉइंट:  
  - `/policies` → नवीनतम नीति सेट अपलोड/फेच।  
  - `/answers` → साक्ष्य भेजें और एआई‑जनित उत्तर प्राप्त करें।  
- **अनुपालन मेटाडाटा स्टोर** – हल्का DB (जैसे DynamoDB) जो प्रत्येक बिल्ड की अनुपालन स्थिति रिकॉर्ड करता है।  
- **डैशबोर्ड** – मौजूदा Procurize UI या कस्टम व्यू जो रिलीज़‑वार अनुपालन दिखाता है।

---

## चरण-बद्ध कार्यान्वयन गाइड

### 1. अपनी नीति रिपॉज़िटरी तैयार करें

नीति फ्रेमवर्क को YAML फ़ाइलों में संग्रहीत करें।

```yaml
# policies/soc2.yaml
framework: SOC 2
controls:
  - id: CC6.1
    description: "डेटा एट रेस्ट का एन्क्रिप्शन"
    requirement: "सभी प्रॉडक्शन डेटा को AES‑256 से एन्क्रिप्ट किया जाना चाहिए।"
    evidence_type: "Encryption Configuration"
  - id: CC6.2
    description: "डेटा एट ट्रांजिट का एन्क्रिप्शन"
    requirement: "सभी बाह्य संचार के लिये TLS 1.2+ लागू होना चाहिए।"
    evidence_type: "TLS Configuration"
```

रिपॉज़िटरी कमिट करें और `main` ब्रांच को प्रोटेक्ट करें; केवल अनुपालन टीम बदल सकती है। डेवलपर्स पाइपलाइन के हिस्से के रूप में नवीनतम नीतियां पुल करेंगे।

### 2. साक्ष्य संग्रह के लिए CI चरण जोड़ें

GitHub Actions का उदाहरण :

```yaml
name: CI
on:
  push:
    branches: [main]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: यूनिट टेस्ट चलाएँ
        run: npm test

  collect-evidence:
    needs: build-and-test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: AWS IAM नीति स्नैपशॉट एक्सपोर्ट करें
        run: |
          aws iam get-account-authorization-details > evidence/aws-iam.json
      - name: TLS कॉन्फ़िग एक्सपोर्ट करें
        run: |
          grep -i 'tls' /etc/nginx/nginx.conf > evidence/tls-config.txt
      - name: साक्ष्य को आर्टिफैक्ट के रूप में अपलोड करें
        uses: actions/upload-artifact@v3
        with:
          name: compliance-evidence
          path: evidence/
```

यह जॉब `evidence/` फ़ोल्डर बनाता है जिसमें नीतियों में दर्शाए गए `evidence_type` के अनुसार JSON या टेक्स्ट फ़ाइलें होती हैं।

### 3. Procurize एआई उत्तर सेवा को बुलाएँ

एक छोटा स्क्रिप्ट (`procurize-submit.sh`) बनाएं जो साक्ष्य पढ़े, Procurize API को कॉल करे, और एआई‑जनित उत्तर को JSON में लिखे।

```bash
#!/usr/bin/env bash
set -euo pipefail

API_KEY="${PROCURIZE_API_KEY}"
POLICY_REPO="https://github.com/yourorg/compliance-policies.git"
EVIDENCE_DIR="evidence"

# नवीनतम नीतियों को फ़ेच करें (यदि आवश्यक हो)
git clone "$POLICY_REPO" policies_tmp
tar -czf policies.tar.gz -C policies_tmp .

# Procurize उत्तर API को कॉल करें
curl -s -X POST "https://api.procurize.com/v1/answers" \
  -H "Authorization: Bearer $API_KEY" \
  -F "policies=@policies.tar.gz" \
  -F "evidence=@${EVIDENCE_DIR}" \
  -o answers.json

# CI में बाद के चरणों के लिए उत्तर को आर्टिफैक्ट बनाकर रखें
jq . answers.json > compliance/answers-${GITHUB_SHA}.json
```

नया CI चरण इस स्क्रिप्ट को चलाएगा और परिणाम को आर्टिफैक्ट के रूप में अपलोड करेगा।

```yaml
  generate-answers:
    needs: collect-evidence
    runs-on: ubuntu-latest
    env:
      PROCURIZE_API_KEY: ${{ secrets.PROCURIZE_API_KEY }}
    steps:
      - uses: actions/checkout@v3
      - name: साक्ष्य आर्टिफैक्ट डाउनलोड करें
        uses: actions/download-artifact@v3
        with:
          name: compliance-evidence
          path: evidence/
      - name: Procurize सबमिशन स्क्रिप्ट चलाएँ
        run: ./procurize-submit.sh
      - name: उत्तर आर्टिफैक्ट अपलोड करें
        uses: actions/upload-artifact@v3
        with:
          name: compliance-answers
          path: compliance/
```

### 4. अनुपालन मेटाडाटा को स्थायी बनाएं

एक हल्का Lambda (या सर्वरलेस फंक्शन) बनाएं जो आर्टिफैक्ट अपलोड इवेंट पर ट्रिगर हो, `answers.json` पढ़े, और DynamoDB में रिकॉर्ड लिखे :

```python
import json, boto3, os

ddb = boto3.resource('dynamodb')
table = ddb.Table(os.getenv('COMPLIANCE_TABLE'))

def handler(event, context):
    # S3 इवेंट मानते हुए जिसमें answers JSON की कुंजी है
    s3 = boto3.client('s3')
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = event['Records'][0]['s3']['object']['key']
    obj = s3.get_object(Bucket=bucket, Key=key)
    answers = json.loads(obj['Body'].read())

    record = {
        'build_id': answers['metadata']['build_id'],
        'status': 'COMPLIANT' if answers['overall_confidence'] > 0.9 else 'REVIEW_NEEDED',
        'timestamp': answers['metadata']['timestamp'],
        'summary': answers['summary']
    }
    table.put_item(Item=record)
    return {'statusCode': 200}
```

अब प्रत्येक बिल्ड का एक सम्बंधित अनुपालन प्रविष्टि होती है, जिसे Procurize डैशबोर्ड या कस्टम UI में देखा जा सकता है।

### 5. गेट लागू करें (वैकल्पिक)

यदि विश्वास स्तर कम है तो पाइपलाइन **फ़ेल** होनी चाहिए। नीचे एक अंतिम चरण है जो DynamoDB क्वेरी करके बिल्ड को रोकता है :

```yaml
  compliance-gate:
    needs: generate-answers
    runs-on: ubuntu-latest
    steps:
      - name: अनुपालन स्थिति जाँचें
        run: |
          STATUS=$(aws dynamodb get-item \
            --table-name ${{ secrets.COMPLIANCE_TABLE }} \
            --key '{"build_id": {"S": "${{ github.sha }}"}}' \
            --query 'Item.status.S')
          if [[ "$STATUS" != "COMPLIANT" ]]; then
            echo "अनुपालन गेट फेल: $STATUS"
            exit 1
          fi
```

यदि गेट पास हो जाता है तो आर्टिफैक्ट प्रोडक्शन में सैंड जाता है; यदि फेल, तो डेवलपर्स को तुरंत फीडबैक मिलता है और वे रिलीज़ से पहले नीति अंतर को ठीक कर सकते हैं।

---

## प्राप्त लाभ

| मेट्रिक | परम्परागत प्रक्रिया | एकीकृत CI/CD प्रक्रिया |
|----------|--------------------|------------------------|
| औसत प्रश्नावली टर्नअराउंड | 10–14 दिन | 2–4 घंटे |
| मैनुअल प्रयास (घंटे) प्रति रिलीज़ | 12–20 घंटे | ≤ 2 घंटे (मुख्यतः रिव्यू) |
| ऑडिट साक्ष्य पूर्णता | 70‑80 % | 95‑100 % |
| अनुपालन‑संबंधी रिलीज़ ब्लॉकर की आवृत्ति | 1 प्रति स्प्रिंट | < 0.1 प्रति स्प्रिंट |

गति के अलावा, यह इंटीग्रेशन **जोखिम को घटाता** है क्योंकि प्रत्येक कमिट नवीनतम नीति सेट के विरुद्ध मूल्यांकित होता है, और **ऑडिटेबिलिटी** में सुधार करता है क्योंकि प्रत्येक बिल्ड से जुड़े अपरिवर्तनीय साक्ष्य जुड़ा होता है।

---

## सामान्य कठिनाइयाँ और उन्हें कैसे टालें

1. **पुरानी नीति कैश** – सुनिश्चित करें कि CI जॉब हमेशा नवीनतम नीति रिपॉज़िटरी पुल करता है। फ्रीज़ या चेकसम के साथ ताज़गी जांचें।  
2. **एआई पर अत्यधिक निर्भरता** – एआई को इस तरह कॉन्फ़िगर करें कि कोई भी उत्तर जिसका confidence थ्रेसहोल्ड (उदाहरण: 85 %) से नीचे हो, उसे फ़्लैग करे। मानव रिव्यू उन मामलों को कवर करे।  
3. **साक्ष्य का आकार बढ़ना** – साक्ष्य को कॉम्प्रेस्ड आर्काइव में रखें और अनुपालन फ्रेमवर्क द्वारा निर्धारित रिटेन्शन पीरियड के बाद पुराने आर्टिफैक्ट को हटाएँ।  
4. **API कुंजियों की सुरक्षा** – Procurize क्रेडेंशियल को CI सीक्रेट स्टोर (GitHub Secrets, Azure Key Vault) में रखें और नियमित रूप से रोटेट करें।

---

## पैटर्न का विस्तार: CI से CD गवर्नेंस तक

जब अनुपालन CI में बेक्ड हो जाता है, तो आप वही गार्डरेल CD (डिप्लॉयमेंट) और रन‑टाइम मॉनिटरिंग में विस्तारित कर सकते हैं :

- **डिप्लॉय‑टाइम नीति वैलिडेशन** – Helm चार्ट रिलीज़ से पहले, कोड‑के‑रूप‑में नीति चेक चलाएँ जो Kubernetes RBAC, नेटवर्क नीति, और सीक्रेट मैनेजमेंट को उसी YAML परिभाषा से वैलिडेट करे जो बिल्ड‑टाइम उपयोग हुई थी।  
- **रन‑टाइम साक्ष्य स्ट्रीमिंग** – एजेंट (जैसे Falco, OpenTelemetry) का उपयोग करके सुरक्षा इवेंट को लगातार Procurize साक्ष्य स्टोर में स्ट्रीम करें, इस प्रकार *निरंतर* अनुपालन लूप पूरा हो।  
- **सेल्फ‑सर्विस अनुपालन पोर्टल** – अनुपालन डैशबोर्ड का रीड‑ओनली व्यू ग्राहकों को दें, जिससे आपका अनुपालन पोस्टर भी एक प्रतिस्पर्धी बिक्री बिंदु बन जाए।

---

## संक्षेप में

- सभी सुरक्षा नीतियों को **कोड‑के‑रूप‑में** Git (YAML/JSON) में रखें।  
- CI चरण जोड़ें जो **अपरिवर्तनीय साक्ष्य** एकत्र करें और उसे Procurize के **एआई उत्तर API** को भेजें।  
- AI‑जनित उत्तर एवं confidence स्कोर को मेटाडाटा स्टोर में सहेजें।  
- **अनुपालन गेट** लागू करें जो उन रिलीज़ को ब्लॉक करे जिनका confidence कम हो।  
- निकट‑रियल‑टाइम ऑडिट‑रेडीनैस, मैनुअल प्रयास में कमी, और तेज़ टाइम‑टू‑मार्केट हासिल करें।

Procurize के एआई‑समर्थित अनुपालन प्लेटफ़ॉर्म को अपने CI/CD वर्कफ़्लो में इंटीग्रेट करके आप अनुपालन को एक कालबंधित चेक‑लिस्ट से **निरंतर, स्वचालित सुरक्षा शील्ड** में बदल देते हैं—जैसे ही आधुनिक DevOps टेस्टिंग, सुरक्षा, और ऑब्ज़र्वबिलिटी को संभालता है।

---

## अन्य देखें

- [NIST CSF को CI/CD पाइपलाइन के साथ इंटीग्रेट करें (NIST SP 800‑53)](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)  
- [GitHub Actions for Secure Software Supply Chains](https://github.com/github/securitylab)  
- [Microsoft Azure Policy as Code Guide](https://learn.microsoft.com/azure/governance/policy/)