ربط
اربط AWS من الطرفية. مرّر --help للأعلام التي يقبلها AWS، إضافة إلى --no-browser للبيئات بلا واجهة.
polylane cloud connect --provider awsحزمة CloudFormation تنشئ دور IAM للقراءة فقط.
ربط AWS تدفق آلي مبني على قالب CloudFormation. لا يحصل Polylane أبداً على حق الكتابة في بنيتك التحتية: لا تمنح الحزمة إلا دوراً للقراءة فقط يتولاه Polylane عبر الحسابات.
الإعداد
- أدخل AWS Account ID المكوّن من 12 رقماً.
- اختر AWS Region التي تريد ربطها.
- انقر Deploy stack on AWS. تُعاد توجيهك إلى وحدة تحكم CloudFormation مع القالب محمَّلاً مسبقاً.
- راجع القالب وانقر Create stack.
- تنشئ الحزمة دور IAM بصلاحية القراءة فقط يتولاه Polylane.
- عد إلى Polylane. تبدأ مواردك في المزامنة خلال دقائق.
قالب CloudFormation مفتوح: يمكنك مراجعة الأذونات الممنوحة بالضبط قبل إنشاء الحزمة.
الأذونات
دور IAM للقراءة فقط بشكل صارم:
- سياسة
ReadOnlyAccessالمُدارة من AWS - لا أذونات كتابة أو حذف أو تعديل
- تولّي عبر الحسابات فقط، من حساب AWS الخاص بـ Polylane
التحقيق في الإنذارات
عند الربط يمكنك السماح لـ Polylane بالاشتراك في CloudWatch Alarms في الحساب. حين ينطلق إنذار، يلتقطه Polylane ويحقق فيه تلقائياً. هذا اختياري ويمكن تغييره لاحقاً.
الفصل
احذف حزمة CloudFormation في حساب AWS الخاص بك. يزيل ذلك دور IAM وكل مورد آخر أنشأته الحزمة. يمكنك أيضاً فصل الحساب من Polylane، وهو ما يوقف كل المزامنة.
اربط AWS من مهمة CI أو أي بيئة أخرى بلا متصفح.
ينتهي التدفق الموجّه برابط إنشاء سريع لـ CloudFormation يفتحه شخص في وحدة تحكم AWS. إذا كانت حسابات AWS لديك لا تتغير إلا عبر مراجعة الكود وpipeline، فلا أحد هناك لينقره. يناسب الاتصال نفسه مهمة CI بالكامل: ينشئ استدعاء API واحد الاتصال ويولّد قالب CloudFormation، وتنشر أدواتك الخاصة القالب، وتسجّل الحزمة الحساب لدى Polylane من تلقاء نفسها.
إن كنت تريد YAML القالب فقط، فإن مربع حوار الربط في وحدة التحكم يعرضه أيضاً ضمن الصفحة تحت Advanced، مع زرَي Copy وDownload. لا يحتاج التدفق أدناه إلى وحدة التحكم على الإطلاق.
المتطلبات الأساسية
- مفتاح API من Polylane بنطاقَي
cloud_accounts:writeوcloud_accounts:read. انظر مفاتيح API وOAuth. - معرّف مساحة عملك، الذي يبدأ بـ
ws_. اقرأه منGET /v1/workspacesبالمفتاح نفسه. - بيانات اعتماد AWS في pipeline تستطيع نشر حزم CloudFormation وإنشاء أدوار IAM في الحساب الذي تربطه.
إنشاء الاتصال
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "aws",
"workspaceId": "ws_0abc123",
"account": "123456789012",
"regions": ["us-east-1", "eu-west-1"]
}'
account هو معرّف حساب AWS المكوّن من 12 رقماً. يسرد regions المناطق التي يفحصها Polylane في كل مزامنة؛ مرّر null لفحص كل منطقة مفعّلة على الحساب، تُحلّ في كل مزامنة. يتحكم خياران منطقيان اختياريان، createMonitoringAlarms وsubscribeToAlarms، في سلوك التنبيهات الموصوف في السحابات وقيمتهما الافتراضية true.
تحمل الاستجابة كل ما تحتاجه بقية التدفق:
{
"success": true,
"result": {
"provider": "aws",
"url": "https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/review?...",
"s3Url": "https://....s3.amazonaws.com/...?X-Amz-Expires=3600&...",
"region": "us-east-1",
"templateBody": "Description: This template creates the resources necessary for Polylane to observe your AWS Account\n..."
}
}
result.templateBodyهو قالب CloudFormation المولَّد لهذا الاتصال، ضمن الاستجابة، لتستطيع مهمة كتابته مباشرة إلى ملف.result.s3Urlرابط موقَّع مسبقاً إلى القالب نفسه. تنتهي صلاحيته بعد ساعة واحدة.result.regionهي المنطقة التي تُنشر الحزمة فيها. يُولَّد القالب لهذه المنطقة بالضبط.result.urlهو رابط الإنشاء السريع في وحدة التحكم الذي يستخدمه التدفق الموجّه. تجاهله هنا.
يعني الرمز 409 أن الحساب مربوط أصلاً. غيّر مناطق اتصال قائم بـ PATCH /v1/cloud_accounts/{workspaceId}/{id} بدلاً من إعادة الربط.
كتابة القالب إلى ملف
اكتب result.templateBody إلى ملف، أو نزّل الرابط الموقَّع مسبقاً:
curl -o polylane-connector.yaml "<result.s3Url>"
يصل القالب جاهزاً للنشر. تكون القيمة الافتراضية لمعامله ExternalParameter معرّفاً خارجياً مولَّداً لهذا الاتصال: يتحول إلى شرط sts:ExternalId على الدور الذي تنشئه الحزمة، ويقدّم Polylane المعرّف نفسه كل مرة يتولى فيها ذلك الدور. انشر الملف تماماً كما وُلِّد واترك القيم الافتراضية للمعاملات كما هي. تُنشر الحزمة ذات المعرّف الخارجي المعدَّل بلا مشكلة لكنها لا تستطيع التسجيل أبداً.
وذلك المعرّف الخارجي هو أيضاً سبب استحقاق الملف معاملة بيانات الاعتماد: أبقِه داخل تشغيل pipeline بدلاً من إيداعه في commit أو نشره كمخرج بناء.
إذا انتهت صلاحية الرابط الموقَّع مسبقاً قبل النشر، فاستدعِ نقطة نهاية الربط مجدداً للحصول على قالب جديد. تكرار الاستدعاء آمن حتى يسجَّل الحساب؛ وبعد ذلك يعيد الرمز 409.
نشر الحزمة
aws cloudformation deploy \
--stack-name PolylaneConnector \
--template-file polylane-connector.yaml \
--capabilities CAPABILITY_IAM \
--region us-east-1
استخدم region من الخطوة 1. يقرّ CAPABILITY_IAM بدور IAM الذي تنشئه الحزمة؛ والدور نفسه بلا اسم، ولا تتطلب السياسة المضمّنة المسمّاة CAPABILITY_NAMED_IAM، فيكفي CAPABILITY_IAM.
تنشئ الحزمة الدور الذي يتولاه Polylane (وصول للقراءة فقط إضافة إلى عمليات على الموارد ذات البادئة polylane)، وسياسته المضمّنة، ومسار CloudTrail يكتب إلى حاوية S3 جديدة، وموضوع SNS لإشعارات المسار والإنذارات، ومورداً مخصصاً للإبلاغ. المبلّغ هو ما يسجّل الاتصال: يسلّم Polylane معرّف ARN للدور أثناء إنشاء الحزمة، فلا يوجد callback لضبطه ولا شيء آخر لتشغيله.
النشر نفسه من Terraform:
resource "aws_cloudformation_stack" "polylane_connector" {
name = "PolylaneConnector"
template_body = file("${path.module}/polylane-connector.yaml")
capabilities = ["CAPABILITY_IAM"]
}
وجّه المزود، أو اسماً بديلاً للمزود، إلى region من الخطوة 1. أشر إلى الملف المحفوظ بـ template_body بدلاً من تسليم s3Url إلى template_url: لا يعيش الرابط الموقَّع مسبقاً أطول من الساعة ولا حتى خطتك التالية، فاجلب القالب في التشغيل نفسه الذي يطبّقه.
مشاهدة الحساب يصبح متصلاً
يظهر الحساب بعد أن يصل مبلّغ الحزمة إلى Polylane، عادةً لحظات بعد اكتمال الحزمة. استطلعه عبر مفتاحه الطبيعي، الذي يعيد 404 حتى يصل التسجيل و200 بعده:
until curl -sf "https://api.polylane.com/v1/cloud_accounts/ws_0abc123/aws/123456789012/us-east-1" \
-H "x-api-key: $POLYLANE_API_KEY" > /dev/null; do
sleep 15
done
أعطِ الحلقة موعداً نهائياً ليُفشل النشر الفاشل المهمة بدلاً من تعليقها. وبعد وجود الحساب، يتابع حقل status فيه المزامنة الأولى: new عند التسجيل، وsyncing أثناء تدفق الموارد، وready حين تكتمل المزامنة الأولى.
curl -s "https://api.polylane.com/v1/cloud_accounts/ws_0abc123/aws/123456789012/us-east-1" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status'
من هنا يتصرف الحساب تماماً كحساب مربوط من وحدة التحكم: تُزامَن الموارد إلى Topology، ويشغّل Polylane فحصه الأول من تلقاء نفسه، وتكتمل صفحة الحساب.
الفصل من API
يحذف حذف الاتصال أيضاً حزمة CloudFormation في حسابك. يحتاج الاستدعاء إلى نطاق cloud_accounts:delete:
curl -X DELETE https://api.polylane.com/v1/cloud_accounts/ws_0abc123/<cloud-account-id> \
-H "x-api-key: $POLYLANE_API_KEY"
يحمل الدور وسياسته وحاوية CloudTrail S3 السياسة DeletionPolicy: Retain، فتبقى بعد حذف الحزمة. أزلها بنفسك إن كنت تريد حساب AWS نظيفاً بالكامل.
فصل
يوقف الفصل كل مزامنة وفحص ويحذف بيانات الاعتماد التي احتفظ بها Polylane. يزيل Polylane ما تسمح له API الخاصة بـ AWS بإزالته. ويبقى ما يلي حتى تزيله بنفسك:
- PolylaneEnvironmentRole (DeletionPolicy Retain)
- PolylaneEnvironmentPolicies (Retain)
- PolylaneS3Bucket (Retain)
- EKS access entries
polylane cloud disconnect <id>الأدوات
11العمليات التي يستطيع الوكلاء إجراءها في المحادثات.
الموارد المدعومة
75أنواع الموارد التي تظهر في مخطط بنيتك التحتية.