المطورون الذين يطلبون شهادات AWS يشبهون المراهقين الذين يطلبون مفاتيح السيارة – هناك الكثير من الانتظار، والورقيات، والأصابع المتقاطعة. إذا كنت قد تعبت من لعب دور حارس الشهادات أو كونك المطور العالق في جحيم التذاكر.
دعنا نحول عملية طلب الشهادات المملة إلى أمر بسيط في Slack باستخدام n8n، أداة أتمتة سير العمل البديهية التي ستجعل المطورين يقولون، “هل هذا كل شيء؟”
سنغطي سيناريو مثاليًا من الألف إلى الياء، دون التبسيط، لنوضح لك كيف يمكن لأداة أتمتة سير العمل n8n أن توفر ساعات لا تحصى من العمل الإضافي للمطورين والمديرين المشغولين.
رقصة طلب الشهادات الحالية
تخيل هذا السيناريو المألوف جدًا: يحتاج مطور إلى شهادة AWS جديدة لبيئة التطوير الخاصة به. إليك كيف يتم الأمر عادة:
- يقدم المطور تذكرة بنص كاف لكتابة رواية
- تظل التذكرة في الطابور بينما يقوم المطور بتحديث صندوق الوارد الخاص به باستمرار
- يرى المعتمد التذكرة أخيرًا بين 47 طلبًا عاجلاً آخر
- نصف المعلومات المطلوبة مفقودة (من الواضح)
- تبادل رسائل البريد الإلكتروني ذهابًا وإيابًا مثل لعبة بينغ بونغ مؤلمة
- يقوم المعتمد بتسجيل الدخول إلى وحدة تحكم AWS (بعد العثور على جهاز 2FA الخاص به)
- تتم عملية إنشاء الشهادة يدويًا
- يحصل المطور أخيرًا على تفاصيل الشهادة… ربما
- يفقد الجميع جزءًا من روحهم
هل يبدو ذلك مألوفًا؟ كنت أظن ذلك. دعنا نحل هذه المشكلة.
الحلم: أمر Slack → شهادة فورية
ماذا لو استطاع مطوروك ببساطة كتابة /newcert
في قناة Slack الخاصة ببيئة التطوير الخاصة بهم، والحصول على ARN شهادة AWS في ثوانٍ؟ لا تذاكر، لا انتظار، لا تلاعب ممل بين الأشخاص. هذا بالضبط ما نبنيه.
في هذا السيناريو، أنت مطور في منظمة تستخدم Slack للتواصل. لقد أنشأت قناة Slack لكل بيئة تطوير للحفاظ على تنظيم المحادثات.
إليك كيف ستعمل سير العمل الآلي لدينا:
- يكتب المطور
/newcert
في قناة Slack الخاصة ببيئته - يتلقى سير العمل n8n الطلب مع سياق القناة
- ينشئ سير العمل شهادة في AWS
- يظهر ARN الشهادة في نفس قناة Slack
هذا كل شيء. أربع خطوات بدلاً من تسع، ولا انتظار للناس للقيام بالأشياء البشرية!
نظرًا لأننا لا نتجاهل التفاصيل، لن تخبرك هذه التدوينة فقط أن n8n يمكنه أتمتة هذه العملية، بل سأريك (لقد فعلت ذلك بنفسي من الصفر!).
تستخدم n8n سير العمل لربط المهام باستخدام العقد. يمكن تنفيذ هذه السلاسل بعد ذلك، مما يؤدي إلى تشغيل جميع العقد داخل سير العمل لأتمتة العمليات من البسيطة إلى المعقدة.
إذا كنت مهتمًا بتعلم كيفية إعداد هذا سير العمل أو في تعلم كيفية إعداد سير عمل n8n، اقرأ المزيد!
أول الأشياء أولاً: مشغل الويب هوك
افتح مجالك لن8n، ودعونا نبدأ مع لوحة فارغة:
1. أنشئ ترتيب جديد. أسفل سوف ترون لوحة فارغة لترتيب n8n جديد جاهز لتأسيس عنصر التنبيه الأول.

