الانتقال إلى المحتوى الرئيسي

Documentation Index

Fetch the complete documentation index at: https://docs.gorbit.cloud/llms.txt

Use this file to discover all available pages before exploring further.

يوفر استخدام AWS RDS قاعدة بيانات PostgreSQL مُدارة لـ Gorbit. يغطي هذا الدليل المصادقة الأساسية ومصادقة IAM للأمان المحسّن.

الدليل

1

إنشاء مثيل PostgreSQL RDS

انتقل إلى وحدة تحكم Amazon RDS وأنشئ قاعدة بيانات PostgreSQL جديدة.
  • انقر Create database
  • اختر PostgreSQL كنوع المحرك
  • اختر Standard create كطريقة إنشاء
  • اختر إصدار PostgreSQL المفضل لديك
  • اختر قالب Production أو Dev/Test حسب الحاجة
2

تكوين إعدادات قاعدة البيانات

قم بإعداد معرف قاعدة البيانات وبيانات الاعتماد وتكوين المثيل.الإعدادات:
  • اضبط DB instance identifier وصفياً مثل gorbit-prod-db
  • اضبط Master username (مثلاً، postgres)
  • اضبط Master password قويًا وأكده
تكوين المثيل:
  • اختر Instance class مناسب (مثلاً، db.t3.micro للاختبار، db.t3.medium للإنتاج)
  • قم بتكوين حجم Storage وفعّل التوسع التلقائي إذا لزم الأمر
احفظ بيانات اعتماد قاعدة البيانات بشكل آمن - ستحتاجها لتكوين Gorbit.
3

تكوين الاتصال والأمان

قم بإعداد الوصول إلى الشبكة ومجموعات الأمان لقاعدة البيانات.
  • اختر VPC و Subnet group
  • قم بتكوين VPC security group للسماح بالوصول من مثيل Gorbit الخاص بك
  • اضبط Public access على “No” للإنتاج (موصى به)
  • اختر Availability Zone المفضل لديك
انقر Create database لتشغيل مثيل RDS.
4

تكوين متغيرات بيئة Gorbit

بمجرد تشغيل مثيل RDS، قم بتكوين Gorbit للاتصال به.احصل على تفاصيل قاعدة البيانات من وحدة تحكم RDS:
  • Endpoint: موجود في تفاصيل مثيل RDS
  • Port: عادةً 5432
  • Database name: اسم قاعدة البيانات أو postgres إذا كنت تستخدم الافتراضي
لنشر Docker، أضف هذه المتغيرات إلى ملف .env:
USE_IAM_AUTH=false
POSTGRES_HOST=<your-rds-endpoint>
POSTGRES_PORT=5432
POSTGRES_DB=<your-database-name>
POSTGRES_USER=<your-master-username>
POSTGRES_PASSWORD=<your-master-password>
لنشر EKS، أضف هذه إلى ملف values.yaml:
auth:
  secrets:
    POSTGRES_PASSWORD: "<your-master-password>"
configMap:
  USE_IAM_AUTH: "false"
  POSTGRES_HOST: "<your-rds-endpoint>"
  POSTGRES_PORT: "5432"
  POSTGRES_DB: "<your-database-name>"
  POSTGRES_USER: "<your-master-username>"
سيتصل Gorbit الآن بمثيل PostgreSQL RDS باستخدام بيانات الاعتماد هذه.

اختياري: تفعيل مصادقة IAM

للأمان المحسّن، يمكنك تفعيل مصادقة قاعدة بيانات IAM بدلاً من استخدام كلمات مرور ثابتة. يتيح هذا لـ Gorbit الاتصال باستخدام بيانات اعتماد IAM قصيرة العمر.
1

تفعيل مصادقة IAM على RDS

انتقل إلى مثيل RDS في وحدة تحكم AWS وفعل مصادقة IAM.
  • اذهب إلى مثيل PostgreSQL RDS
  • انقر Modify
  • تحت Database authentication، فعّل IAM database authentication
  • انقر Continue، ثم Apply immediately
2

إنشاء مستخدم قاعدة بيانات IAM

اتصل بقاعدة البيانات وأنشئ مستخدمًا لمصادقة IAM.باستخدام بيانات الاعتماد الرئيسية، قم بتشغيل أوامر SQL هذه:
CREATE ROLE gorbituser LOGIN;
GRANT rds_iam TO gorbituser;
ALTER ROLE gorbituser WITH NOINHERIT;
GRANT CREATE ON DATABASE <your-db-name> TO gorbituser;
GRANT USAGE ON SCHEMA public TO gorbituser;
GRANT CREATE ON SCHEMA public TO gorbituser;
3

تكوين سياسة IAM

أنشئ سياسة IAM للسماح باتصالات قاعدة البيانات.احصل على DbiResourceId أو DbClusterResourceId:
aws rds describe-db-instances \
  --db-instance-identifier <your-db-instance-name> \
  --region <your-region>
أنشئ سياسة IAM هذه، املأ region و account-id و resource-id، وأرفقها بدور مثيل EC2:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "rds-db:connect",
      "Resource": "arn:aws:rds-db:<region>:<account-id>:dbuser:<resource-id>/gorbituser"
    }
  ]
}
4

تحميل شهادة SSL

حمّل حزمة شهادة CA لـ RDS للاتصالات الآمنة.
wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
شهادة SSL مطلوبة لكي تعمل مصادقة IAM بشكل صحيح.
5

تكوين Gorbit لمصادقة IAM

حدّث متغيرات البيئة لاستخدام مصادقة IAM.لنشر Docker، أضف هذه المتغيرات إلى ملف .env:
USE_IAM_AUTH=true
AWS_REGION=<your-region>
POSTGRES_HOST=<your-rds-endpoint>
POSTGRES_PORT=5432
POSTGRES_DB=<your-database-name>
POSTGRES_USER=gorbituser
ثبت شهادة SSL في ملف docker-compose.yml:
docker-compose-prod.yml
services:
  api_server:
    volumes:
      - ./rds-combined-ca-bundle.pem:/app/bundle.pem:ro
لنشر Kubernetes، أضف هذه إلى ملف values.yaml:
configMap:
  USE_IAM_AUTH: "true"
  AWS_REGION: "<your-region>"
  POSTGRES_HOST: "<your-rds-endpoint>"
  POSTGRES_PORT: "5432"
  POSTGRES_DB: "<your-database-name>"
  POSTGRES_USER: "gorbituser"
أنشئ سر لشهادة SSL وثبتها:
kubectl create secret generic bundle-pem-secret --from-file=rds-combined-ca-bundle.pem
بعد ذلك، سنثبت الشهادة في جميع حاوياتنا في ملف values.yaml.انتقل عبر كل حاوية واستبدل volumes و volumeMounts الفارغة بالتالي:
volumes:
- name: rds-ca
    secret:
      secretName: bundle-pem-secret

volumeMounts:
  - name: rds-ca
    mountPath: "/app/bundle.pem"
    subPath: bundle.pem
    readOnly: true
6

إعادة تشغيل Gorbit

أعِد تشغيل مثيل Gorbit لتطبيق التغييرات.
Docker
docker compose -f docker-compose.dev.yml -p gorbit-stack up -d --build --force-recreate
kubectl
kubectl rollout restart deployment
لمزيد من التفاصيل، راجع وثائق مصادقة IAM لـ AWS RDS.