Bağla
AWS hesabını terminalden bağla. AWS hesabının kabul ettiği bayraklar için --help, başsız ortamlar için ayrıca --no-browser geç.
polylane cloud connect --provider awsSalt okunur bir IAM rolü oluşturan CloudFormation yığını.
AWS'yi bağlamak, bir CloudFormation şablonuna dayanan otomatik bir akıştır. Polylane altyapına asla yazma erişimi almaz: yığın yalnızca Polylane'in hesaplar arası üstlendiği salt okunur bir rol verir.
Kurulum
- 12 haneli AWS Account ID değerini gir.
- Bağlanacak AWS Region değerini seç.
- Deploy stack on AWS'e tıkla. Şablon önceden yüklenmiş halde CloudFormation konsoluna yönlendirilirsin.
- Şablonu incele ve Create stack'e tıkla.
- Yığın, Polylane'in üstlendiği salt okunur erişimli bir IAM rolü oluşturur.
- Polylane'e geri dön. Dakikalar içinde kaynakların eşitlenmeye başlar.
CloudFormation şablonu açıktır: yığını oluşturmadan önce tam olarak hangi izinlerin verildiğini inceleyebilirsin.
İzinler
IAM rolü kesinlikle salt okunurdur:
- AWS tarafından yönetilen
ReadOnlyAccesspolitikası - Yazma, silme veya değiştirme izni yok
- Yalnızca Polylane'in AWS hesabından, hesaplar arası üstlenme
Alarmları incele
Bağlanırken Polylane'in hesaptaki CloudWatch Alarms'a abone olmasına izin verebilirsin. Bir alarm tetiklendiğinde Polylane onu alır ve otomatik olarak inceler. Bu isteğe bağlıdır ve sonradan değiştirilebilir.
Bağlantıyı kesme
AWS hesabındaki CloudFormation yığınını sil. Bu, IAM rolünü ve yığının oluşturduğu diğer her kaynağı kaldırır. Hesabın Polylane ile bağlantısını da kesebilirsin; bu tüm eşitlemeyi durdurur.
AWS hesabını bir CI işinden veya tarayıcısı olmayan başka herhangi bir ortamdan bağla.
Rehberli akış, birinin AWS konsolunda açtığı bir CloudFormation hızlı oluşturma bağlantısıyla biter. AWS hesapların yalnızca kod incelemesi ve bir pipeline üzerinden değişiyorsa ona tıklayacak kimse yoktur. Aynı bağlantı tamamen bir CI işine sığar: tek bir API çağrısı bağlantıyı oluşturur ve bir CloudFormation şablonu üretir, kendi araçların şablonu dağıtır ve yığın hesabı Polylane'e kendi başına kaydeder.
Yalnızca şablon YAML'ını istiyorsan konsolun bağlama penceresi onu Advanced altında, Copy ve Download düğmeleriyle satır içinde de gösterir. Aşağıdaki akış hiç konsol gerektirmez.
Ön koşullar
cloud_accounts:writevecloud_accounts:readkapsamlı bir Polylane API anahtarı. Bkz. API anahtarları ve OAuth.ws_ile başlayan çalışma alanı kimliğin. Aynı anahtarlaGET /v1/workspacesüzerinden oku.- Pipeline'da, bağladığın hesapta CloudFormation yığınları dağıtabilen ve IAM rolleri oluşturabilen AWS kimlik bilgileri.
Bağlantıyı oluştur
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 haneli AWS hesap kimliğidir. regions, Polylane'in her eşitlemede taradığı bölgeleri listeler; hesapta etkin her bölgeyi, her eşitlemede çözümlenerek taramak için null geç. İki isteğe bağlı boolean, createMonitoringAlarms ve subscribeToAlarms, Bulutlar sayfasında anlatılan uyarı davranışını denetler ve varsayılanı true olur.
Yanıt, akışın geri kalanının ihtiyaç duyduğu her şeyi taşır:
{
"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, bu bağlantı için üretilen CloudFormation şablonudur, satır içinde, böylece bir iş onu doğrudan bir dosyaya yazabilir.result.s3Url, aynı şablona önceden imzalanmış bir bağlantıdır. Bir saat sonra süresi dolar.result.region, yığının dağıtılacağı bölgedir. Şablon tam olarak bu bölge için üretilir.result.url, rehberli akışın kullandığı konsol hızlı oluşturma bağlantısıdır. Burada yoksay.
Bir 409, hesabın zaten bağlı olduğu anlamına gelir. Mevcut bir bağlantının bölgelerini yeniden bağlamak yerine PATCH /v1/cloud_accounts/{workspaceId}/{id} ile değiştir.
Şablonu bir dosyaya yaz
result.templateBody değerini bir dosyaya yaz ya da önceden imzalanmış bağlantıyı indir:
curl -o polylane-connector.yaml "<result.s3Url>"
Şablon dağıtıma hazır gelir. ExternalParameter parametresi varsayılan olarak bu bağlantı için üretilen bir harici kimliği alır: yığının oluşturduğu rol üzerinde sts:ExternalId koşulu olur ve Polylane o rolü her üstlendiğinde aynı kimliği sunar. Dosyayı tam olarak üretildiği gibi dağıt ve parametre varsayılanlarına dokunma. Harici kimliği düzenlenmiş bir yığın sorunsuz dağıtılır ama asla kayıt olamaz.
Bu harici kimlik, dosyanın kimlik bilgisi muamelesini hak etmesinin de nedenidir: onu commit'lemek veya bir derleme artefaktı olarak yayımlamak yerine pipeline çalıştırmasının içinde tut.
Dağıtımdan önce önceden imzalanmış bağlantının süresi dolarsa yeni bir şablon için bağlama uç noktasını yeniden çağır. Çağrıyı yinelemek hesap kayıt olana kadar güvenlidir; sonrasında 409 döndürür.
Yığını dağıt
aws cloudformation deploy \
--stack-name PolylaneConnector \
--template-file polylane-connector.yaml \
--capabilities CAPABILITY_IAM \
--region us-east-1
- adımdaki
regiondeğerini kullan.CAPABILITY_IAM, yığının oluşturduğu IAM rolünü onaylar; rolün kendisi adsızdır ve adlandırılmış bir satır içi politikaCAPABILITY_NAMED_IAMgerektirmez, bu yüzdenCAPABILITY_IAMyeter.
Yığın, Polylane'in üstlendiği rolü (salt okunur erişim ve polylane önekli kaynaklar üzerinde işlemler), satır içi politikasını, yeni bir S3 bucket'ına yazan bir CloudTrail izini, iz ve alarm bildirimleri için bir SNS konusunu ve bir raporlayıcı özel kaynağını oluşturur. Bağlantıyı kaydeden raporlayıcıdır: yığın oluşturulurken rol ARN'sini Polylane'e iletir, bu yüzden yapılandırılacak geri çağrı ve çalıştırılacak başka bir şey yoktur.
Aynı dağıtım Terraform'dan:
resource "aws_cloudformation_stack" "polylane_connector" {
name = "PolylaneConnector"
template_body = file("${path.module}/polylane-connector.yaml")
capabilities = ["CAPABILITY_IAM"]
}
Sağlayıcıyı ya da bir sağlayıcı takma adını 1. adımdaki region değerine yönlendir. s3Url değerini template_url'e vermek yerine kaydedilen dosyaya template_body ile atıf yap: önceden imzalanmış bağlantı ne saati ne bir sonraki planını aşar, bu yüzden şablonu uygulayan çalıştırmanın içinde getir.
Hesabın çevrimiçi olmasını izle
Hesap, yığının raporlayıcısı Polylane'e ulaştığında görünür, normalde yığın tamamlandıktan kısa süre sonra. Onu doğal anahtarıyla yokla; kayıt düşene kadar 404, sonrasında 200 döndürür:
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
Başarısız bir dağıtım işi askıda bırakmak yerine başarısız kılsın diye döngüye bir son tarih ver. Hesap var olduğunda status alanı ilk eşitlemeyi izler: kayıtta new, kaynaklar akarken syncing, ilk eşitleme tamamlandığında 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'
Buradan itibaren hesap tam olarak konsoldan bağlanmış gibi davranır: kaynaklar topolojiye eşitlenir, Polylane ilk kontrolünü kendi başına çalıştırır ve hesap sayfası dolar.
API'den bağlantıyı kes
Bağlantıyı silmek hesabındaki CloudFormation yığınını da siler. Çağrı cloud_accounts:delete kapsamını gerektirir:
curl -X DELETE https://api.polylane.com/v1/cloud_accounts/ws_0abc123/<cloud-account-id> \
-H "x-api-key: $POLYLANE_API_KEY"
Rol, politikası ve CloudTrail S3 bucket'ı DeletionPolicy: Retain taşır, bu yüzden yığın silinmesinden sonra hayatta kalırlar. AWS hesabının tamamen temiz olmasını istiyorsan onları kendin kaldır.
Bağlantıyı kes
Bağlantıyı kesmek her eşitlemeyi ve kontrolü durdurur ve Polylane'in tuttuğu kimlik bilgilerini siler. Polylane, AWS API'sinin kaldırmasına izin verdiği her şeyi kaldırır. Şunlar sen kendin kaldırana kadar kalır:
- PolylaneEnvironmentRole (DeletionPolicy Retain)
- PolylaneEnvironmentPolicies (Retain)
- PolylaneS3Bucket (Retain)
- EKS access entries
polylane cloud disconnect <id>Araçlar
11Ajanların threadlerde yapabileceği işlemler.
Desteklenen kaynaklar
75Altyapı grafiğinde görünen kaynak türleri.