2. بعد ذلك، أضف webhook trigger node. تربيع تنبيه الwebhook هو كيف سيتصل Slack بتلك الترتيب لتنبيه الترتيب حين الحاجة إلى إيجاد طلبات ل AWS لإنشاء شهادات جديدة.

يمكنك أن ترى من صورة الشاشة أعلاه أن عنصر تنبيه الwebhook سيكون يستمع لأوعية POST HTTP.
3. قم بتكوينه للحصول على solicitudes POST من Slack
سيكون هذا الwebhook بابنا – هنا سيلتقي Slack عندما يستخدم المستخدمون فيه أمراً /newcert
.
إنشاء تطبيق Slack
وقت للبدء بجانب Slack الخاص. سيحتاج لتطبيق Slack app لتسمح للمستخدمين بإطلاق slash commands (/newcert
) في القناة. التطبيق Slack سيكون أيضًا طريقة ل n8n التحقق بعقب Slack لإرسال الرسائل.
1. وبمجرد الوصول إلى شاشة التطبيقات Slack، انقر على Create New App حيث يمكنك تسمية التطبيق.

2. ومن ثم، قم بتعيين الأدوار بحيث يمكنك إصدار الأوامر التي تتبعها الأسلاك وإرسال الرسائل الي القناة. سوف تحتاج
– channels:read
– chat:write
– commands

3. ومن ثم، قم بإنشاء الأومر المنقسم. يتيح الأومر المنقسم للمستخدمين إصدار أوامر لتطبيقك الخاص بالمسافة الأولية ومن ثم بعدها بعض الأوامر. في هذه الحالة، سيكون الأومر /newcert
لإنشاء شهادة AWS جديدة.
في 设置يوم تطبيقك، اذهب الى “أومرات المنقسمة” وانقر على “إنشاء أومر جديد”.

4. تثبيت التطبيق في مساحة عملك بعد تعيين الأدوار والأومر المنقسم.

5. وأخيرًا، دعوة البوت (تطبيق الذي قمت بإنشائه) إلى قناة Slack للعمل. في هذه الحالة، سيكون القناة اسم بيئة التطوير qa-1 الخاصة.
/invite @devenvironmentautomation
اختبار متجاوبية المنبع الويب
يوجد لك التطبيق السلاك ومنبع الويب المتجاوب الآن. وقد حان وقت اختبار تفاعليةهم.
1. في تنفيذ توالي عملك n8n، انقر على زر “استماع للحالة التجارية التستيع”. سيسمح ذلك للمنبع الويب ببدء الاستماع للطلبات التي يجب أن ترسلها تطبيق السلاك.

2. من ثم، في قناة Slack ل环境 التطوير الخاص بك، ألقِ أوامر السلاش /newcert
. بمجرد قيامك بذلك، يمكنك أن ترى العقد الخاص بالمُدخل التي تتلقى في n8n.
لاحظ أنها تشمل أسم القناة والمُعرفة الشخصية في الطلب. هذا سيسمح لنا بمعرفة ما إلى أي ماحدث يتم إنشاؤه لهذا الشهادة ومن يطلبه.

إذا كان كل شيء بخير، يمكنك أن ترى ردًا تقليديًا بالJSON الذي يخبرك بأن التنقل الداخلي تلقى الطلب الذي بدأ تنقل العمل.

