Forbind
Forbind AWS fra terminalen. Angiv --help for de flag, AWS accepterer, plus --no-browser til headless-miljøer.
polylane cloud connect --provider awsCloudFormation-stack, der opretter en skrivebeskyttet IAM-rolle.
Forbindelse af AWS er et automatiseret flow baseret på en CloudFormation-skabelon. Polylane får aldrig skriveadgang til din infrastruktur: stacken tildeler kun en skrivebeskyttet rolle, som Polylane påtager sig på tværs af konti.
Opsætning
- Indtast dit 12-cifrede AWS Account ID.
- Vælg den AWS Region, der skal forbindes.
- Klik på Deploy stack on AWS. Du omdirigeres til CloudFormation-konsollen med skabelonen forudindlæst.
- Gennemgå skabelonen, og klik på Create stack.
- Stacken opretter en IAM-rolle med skrivebeskyttet adgang, som Polylane påtager sig.
- Vend tilbage til Polylane. Inden for få minutter begynder dine ressourcer at synkronisere.
CloudFormation-skabelonen er åben: du kan gennemgå præcis, hvilke tilladelser der tildeles, før du opretter stacken.
Tilladelser
IAM-rollen er strengt skrivebeskyttet:
- Den AWS-administrerede
ReadOnlyAccess-politik - Ingen tilladelser til at skrive, slette eller ændre
- Kun påtagelse på tværs af konti, fra Polylanes AWS-konto
Undersøg alarmer
Når du forbinder, kan du lade Polylane abonnere på CloudWatch Alarms i kontoen. Når en alarm udløses, tager Polylane den op og undersøger den automatisk. Dette er valgfrit og kan ændres senere.
Afbrydelse
Slet CloudFormation-stacken i din AWS-konto. Det fjerner IAM-rollen og hver anden ressource, stacken oprettede. Du kan også afbryde kontoen fra Polylane, hvilket stopper al synkronisering.
Forbind AWS fra et CI-job eller et hvilket som helst andet miljø uden browser.
Det guidede flow slutter med et CloudFormation quick-create-link, som nogen åbner i AWS-konsollen. Hvis dine AWS-konti kun ændres gennem kodegennemgang og en pipeline, er der ingen til at klikke på det. Den samme forbindelse passer helt ind i et CI-job: ét API-kald opretter forbindelsen og genererer en CloudFormation-skabelon, dit eget værktøj deployer skabelonen, og stacken registrerer selv kontoen hos Polylane.
Vil du kun have skabelonens YAML, viser konsollens forbindelsesdialog den også inline under Advanced, med knapperne Copy og Download. Flowet nedenfor kræver slet ingen konsol.
Forudsætninger
- En Polylane-API-nøgle med scopes
cloud_accounts:writeogcloud_accounts:read. Se API-nøgler og OAuth. - Dit arbejdsområde-id, som begynder med
ws_. Læs det fraGET /v1/workspacesmed den samme nøgle. - AWS-legitimationsoplysninger i pipelinen, der kan deploye CloudFormation-stacks og oprette IAM-roller i den konto, du forbinder.
Opret forbindelsen
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 er det 12-cifrede AWS-konto-id. regions lister de regioner, Polylane scanner ved hver synkronisering; angiv null for at scanne hver region, der er slået til på kontoen, resolvet ved hver synkronisering. To valgfrie booleans, createMonitoringAlarms og subscribeToAlarms, styrer den alarmadfærd, der er beskrevet under Clouds, og har standardværdien true.
Svaret bærer alt, hvad resten af flowet har brug for:
{
"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.templateBodyer den CloudFormation-skabelon, der er genereret til denne forbindelse, inline, så et job kan skrive den direkte til en fil.result.s3Urler et presigned link til den samme skabelon. Det udløber efter en time.result.regioner den region, stacken skal deployes i. Skabelonen er genereret til præcis denne region.result.urler det quick-create-link til konsollen, det guidede flow bruger. Ignorer det her.
En 409 betyder, at kontoen allerede er forbundet. Ændr en eksisterende forbindelses regioner med PATCH /v1/cloud_accounts/{workspaceId}/{id} i stedet for at forbinde igen.
Skriv skabelonen til en fil
Skriv result.templateBody til en fil, eller download det presignede link:
curl -o polylane-connector.yaml "<result.s3Url>"
Skabelonen ankommer klar til deploy. Dens ExternalParameter-parameter har som standard et eksternt id genereret til denne forbindelse: det bliver sts:ExternalId-betingelsen på den rolle, stacken opretter, og Polylane præsenterer det samme id, hver gang den påtager sig den rolle. Deploy filen præcis som genereret, og lad parameterstandarderne være. En stack med et redigeret eksternt id deployer fint, men kan aldrig registreres.
Det eksterne id er også grunden til, at filen fortjener at blive håndteret som en legitimation: hold den inde i pipeline-kørslen i stedet for at committe den eller udgive den som et build-artefakt.
Udløber det presignede link, før du deployer, så kald forbindelses-endpointet igen for en ny skabelon. Det er sikkert at gentage kaldet, indtil kontoen registreres; derefter returnerer det en 409.
Deploy stacken
aws cloudformation deploy \
--stack-name PolylaneConnector \
--template-file polylane-connector.yaml \
--capabilities CAPABILITY_IAM \
--region us-east-1
Brug region fra trin 1. CAPABILITY_IAM anerkender den IAM-rolle, stacken opretter; selve rollen er unavngiven, og en navngiven inline-politik kræver ikke CAPABILITY_NAMED_IAM, så CAPABILITY_IAM er nok.
Stacken opretter den rolle, Polylane påtager sig (skrivebeskyttet adgang plus operationer på ressourcer med polylane-præfiks), dens inline-politik, en CloudTrail-trail, der skriver til en ny S3-bucket, et SNS-topic til trail- og alarmnotifikationer og en reporter-custom resource. Reporteren er det, der registrerer forbindelsen: den giver Polylane rollens ARN, mens stacken oprettes, så der er intet callback at konfigurere og intet andet at køre.
Det samme deploy fra Terraform:
resource "aws_cloudformation_stack" "polylane_connector" {
name = "PolylaneConnector"
template_body = file("${path.module}/polylane-connector.yaml")
capabilities = ["CAPABILITY_IAM"]
}
Peg provideren, eller et provider-alias, på region fra trin 1. Henvis til den gemte fil med template_body i stedet for at give s3Url til template_url: det presignede link overlever hverken timen eller din næste plan, så hent skabelonen i den samme kørsel, der anvender den.
Se kontoen komme online
Kontoen vises, når stackens reporter når Polylane, normalt kort efter at stacken er færdig. Poll den efter dens naturlige nøgle, som returnerer 404, indtil registreringen lander, og 200 derefter:
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
Giv løkken en deadline, så et fejlet deploy får jobbet til at fejle i stedet for at hænge. Når kontoen findes, følger dens status-felt den første synkronisering: new ved registrering, syncing mens ressourcer strømmer ind, ready når den første synkronisering er færdig.
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'
Herfra opfører kontoen sig præcis som én, der er forbundet fra konsollen: ressourcer synkroniseres ind i topologien, Polylane kører sin første kontrol af sig selv, og kontosiden fyldes ud.
Afbryd fra API'et
Sletning af forbindelsen sletter også CloudFormation-stacken i din konto. Kaldet kræver scopet 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"
Rollen, dens politik og CloudTrail-S3-bucketen har DeletionPolicy: Retain, så de overlever sletningen af stacken. Fjern dem selv, hvis du vil have AWS-kontoen helt ren.
Afbryd
Afbrydelse stopper hver synkronisering og kontrol og sletter de legitimationsoplysninger, Polylane opbevarede. Polylane fjerner det, AWSs API lader den fjerne. Følgende bliver tilbage, indtil du selv fjerner det:
- PolylaneEnvironmentRole (DeletionPolicy Retain)
- PolylaneEnvironmentPolicies (Retain)
- PolylaneS3Bucket (Retain)
- EKS access entries
polylane cloud disconnect <id>Værktøjer
11Operationer, agenter kan udføre i tråde.
Understøttede ressourcer
75Ressourcetyper, der vises i din infrastrukturgraf.