Підключити
Підключіть AWS із термінала. Передайте --help, щоб побачити прапорці, які приймає AWS, а також --no-browser для середовищ без браузера.
polylane cloud connect --provider awsСтек CloudFormation, який створює IAM-роль лише для читання.
Підключення AWS: це автоматизований процес на основі шаблону CloudFormation. Polylane ніколи не отримує доступу на запис до вашої інфраструктури: стек лише надає роль для читання, яку Polylane приймає між обліковими записами.
Налаштування
- Введіть свій 12-значний AWS Account ID.
- Виберіть AWS Region для підключення.
- Натисніть Deploy stack on AWS. Вас перенаправить у консоль CloudFormation із попередньо завантаженим шаблоном.
- Перегляньте шаблон і натисніть Create stack.
- Стек створює IAM-роль із доступом лише для читання, яку приймає Polylane.
- Поверніться в Polylane. За кілька хвилин ваші ресурси почнуть синхронізуватися.
Шаблон CloudFormation відкритий: ви можете точно переглянути, які дозволи надаються, перш ніж створювати стек.
Дозволи
IAM-роль суворо обмежена читанням:
- Керована AWS політика
ReadOnlyAccess - Жодних дозволів на запис, видалення чи зміну
- Лише прийняття ролі між обліковими записами, з облікового запису AWS, що належить Polylane
Розслідування тривог
Під час підключення ви можете дозволити Polylane підписатися на CloudWatch Alarms в обліковому записі. Коли тривога спрацьовує, Polylane підхоплює її та розслідує автоматично. Це необов'язково, і налаштування можна змінити пізніше.
Відключення
Видаліть стек CloudFormation у своєму обліковому записі AWS. Це прибирає IAM-роль і кожний інший ресурс, який створив стек. Ви також можете відключити обліковий запис від Polylane, що зупиняє всю синхронізацію.
Підключіть AWS із завдання CI або будь-якого іншого середовища без браузера.
Керований процес завершується посиланням швидкого створення CloudFormation, яке хтось відкриває в консолі AWS. Якщо ваші облікові записи AWS змінюються лише через перегляд коду та пайплайн, натиснути на нього нікому. Те саме підключення повністю вміщується в завдання CI: один виклик API створює підключення та генерує шаблон CloudFormation, ваші власні інструменти розгортають шаблон, а стек самостійно реєструє обліковий запис у Polylane.
Якщо вам потрібен лише YAML шаблону, діалог підключення в консолі також показує його вбудовано в розділі Advanced із кнопками Copy і Download. Процес нижче взагалі не потребує консолі.
Передумови
- Ключ API Polylane з областями дії
cloud_accounts:writeіcloud_accounts:read. Див. Ключі API та OAuth. - Ідентифікатор вашого робочого простору, який починається з
ws_. Прочитайте його черезGET /v1/workspacesтим самим ключем. - Облікові дані AWS у пайплайні, які можуть розгортати стеки 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 це 12-значний ідентифікатор облікового запису AWS. regions перелічує регіони, які Polylane сканує під час кожної синхронізації; передайте null, щоб сканувати кожний регіон, увімкнений в обліковому записі, з визначенням під час кожної синхронізації. Два необов'язкові булеві поля, createMonitoringAlarms і subscribeToAlarms, керують поведінкою алертів, описаною на сторінці Clouds, і за замовчуванням дорівнюють 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 пред'являє той самий ідентифікатор кожного разу, коли приймає цю роль. Розгортайте файл точно таким, яким його згенеровано, і не змінюйте значення параметрів за замовчуванням. Стек зі зміненим зовнішнім ідентифікатором розгортається без помилок, але ніколи не зможе зареєструватися.
Цей зовнішній ідентифікатор також є причиною, чому файл заслуговує на поводження як з обліковими даними: тримайте його в межах запуску пайплайна, а не комітьте чи публікуйте як артефакт збирання.
Якщо термін дії підписаного посилання закінчується до розгортання, викличте ендпоінт підключення ще раз, щоб отримати новий шаблон. Повторювати виклик безпечно, доки обліковий запис не зареєструється; після цього він повертає 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 ролі під час створення стека, тому не потрібно налаштовувати зворотний виклик і більше нічого запускати.
Те саме розгортання з 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: підписане посилання не переживе ні години, ні вашого наступного plan, тому отримуйте шаблон у тому самому запуску, який його застосовує.
Спостереження за появою облікового запису
Обліковий запис з'являється, щойно репортер стека досягає 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'
Далі обліковий запис поводиться точно так само, як підключений із консолі: ресурси синхронізуються в топологію, 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"
Роль, її політика та бакет S3 для CloudTrail мають DeletionPolicy: Retain, тому вони переживають видалення стека. Видаліть їх самостійно, якщо хочете повністю очистити обліковий запис AWS.
Відключити
Відключення зупиняє кожну синхронізацію та перевірку і видаляє облікові дані, які зберігав Polylane. Polylane видаляє те, що дозволяє видалити API AWS. Наведене нижче залишається, доки ви не видалите його самостійно:
- PolylaneEnvironmentRole (DeletionPolicy Retain)
- PolylaneEnvironmentPolicies (Retain)
- PolylaneS3Bucket (Retain)
- EKS access entries
polylane cloud disconnect <id>Інструменти
11Операції, які агенти можуть виконувати в тредах.
Підтримувані ресурси
75Типи ресурсів, які з'являються у графі вашої інфраструктури.