إعداد دخول AWS
يتوجب على n8n تحقيق توثيق الوصول إلى AWS لإنشاء شهادات جديدة. وللقيام بذلك، يحتاج مستخدم IAM مع الأولويات المناسبة. ولأننا نبدأ من الصفر في هذا التعليمات، ستجد أسفل طريقة سريعة لإنشاء هذا المستخدم IAM عن طريق أوسط الأدوات الخاصة ب AWS (AWS CLI).
إذا لم يكن لديك مستخدم IAM بالفعل، يمكنك استخدام البرمجيات التالية لإنشاؤه:
## إنشاء ملف السياسة
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:DescribeCertificate",
"acm:ListCertificates",
"acm:GetCertificate",
"acm:RequestCertificate"
"acm:AddTagsToCertificate"
],
"Resource": "*"
}
]
}
## إنشاء المستخدم
aws iam create-user --user-name CertificateManager
## إنشاء معرف مفتاح الوصول ومفتاح الوصول السري
aws iam create-access-key --user-name CertificateManager --query 'AccessKey.[AccessKeyId,SecretAccessKey]' --output text > certificate_manager_credentials.txt
## إنشاء السياسة
$policy = Get-Content -Raw ~/Downloads/cert-policy.json PS /Users/adam> $policy_arn = aws iam create-policy --policy-name CertificateManagerPolicy --policy-document $policy --query 'Policy.Arn' --output text
## إرفاق السياسة
aws iam attach-user-policy --user-name CertificateManager --policy-arn $policy_arn
## قراءة معرف مفتاح الوصول والوصول السري الذي سنحتاجه لاحقًا في سير العمل
Get-Content ./certificate_manager_credentials.txt
يستخدم هذا الكود سطر الأوامر AWS CLI لأداء مهام متنوعة:
1. إنشاء السياسة: ينشئ سياسة IAM تحدد بالضبط الإجراءات المتعلقة بالشهادات المسموح بها:
– عرض تفاصيل الشهادة
– قائمة الشهادات
– استرداد بيانات الشهادة
– إنشاء شهادات جديدة
– إضافة علامات إلى الشهادات
2. إنشاء المستخدم: ينشئ مستخدم IAM مخصص بالاسم “CertificateManager” الذي سيُستخدم صراحة لمهام إدارة الشهادات
3. إنشاء مفتاح الوصول: ينشئ زوج مفتاح الوصول (معرف مفتاح الوصول ومفتاح الوصول السري) للمستخدم الجديد ويحفظهم في ملف
4. إرفاق السياسة: ينشئ سياسة IAM ويربطها بالمستخدم الجديد، ممنحًا لهم فقط أذونات إدارة الشهادات المحددة بالسياسة
5. يستخدم أمر Get-Content
في PowerShell لقراءة ملف النص بمفتاح الوصول والسري الذي ستحتاج إلى توفيره لسير العمل.
يتبع أفضل الممارسات الأمنية من خلال:
- استخدام مبدأ أقل الامتياز (منح الأذونات اللازمة فقط)
- إنشاء مستخدم مخصص لإدارة الشهادات
- فصل بيانات الاعتماد عن حساب المسؤول
ملاحظة: في بيئة الإنتاج، يجب عليك تخزين بيانات الاعتماد المولدة بشكل آمن، وليس في ملف نص عادي. ضع في اعتبارك استخدام AWS Secrets Manager أو حل آخر لتخزين الأسرار بشكل آمن.
إعداد بيانات اعتماد AWS لعملية n8n
عندما نصل إلى هذه الخطوة، يجب أن تكون العملية قادرة على المصادقة على AWS Certificate Manager لإصدار شهادات جديدة. يستخدم n8n بيانات الاعتماد للقيام بذلك. لإنشاء بيانات اعتماد جديدة لـ AWS:
1. في مساحة العمل الخاصة بك، انقر فوق بيانات الاعتماد في أعلى الشاشة الخاصة بك وانقر على إضافة بيانات اعتماد.

2. حدد AWS كنوع بيانات الاعتماد.

3. قدم مفاتيح الوصول ومفاتيح الوصول السرية التي تم إنشاؤها من أوامر AWS CLI السابقة.

