Documentation Index
Fetch the complete documentation index at: https://docs.crewai.com/llms.txt
Use this file to discover all available pages before exploring further.
نظرة عامة
يُكوِّن هذا الدليل AWS Secrets Manager كمزود أسرار باستخدام Workload Identity Federation: تُصدر CrewAI Platform رموز OIDC قصيرة الأمد، وتُبادلها للحصول على بيانات اعتماد AWS عبر STS، وتقرأ أسرارك — دون تخزين أي مفتاح وصول AWS طويل الأمد في أي مكان.لماذا هذا المسار: تُحَلّ الأسرار وقت تنفيذ الأتمتة، لذا تنتشر القيم المُدوَّرة إلى الإطلاق التالي بدون إعادة نشر. إن كنت تحتاج فقط بيانات اعتماد ثابتة ولا تهتم بانتشار التدوير، راجع الدليل الأبسط AWS — المفاتيح الثابتة / AssumeRole.
كيف يعمل وقت التشغيل
- يطلب عامل النشر JWT OIDC طازج من CrewAI Platform.
- يستدعي العامل
sts:AssumeRoleWithWebIdentityعلى دور IAM الذي ستُعدّه أدناه، مُقدِّماً الـ JWT. - تتحقق AWS STS من الـ JWT مقابل مُصدر OIDC العام لـ CrewAI Platform (لذا يجب أن يكون تنصيب منصتك قابلاً للوصول من AWS)، ثم تُعيد بيانات اعتماد AWS قصيرة الأمد.
- يستخدم العامل تلك البيانات لاستدعاء
secretsmanager:GetSecretValue. - تُحقن القيمة المجلوبة كقيمة لمتغير البيئة لإطلاق الأتمتة ذاك.
المتطلبات المسبقة
قبل البدء، تأكد من امتلاكك:
- يجب أن تتضمن صورة حاوية الأتمتة إصدار CrewAI runtime رقم
1.14.5أو أحدث. - حساب AWS لديه إذن إنشاء مزوّدي OIDC وأدوار وسياسات IAM.
- منطقة AWS التي تعيش (أو ستعيش) فيها أسرارك، مثلاً
us-east-1. - مؤسسة على CrewAI Platform يمتلك مستخدمك فيها إذني
workload_identity_configs: manageوsecret_providers: manage. راجع الأذونات (RBAC). - UUID مؤسسة CrewAI الخاصة بك. يمكنك العثور عليه في صفحة إعدادات المؤسسة في CrewAI Platform — تُربط سياسة الثقة في الخطوة 3 دور IAM بهذه المؤسسة تحديداً.
- يجب أن يكون تنصيب CrewAI Platform قابلاً للوصول من AWS عبر HTTPS ليتمكّن AWS STS من جلب وثيقة اكتشاف OIDC و JWKS أثناء التحقق من الرمز. تأكد مع مسؤول المنصة من أن المضيف متاح عبر الإنترنت (أو أن AWS يمكنه الوصول إليه شبكياً عبر VPC peering أو ما يعادله).
الخطوة 1 — العثور على عنوان مُصدر OIDC لـ CrewAI Platform
ينشر تنصيب CrewAI Platform وثيقة اكتشاف OpenID Connect علىhttps://<your-platform-host>/.well-known/openid-configuration. الحقل issuer في تلك الوثيقة هو الرابط الذي ستُسجِّله AWS كمزود OIDC موثوق.
افتح الرابط في المتصفح (مع استبدال <your-platform-host> بمضيفك الفعلي، مثلاً app.crewai.com):
issuer — ستستخدمها في الخطوة 3.
الخطوة 2 — تسجيل CrewAI Platform كمزود هوية OIDC في IAM
افتح وحدة تحكم IAM ← Identity providers وانقر على Add provider.- Provider type: OpenID Connect.
- Provider URL: قيمة
issuerمن الخطوة 1 (مثلاًhttps://app.crewai.com). - Audience:
sts.amazonaws.com
لا تتحقق AWS فعلياً من بصمة الإبهام لاستدعاءات STS WebIdentity — فهي دائماً تُعيد جلب JWKS وقت التحقق — لكن واجهة الـ API تتطلب وجود الحقل.
الخطوة 3 — إنشاء دور IAM
احفظ كـtrust-policy.json، مع استبدال <YOUR_ACCOUNT_ID> و <your-platform-host> (مضيف المُصدر بدون https:// أو http://، مثلاً app.crewai.com) و <YOUR_CREWAI_ORG_UUID> (من المتطلبات المسبقة):
aws_role_arn الخاص بك. ستلصقه في CrewAI Platform في الخطوة 6.
الخطوة 4 — إنشاء وإرفاق سياسة IAM لوصول Secrets Manager + KMS
احفظ كـsecrets-policy.json، مع استبدال العناصر النائبة بمعرّف حسابك ومنطقتك وبادئة اسم السر و ARN(s) مفاتيح KMS التي تُشفّر تلك الأسرار:
SecretsManagerListForUI ميزة الاقتراح التلقائي لاسم السر في نموذج متغيرات البيئة وزر Test Connection على بيانات الاعتماد. يقبل secretsmanager:ListSecrets فقط Resource: "*" — فهو محصور على مستوى الحساب في طبقة IAM.
أرفق السياسة بالدور إما عبر CLI (سياسة مضمنة، أبسط) أو واجهة الوحدة؛ للبيئات التي تعيد استخدام نفس الأذونات عبر أدوار متعددة، استخدم علامة التبويب Managed policy لسياسة مُسمّاة قابلة لإعادة الاستخدام.
- سياسة مضمنة (CLI)
- سياسة مُدارة (CLI، قابلة لإعادة الاستخدام)
- وحدة التحكم (UI)
الخطوة 5 — إنشاء سر واحد على الأقل في AWS
إذا لم يكن لديك سر للاختبار، أنشئ واحداً الآن:الخطوة 6 — إضافة تكوين Workload Identity في CrewAI Platform
في CrewAI Platform، انتقل إلى Settings ← Workload Identity وانقر على Add Workload Identity Config. املأ النموذج:- Name: اسم وصفي، مثلاً
aws-prod. - Cloud Provider:
AWS. - AWS Role ARN: Role Arn من الخطوة 3.
- AWS Region: المنطقة التي تعيش فيها أسرارك، مثلاً
us-east-1. - (اختياري) حدّد Set as default for AWS إذا كنت ترغب في أن يكون تكوين WI هذا هو الافتراضي المُحدَّد عند إنشاء بيانات اعتماد سر مدعومة بـ AWS.
الخطوة 7 — إضافة بيانات اعتماد مزود أسرار مرتبطة بتكوين WI
انتقل إلى Settings ← Secret Provider Credentials وانقر على Add Credential. املأ النموذج:- Name: اسم وصفي، مثلاً
aws-prod-wi. - Provider:
AWS Secrets Manager. - Authentication Method:
Workload Identity(بدلاً من المفاتيح الثابتة / AssumeRole). - Workload Identity Configuration: اختر التكوين الذي أنشأته في الخطوة 6 (مثلاً
aws-prod). - (اختياري) حدّد Set as default credential for this provider.
الخطوة 8 — اختبار الاتصال
بعد حفظ بيانات الاعتماد، انقر على Test Connection. لبيانات اعتماد workload-identity، يتحقق هذا من مصافحة OIDC: تُصدر CrewAI Platform JWT، وتبادله مع AWS STS عبرsts:AssumeRoleWithWebIdentity، وتؤكد أن بيانات الاعتماد الناتجة يمكنها استدعاء sts:GetCallerIdentity مقابل الدور المُفترَض. نتيجة خضراء تعني أن ارتباط الاتحاد سليم.
نجاح Test Connection يُثبت أن سياسة الثقة وتسجيل مزود OIDC وشرط الجمهور موصولة جميعها بشكل صحيح. لا يُثبت ذلك أن IAM لكل سر صحيح — يُمارَس secretsmanager:GetSecretValue على ARN سر محدد بشكل منفصل عندما يُحَلّ متغير بيئة عند الإطلاق. راجع استكشاف الأخطاء لأنماط فشل المصافحة.
الخطوة 9 — الإشارة إلى السر في متغير بيئة
الآن أَشِر إلى السر على أتمتة، تماماً كما تفعل مع أي متغير بيئة مدعوم بمدير أسرار. راجع استخدام مدير الأسرار لحقول النموذج والسلوك. الفرق الوحيد بين متغيرات البيئة المدعومة بـ WI والمدعومة بمفاتيح ثابتة هو متى يُقرأ السر:- مدعوم بـ WI: تُقرأ قيمة السر طازجة في كل إطلاق أتمتة.
- مدعوم بمفاتيح ثابتة: تُقرأ قيمة السر وقت النشر وتُدمج في صورة النشر.
الخطوة 10 — التحقق من التدوير
بعد تشغيل عملية النشر، دوّر السر في AWS:"rotated value" — بدون إعادة نشر ولا إعادة تشغيل عامل ولا انتظار TTL.
للتأكد في السجلات (إذا كان لديك وصول إلى العامل)، ابحث عن:
GetSecretValue طازج مقابل AWS.
استكشاف الأخطاء
| العَرَض | السبب المحتمل |
|---|---|
| يفشل Test Connection بخطأ مصافحة | رُفض استدعاء sts:AssumeRoleWithWebIdentity. تحقق من أن ARN الكيان الموحَّد في سياسة الثقة يشير إلى oidc-provider/<your-platform-host> (المضيف بدون https:// أو http:// وبدون شرطة مائلة لاحقة)، وأن شرط الجمهور هو بالضبط sts.amazonaws.com، وأن شرط sub يطابق UUID مؤسسة CrewAI الخاصة بك، وأن رابط اكتشاف OIDC للمنصة قابل للوصول من AWS عبر الإنترنت العام. |
InvalidIdentityToken: Couldn't retrieve verification key from your identity provider | لا يمكن لـ AWS STS الوصول إلى مضيف CrewAI Platform لجلب JWKS. تأكد من أن المضيف متاح عبر الإنترنت من AWS، وأن رابط اكتشاف OIDC يُعيد 200، وأن نقطة نهاية JWKS قابلة للوصول. |
AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity | عدم تطابق سياسة الثقة. تحقق من الخطوة 3 من جديد: يجب أن يتضمن ARN الكيان الموحَّد oidc-provider/<your-platform-host> (المضيف بدون https:// أو http:// وبدون شرطة مائلة لاحقة)، ويجب أن يكون شرط الجمهور بالضبط sts.amazonaws.com، وأن يساوي شرط sub بالضبط organization:<YOUR_CREWAI_ORG_UUID>. |
يُظهر الاقتراح التلقائي لاسم السر AccessDenied: secretsmanager:ListSecrets | يفتقد الدور إلى secretsmanager:ListSecrets مع Resource: "*". أضف بيان SecretsManagerListForUI من الخطوة 4. |
| يفشل الإطلاق في حلّ سر رغم نجاح Test Connection | ارتباط WI سليم، لكن IAM المحصور بالمورد مفقود على السر الفاشل. راجع أذونات secretsmanager:GetSecretValue و kms:Decrypt للدور على ARN ذلك السر بعينه ومفتاح KMS الخاص به. |
RegionDisabledException / لم يُعثر على أسرار | لا تطابق المنطقة في تكوين Workload Identity المكان الفعلي للسر. تحقق من الخطوة 6 من جديد. |
| لا تُلتقط القيمة المُدوَّرة في الإطلاق التالي | تأكد من أن متغير البيئة على الأتمتة يشير إلى بيانات اعتماد مدعومة بـ Workload Identity (وليس بيانات اعتماد بمفاتيح ثابتة). يدمج المسار الثابت القيم في صورة النشر. |
روابط مرجعية
- AWS: Creating OpenID Connect (OIDC) identity providers
- AWS: Configuring a role for OpenID Connect federation
- AWS: STS:AssumeRoleWithWebIdentity API reference
الخطوات التالية
- استخدام الأسرار في متغيرات البيئة وإدارة الأذونات
- للتنوع متعدد السحاب، راجع أيضاً GCP Workload Identity Federation و Azure Workload Identity Federation.
