Table of Contents
وقد أدى الحساب غير المستقر إلى تغيير طريقة قيام المنظمات ببناء ونشر الطلبات، ومن خلال تقلص إدارة الهياكل الأساسية، يتيح للمطورين التركيز على المدونة في حين يتولى مقدم الخدمات السحابية رفع مستوى الطلبات أو التصحيح أو توافرها، غير أن هذا التحول يطرح تحديات أمنية جديدة، لا سيما فيما يتعلق بمراقبة الدخول، وفي بيئة لا تحصى، تكون المهام ذات طابع نصفي، أو دنيوي، وكثيرا ما يتذرع بها مجموعة متنوعة من طلبات الوصول إلى الشبكة.
ما هو التحكم في الدخول على أساس الأدوار؟
(و) التحكم في الوصول على أساس الأدوار هو نموذج أمني يمنح التصاريح للأدوار بدلاً من فرادى المستخدمين، ثم يُجمع المستعملون في أدوار تستند إلى وظائفهم الوظيفية، وتحدد هذه الأدوار الإجراءات التي يمكن أن يؤدوها على أساسها الموارد، مثلاً في نظام معالجة الوثائق بدون خواديم، يمكن أن يكون لدور [FLT:]() الإذن بالتذرع بأي وظيفة من الوظائف
وتُعرَّف اتفاقية روتردام بموجب ثلاثة قواعد أساسية هي:
- Role assignment:] A subject can exercise a permission only if the subject has been assigned a role that includes that permission.
- يجب أن يكون هناك دور نشط في الموضوع
- الإذن بالإرسال: يمكن للشخص ممارسة الأذن فقط إذا كان الإذن مسموحاً له بدور نشط في الموضوع.
Why Serverless Amplifies Access Control Challenges
وكثيرا ما تكون التطبيقات الاحتكارية التقليدية نقطة دخول واحدة، مما يجعلها مباشرة لإنفاذ التوثيق والترخيص القائمين على أساس متوسط، أما الطلبات التي لا تُستخدم، على النقيض من ذلك، فهي تتألف من عشرات أو مئات من الوظائف الصغيرة عديمة الجنسية، ويمكن الاستناد إليها مباشرة، ويخلق هذا التصنيف عدة عقبات:
- Decentralized permission management:] Each function may require its own set of permissions to interact with databases, queues, or external APIs. Manually managing these across functions becomes unfeasible at scale.
- Dynamic resource access:] Functions may need to access different resources depending on the event payload or user context. Static IAM policies often fall short in such scenarios.
- Limited visibility:] Serverless structures abstract away the underlying infrastructure, making it hard to audit who accessed what and when. Traditional network-based controls like IP whitelisting are less applicable.
- Cold start impacts:] Authorization logical that requires fetching roles from a database can increase latency on function cold starts, potentially degrading user experience.
وهذه التحديات تجعل تنفيذ اتفاقية بازل المبرم جيداً ليس مجرد أفضل الممارسات، بل ضرورة لتطبيقات لا تصلح للإنتاج.
العناصر الأساسية لنظام المسؤولية عن النتائج
قبل أن ندخل في استراتيجيات التنفيذ، من المفيد فهم لبنات بناء أي نظام من نظم الـ "إس بي سي"
- Users:] The human or service identities that need access.
- Roles:] Named categories (e.g., ]Admin, Viewer, ]Contributor) that aggregate permissions.
- Permissions:] The ability to perform a specific action on a specific resource (e.g., ] on function ].
- سياسات: ] Documents that define a set of permissions and are attached to roles.
- Session context:] Information about the user, their roles, and the current request (e.g., time, IP, resource being accessed).
In serverless, these components are often expressed through cloud provider IAM systems (AWS IAM, Azure RBAC, GCP IAM) but can also be implemented at the application layer using a custom authorization service.
استراتيجيات تنفيذ اتفاقية بازل في التطبيقات التي لا توصف
لا يوجد نهج واحد يناسب الجميع الاستراتيجية الصحيحة تعتمد على مزودك السحابي، تعقيدات إذنك، وتسامحك مع الحماسة
1 - خدمات إدارة حركة الهجرة الدولية في كلود بوصفها المؤسسة
ومعظم مقدمي السحب الرئيسيين يقدمون أنفسهم في إطار نظام المعلومات الإدارية المتكامل الذي يمكن استخدامه لتحديد الأدوار ووضع السياسات على مستوى الحساب أو الموارد، فعلى سبيل المثال، فإن AWS IAM ] يسمحون لكم بإنشاء أدوار تنفيذية لوظائف لامبدا، وإذا ما احتاجت وظيفة إلى قراءة من DynamoDB، فإنكم ترفقون سياسة " IAM " تمنح " السياق البسيط " .
For Azure, Azure RBAC integrates with Azure Functions and App Service. You can assign roles to managed identities or Azure AD groups, and those roles dictate access to Azure resources like Blob Storage or Cosmos DB. similar, GT IAM3[
2- تنفيذ مراقبة الوصول إلى السياسات العرفية على نحو جيد
وعندما تعتمد التصاريح على خصائص الطلب )مثل هوية المستخدم، أو مالك الوثيقة، أو الإجراء الجاري تنفيذه(، لا تكفي سحابة المنظمة وحدها، حيث لا يمكن أن تقترن وظيفة المستعمل أو المسند إلا بضبط الدخول، ويمكنك الجمع بين سياسات إدارة الهجرة الدولية ومفاتيح الشروط، ففيما يتعلق بنظام رصد المياه، مثلا، تستطيعون كتابة سياسة تمنح ]الرقم ٤[.
وللمزيد من القواعد المعقدة، قد تحتاج إلى إنفاذ الترخيص في طبقة الطلب، وبعد أن تتلقى الوظيفة الحدث الاستدعاءيعابي، تتساءل عن وجود متجر للمنافذ (مثلاً في دينامو دي بي أو ريديس) لتحديد ما إذا كان للمتصل الحق في أداء الإجراء المطلوب، ويشار إليه في كثير من الأحيان باسم تطبيقات الدخول المستندة إلى السياسة العامة [FBAC:]
3 - استخدام مرخصي بوابة نظام المعلومات الإدارية المتكامل
وبالنسبة للوظائف التي تتعرض لها شركة HTTP (مثل REST أو GraphQL)، فإن بوابة نظام API هي نقطة الانفاذ الطبيعية. [(FLT:0] AWS API Gateway Authorrs (Lambda authorizers) يمكن أن تصادق على نقطة الحامل (JWT, OAuth) وأن تعيد سياسة " كليغو " التي تسمح بها
فالإذنين العرفيين مثاليون لأنهم يُركزون منطق الترخيص في وظيفة واحدة بدلا من تحطيمه في كل وظيفة خلفية، ويتلقى الوكيل أدواراً مُحدَّدة، ويبحث عن التصاريح، ويعيدون السياسة العامة، وبهذه الطريقة، تظل وظائف منطق الأعمال عديمة الجنسية ومركزة.
4 - الحفاظ على رسم الخرائط للدور في موقع البيانات المضمونة
ويجب تخزين الأدوار والمهام التي يقوم بها المستخدمون واسترجاعها في وقت العمل، وتشمل الخيارات ما يلي:
- Managed directory services:] Azure AD, AWS Cognito, or Auth0 can store role information as custom attributes or groups.
- Relational or NoSQL databases: keep a ] table with a ] column, or a separate ] mapping table. Retrieve it via a cached query.
- Distributed caches:] Amazon ElastiCache (Redis) or DAX can serve role data with low latency, critical for cold starts.
ضمان تأمين مخزن البيانات نفسه عن طريق سياسات صارمة في مجال إدارة المعلومات الإدارية، وعدم الكشف عن بيانات الدور في نقاط النهاية غير المتحققة.
خطوات التنفيذ: من التصميم إلى النشر
متابعة هذه الخطوات لتصميم وتنفيذ اتفاقية روتردام في تطبيق لا يخدم فيه الخواديم:
- ] Identify resources and actions:] List all serverless functions, APIs, storage buckets, queues, and tables. For each, define the actions that can be performed (invoke, read, write, delete).
- Define roles:] Interview stakeholders to understand job functions (e.g., client, support agent, admin). Map each to a set of actions.
- Design IAM policies:] For cloud resources, create IAM policies that grant the minimum required actions. Use resource ARNs to limit scope.
- Implement authentication:] Ensure every HTTP endpoint requires a verified token (JWT, OAuth2). Use an identity provider like Cognito, Auth0, or Firebase.
- Build a custom authorizer:] Write a Lambda function that decodes the token, extracts the user’s role, queries a permission store, and returns an IAM policy document.
- Embed authorization in non-HTTP triggers:] For SQS, S3 events, or DynamoDB streams, include role context in the event payload or use a lookup inside the function.
- Cache aggressively:] Store role-to-mission mappings in a Redis cache with a TTL to reduce database load and improve latency.
- testing thoroughly:] Write integration tests that simulate different roles and verify that unauthorized actions are blocked. Use tools like ]AWS IAM Access Analyzer]] to validate policies.
- Monitor and audit:] Enable CloudTrail (AWS) or Activity Logs (Azure) to log all access attempts. Set up alerts for denied actions or role esups.
الشلالات المشتركة وكيفية تجنبها
- Overly permissive execution roles:] Developers may be tempted to attach a single "power user" IAM role to all functions. This violates least privilege and increases blast radius. Use separate roles per function or group of functions with similar needs.
- Ignoring cold starts:] Loading role data from a database on every invocation can add 200-500ms latency. Preload the authorization decision in the API Gateway authorizer and cache it.
- Hardcoding permissions:] Permissions should be easy to update without function redeploys. Store them in a database or formation file, not in code.
- Neglecting service identities:] RBAC should cover non-human actors (e.g., a scheduled event that triggers a function). Assign IAM roles to those services accordingly.
- من السهل اختبار سيناريوهات "طريق سعيد" الاختبارات الشاملة للوصول إلى الموارد مع عدم كشفها أو مع مطالبات مزورة، أمر أساسي.
معرض العالم الحقيقي: تجهيز الوثائق المضمونة المتعددة العناصر
(أ) النظر في منبر " سايس " حيث يقوم المستأجرون بتحميل الوثائق اللازمة لتجهيزها، ولكل مستأجر ملفه الخاص في دلو من طراز S3، ويستخدم نظام " إي بي آي " ، وهو وظيفة لامبدا لتحميل الوثائق، ووظيفة أخرى للتجهيز (مُنقَّفة عن طريق حدث من نوع S3)، وثالث للاستفسار عن النتائج التي تُخز في دينامو دي بي.
Roles:]
- Tenant Admin:] can upload documents, view results, and delete their own processed files.
- Viewer:] Can only view results (read DynamoDB) but not upload or delete.
- System Admin:] Full access to all tenants for debugging (only for trust operations team).
Implementation:]
- The tenant identity is stored in a JWT issued by Cognito, containing and claims.
- ويستخدم بوابة " إي بي آي " الوكيل العرفي لشركة لامبدا الذي يلغي قضية شركة JWT، ويستفسر عن طاولة دينامو دي بي للحصول على إذن من الدور، ويعيد سياسة تتيح إمكانية الحصول على الموارد مع بطاقة الهوية الخاصة بالمستأجر (مثلاً، ).
- وتتلقى وظيفة تحميل المستأجر بطاقة هوية في سياق الطلب؛ وتستخدم هذه الوظيفة ضماناً لوضع الملف في الملف الصحيح، وتقرأ وظيفة التجهيز بطاقة الملف لتربط النتائج مع المستأجر.
- All DynamoDB queries include the tenant ID in the primary key, and the IAM policy enforces that the function can only read/write items with that partition key.
ويكفل هذا الهيكل عدم تمكن المستأجر من الحصول على بيانات مستأجر آخر، وعدم تمكن مستخدمي الفيوار من الاحتجاج بوظيفة تحميل المركبات، وتدار الأدوار والأذون مركزيا، وتبدأ التغييرات فورا دون نقل أي مهام.
الأدوات والأطر لتبسيط اتفاقية بازل
ويمكن لعدة أدوات مفتوحة المصدر وأدوات تجارية أن تعجل بتنفيذ اتفاقية بازل:
- Open Policy agent (OPA): ] A general policy motor that can be deployed as a sidecar or microservice to enforce complex authorization rules. It integrates well with serverless via HTTP sidecars or Go/Rust runtimes.
- Casbin:] A permission library for Go, Java, Node.js, and Python. Supports RBAC, ABAC, and custom models.
- Auth0 / Firebase Auth:] Both provide built-in RBAC through custom claims and roles. They integrate seamlessly with API Gateway and Cloud Functions.
- AWS Verified Permissions:] A managed Cedar policy service that can be used to centralize authorization decisions outside of Lambda.
مراجعة الحسابات والامتثال
ولا يكفي استيفاء شروط الامتثال (المجلس الثاني، برنامج العمل الإنساني، الناتج المحلي الإجمالي)، يجب أن تنفذ مراجعة الحسابات:
- Enable cloud track logging] for all IAM actions and resource access.
- (ج) أن يسجل كل قرار من قرارات الترخيص (الدونية/الدنيا) لهوية المستخدم، والموارد، والزمن، وأن يستخدم نهجاً منظماً لقطع الأشجار، وقطع السفن لجهاز SIEM مثل Splunk أو ELK.
- (ج) استعراضات الدخول العادية [(FLT:0]) حيث يتم تأكيد أو إلغاء المهام.
- Use ]policy simulation tools (e.g., AWS IAM Access Analyzer) to validate that policies grant only the intended permissions.
خاتمة
وتنفيذ نظام مراقبة الدخول القائم على أساس الأدوار في التطبيقات التي لا تخدم أي خدمة ليس مجرد مسألة ترفق سياسة تتعلق بالرصد المتكامل للرصد والتقييم، بل يتطلب تصميماً دقيقاً للأدوار، واستراتيجيات للإذن بالدفع، ومراكز إنفاذ مركزية مثل مأذونات نظام تحديد المواقع الشبكية، ومن خلال الجمع بين نظام المعلومات الإدارية المتكامل المزود بالسحابات مع ترخيص بالطلبات ومراقبتها، يمكن أن تحقق كل من الأمن والأداء، والاستراتيجيات وأفضل الممارسات المبينة في هذا التقرير، من خلال استخدام نظام إيم - إي - إي - إي - إي -