يتمتع n8n بميزة رائعة تختبر بيانات الاعتماد تلقائيًا عند حفظها، لذا ستعرف على الفور ما إذا كانت بيانات الاعتماد تعمل أم لا.

إنشاء عقدة طلب HTTP
عندما يتم استخدام نظام n8n بمساعدة خدمة AWS Certificate Manager، لا يتم دعم إنشاء مستخدمين جديدين، لكنك لا تبحر بعيدا! يمكنك استخدام عقد الطلبات HTTP العامة. يتيح هذا العقد إصدار طلبات HTTP عامة للمعاملات التي غيرت مدعومة الآن.
No need to worry about complex API authentication. Once you create a credential, n8n can leverage that and manage all that OAuth goodness for you.
1. لإنشاء عقد الطلبات HTTP الذي نحتاجه، أولاً تحدد جميع المادة التي يتطلبها API AWS. هذه هي:
– URL – نقطة نهاية ال API التي تعمل في المنطقة التي تعمل فيها
– تحقيقة – قم باستخدام نوع ما قبلًا معروف لتسخير المعلومات الخاصة بالمصدر المسبق للتخديم.
– نوع المعلومات الخاصة – AWS
– AWS – المعلومات الخاصة ب AWS التي تم إنشاؤها مسبقًا.
– إرسال بنود – سيحتاج إلى رأس بنود X-Amz-Target
لخبر ال API عن أي عملية تريد استخدامها؛ هذه هي CertificateManager.RequestCertificate
في هذه الحالة.
– نوع محتوى الجسم – application/x-amz-json-1.1

2. ثم، قم بإعداد الجسم ال HTTP. هذه خطوة أساسية في إيجاد طلب ل API مع إسم البيئة التي يأخذه من ال solicitud Slack. في هذه الحالة ، نسخ علامة تسمية AWS Environment للشهادة وتعيين قيمة إسم البيئة التي تم استقبالها من ال solicitud Slack.
ستحتاج إلى مدخل ديناميكي أو تعبير لهذه المهمة. انقر على تعبير في حقل الجسم، وسترى أن المدخل يتحول إلى نص دالة.

3. انقر على أيقونة التوسيع في الزاوية السفلى اليمنى من حقل الجسم، وستحصل على محرر بديهي.
يجب أن يكون جسم HTTP في JSON. أستخدم هنا أحد أسماء نطاقي والتحقق من الشهادة باستخدام DNS.
يمكنك أن ترى أدناه أنني أستطيع تضمين قيمة العلامة عن طريق سحب القيمة المستلمة من Slack إلى التعبير.

{
"DomainName": "atademos.com",
"ValidationMethod": "DNS",
"Tags": [
{
"Key": "Environment",
"Value": "{{ $('Webhook').item.json.body.channel_name }}"
}
]}
القيمة الآن هي {{ $('Webhook').item.json.body.channel_name }}
ستنتقل هذه المتغير إلى AWS في طلب API الذي يحتوي على اسم قناة Slack (اسم بيئة التطوير في هذا السيناريو).
[su_hightlight]The expressions in n8n are powerful. They’ve developed their own templating language that’s intuitive and is integrated well in various parts of the tool.[/su_hightlight]
4. أخيرًا، اختبر عقدة طلب HTTP عن طريق النقر على اختبار الخطوة. إذا سارت الأمور على ما يرام، يجب أن ترى استجابة JSON من AWS، بما في ذلك ARN الشهادة
إنشاء عقدة Slack
في هذه المرحلة، لديك اثنان من الثلاثة عقد مكتملة في هذا التدفق البسيط n8n: مشغل webhook لـ Slack للاتصال وعقدة طلب HTTP التي ستجري طلبات API إلى AWS. العقدة النهائية هي عقدة Slack، التي تبدأ رسالة استجابة للمستخدم.
1. افتح لوحة العقد وانقر على زر الزائد لإنشاء عقدة Slack جديدة في تدفق العمل الخاص بك.
2. ابحث عن Slack واختر إجراء إرسال رسالة.


