- Atomic генерація всіх секретів (generate-all-secrets.sh) - Auth enforcement перевірка (enforce-auth.sh) - Оновлений full flow test (must-pass) - Prometheus alerting rules для Memory Module - Matrix alerts bridge (алерти в ops room) - Policy engine документація для пам'яті Готово до production deployment!
88 lines
3.3 KiB
Bash
Executable File
88 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
||
# Auth Enforcement - перевірка, що всі сервіси вимагають auth
|
||
|
||
set -e
|
||
|
||
echo "🔒 Перевірка Auth Enforcement..."
|
||
echo ""
|
||
|
||
FAILED=0
|
||
|
||
# ============================================================================
|
||
# 1. NATS - перевірка конфігурації
|
||
# ============================================================================
|
||
echo "=== 1. NATS Auth ==="
|
||
|
||
if kubectl get configmap -n nats nats-config -o yaml 2>/dev/null | grep -q "operator:"; then
|
||
echo "✅ NATS operator JWT налаштовано"
|
||
else
|
||
echo "❌ NATS operator JWT НЕ налаштовано"
|
||
FAILED=1
|
||
fi
|
||
|
||
if kubectl get secret -n nats nats-operator-jwt 2>/dev/null | grep -q "operator.jwt"; then
|
||
echo "✅ NATS operator JWT Secret існує"
|
||
else
|
||
echo "❌ NATS operator JWT Secret НЕ існує"
|
||
FAILED=1
|
||
fi
|
||
|
||
# ============================================================================
|
||
# 2. Memory Service - перевірка JWT
|
||
# ============================================================================
|
||
echo ""
|
||
echo "=== 2. Memory Service JWT ==="
|
||
|
||
if kubectl get secret -n daarion memory-service-secrets 2>/dev/null | grep -q "jwt_secret"; then
|
||
echo "✅ Memory Service JWT secret існує"
|
||
else
|
||
echo "❌ Memory Service JWT secret НЕ існує"
|
||
FAILED=1
|
||
fi
|
||
|
||
# Тест: запит без JWT має бути відхилено
|
||
echo "Тест: запит без JWT..."
|
||
MEMORY_SERVICE_URL=$(kubectl get svc -n daarion memory-service -o jsonpath='{.spec.clusterIP}' 2>/dev/null || echo "")
|
||
if [ -n "$MEMORY_SERVICE_URL" ]; then
|
||
RESPONSE=$(kubectl run test-auth --image=curlimages/curl --rm -i --restart=Never -- curl -s -o /dev/null -w "%{http_code}" "http://$MEMORY_SERVICE_URL:8000/memories" 2>/dev/null || echo "000")
|
||
if [ "$RESPONSE" = "401" ] || [ "$RESPONSE" = "403" ]; then
|
||
echo "✅ Memory Service відхиляє запити без JWT"
|
||
else
|
||
echo "⚠️ Memory Service приймає запити без JWT (auth не enforced)"
|
||
FAILED=1
|
||
fi
|
||
else
|
||
echo "⚠️ Memory Service не знайдено (може бути нормально)"
|
||
fi
|
||
|
||
# ============================================================================
|
||
# 3. Qdrant - перевірка API key
|
||
# ============================================================================
|
||
echo ""
|
||
echo "=== 3. Qdrant API Key ==="
|
||
|
||
if kubectl get secret -n qdrant qdrant-api-keys 2>/dev/null | grep -q "memory-service-key"; then
|
||
echo "✅ Qdrant API keys Secret існує"
|
||
else
|
||
echo "❌ Qdrant API keys Secret НЕ існує"
|
||
FAILED=1
|
||
fi
|
||
|
||
# ============================================================================
|
||
# Підсумок
|
||
# ============================================================================
|
||
echo ""
|
||
if [ $FAILED -eq 0 ]; then
|
||
echo "✅ Всі перевірки пройдено - Auth enforcement активний"
|
||
exit 0
|
||
else
|
||
echo "❌ Деякі перевірки не пройдено - Auth enforcement НЕ активний"
|
||
echo ""
|
||
echo "Дії:"
|
||
echo " 1. Запустіть: infrastructure/auth/generate-all-secrets.sh"
|
||
echo " 2. Завантажте секрети в Vault"
|
||
echo " 3. Оновіть External Secrets Operator"
|
||
echo " 4. Застосуйте auth конфігурації"
|
||
exit 1
|
||
fi
|