3- ومن ثم انقر على المعلومات التي تحتاج للاتصال واختر إنشاء معلومة جديدة لإنشاء معلومة لسلاك تشبه المعلومات الخاصة بالوصل الى AWS. بمجرد إنشاء المعلومة، يمكنك استخدامها في عقد السلاك.
4- قم بتقديم المارات المناسبة لعقد السلاك:
- المورد – الرسالة (لإرسال رسالة للقناة)
- العملية – إرسال
- إرسال الرسالة إلى – القناة
- القناة – بالإسم. يمكنك أيضًا استخدام محرر التعبير مرة أخرى وتحرك خصائص الchannel_name من متغير التنبيه التالي للاستخدام بتعبير ديناميكي.
- نص الرسالة – في هذه الحالة سيعيد ال workflow التعريف الشهير للتواصل الى المطور في القناة السلاكية. ولأن الAWS يعيد رسالة جيبية بالJSON ، يمكننا أيضًا استخدام ما يمكن خلال وظيفة التعبير المبنية
JSON.parse
لتحليل الJSON وإستخراج قيمةCertificateArn
فقط.
The ability to run simple JavaScript like JSON.parse directly in expressions is extremely handy. If I didn’t have this ability, I’d have to create a whole new node just to format this simple data.

5- قم بالنقر على اختبار الخطوة ويتم الحصول على رسالة في القناة البدءية السلاكية!
اختبار ال workflow
عندهذه المرحلة يجب أن يكون لديك عقد من العقود الثالث. حان الوقت لاختبار الworkflow بالكامل!
بالنقر على اختبار ال workflow سيبدأ n8n في انتظار التنبيه.

اذهب إلى

يجب أن يكون لديك الآن شهادة مخصصة بوضوح لبيئة التطوير التي سيتم استخدامها فيها، وتاريخ للطلب، ومطورون أكثر سعادة، على سبيل المثال، الوصول إلى شهادات جديدة!
لماذا هذا مهم
فكر فيما قمنا ببنائه للتو:
- القضاء على وسيط نظام التذاكر
- تقليل وقت طلب الشهادة من أيام إلى ثوانٍ
- توثيق مؤتمت (علامات AWS)
- جعل المطورين أكثر سعادة (لا يقدر بثمن)
غطى هذا المنشور في المدونة مهمة واحدة فقط: بناء سير العمل. يمكن الآن تنفيذه مرات غير محدودة لتوفير ساعات لا تُحصى!
والأفضل من ذلك؟ هذه مجرد البداية. يمكنك توسيع سير العمل هذا للتعامل مع أنواع مختلفة من الشهادات، وإضافة الموافقات لبيئات الإنتاج، أو حتى أتمتة إخطارات تجديد الشهادات.
تحقق من القوالب الجاهزة
يقدم n8n مئات القوالب الجاهزة مثل سير العمل هذا. تتيح لك هذه القوالب اختصار العملية التي ناقشناها للاستفادة من سير العمل الذي تم بناؤه واختباره بواسطة n8n.
If you’d like another great example of a Slack workflow, check out their Advanced Slackbot template.
أفكار نهائية
يجعل n8n من السهل للغاية أتمتة هذه الأنواع من سير العمل. لقد أخذنا عملية عادةً ما تتضمن أنظمة متعددة، وأشخاصًا، ومستويات من الصبر، وحولناها إلى أمر واحد في Slack.
ترغب في تجربة ذلك بنفسك؟ النسخة الأساسية من n8n مجانية، ومن المحتمل أن تتمكن من إعداد هذا بشكل أسرع من معالجة طلب شهادة واحدة بالطريقة القديمة. سيشكرونك مطوروك، وستتخلص من أحد الصداعات الإدارية.
Source:
https://adamtheautomator.com/automate-aws-cert-creation-n8n-slack/