Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erste Schritte mit AWS DevOps Agent, der Terraform verwendet
-Übersicht
In diesem Handbuch erfahren Sie, wie Sie mit Terraform Agentenressourcen erstellen und bereitstellen. AWS DevOps Die Terraform-Konfiguration automatisiert die Erstellung eines Agentenbereichs, von IAM-Rollen, einer Operator-App und Kontozuordnungen. AWS
Der Terraform-Ansatz automatisiert die im CLI-Onboarding-Leitfaden beschriebenen manuellen Schritte, indem alle erforderlichen Ressourcen als Infrastruktur als Code definiert werden.
AWS DevOps Der Agent ist in den folgenden 6 AWS Regionen verfügbar: USA Ost (Nord-Virginia), USA West (Oregon), Asien-Pazifik (Sydney), Asien-Pazifik (Tokio), Europa (Frankfurt) und Europa (Irland). Weitere Informationen zu den unterstützten Regionen finden Sie unterUnterstützte Regionen.
Voraussetzungen
Stellen Sie vor dem Beginn sicher, dass Sie über das Folgende verfügen:
Terraform >= 1.0 ist installiert
AWS CLI wurde mit den entsprechenden Anmeldeinformationen installiert und konfiguriert
Ein AWS Konto für das (primäre) Überwachungskonto
(Optional) Ein zweites AWS Konto, wenn Sie eine kontoübergreifende Überwachung einrichten möchten
Was dieser Leitfaden behandelt
Dieser Leitfaden ist in drei Teile gegliedert:
Teil 1 — Stellen Sie einen Agentenbereich mit einer Operator-App und einer AWS Verknüpfung in Ihrem Monitoring-Konto bereit. Nach Abschluss dieses Teils kann der Agent Probleme in diesem Konto überwachen.
Teil 2 (optional) — Fügen Sie eine AWS Quellzuordnung für ein Dienstkonto hinzu und stellen Sie eine kontoübergreifende IAM-Rolle sowie ein Echolambda für dieses Konto bereit. Auf diese Weise kann der Agentenbereich Ressourcen kontenübergreifend überwachen.
Teil 3 (optional) — Registrieren Sie Dienste von Drittanbietern (Dynatrace,, Splunk ServiceNow, New Relic, GitLab, PagerDuty) und ordnen Sie sie dem Agentenbereich zu.
Ressourcen wurden erstellt
Teil 1: Überwachungskonto
IAM-Rolle (
DevOpsAgentRole-AgentSpace-*) — Wird vom DevOps Agent-Dienst zur Überwachung des Kontos übernommen. Beinhaltet dieAIDevOpsAgentAccessPolicyverwaltete Richtlinie und eine Inline-Richtlinie, die die Erstellung der serviceverknüpften Resource Explorer-Rolle ermöglicht. Wird nur erstellt, wennexisting_agentspace_role_arnes nicht festgelegt ist.IAM-Rolle (
DevOpsAgentRole-WebappAdmin-*) — Operator-App-Rolle mit derAIDevOpsOperatorAppAccessPolicyverwalteten Richtlinie für Agentenoperationen. Wird nur erstellt, wennexisting_operator_role_arnes nicht festgelegt ist.Agentenbereich (konfigurierbarer Name) — Der zentrale Agentenbereich, der mithilfe der
awscc_devopsagent_agent_spaceRessource erstellt wurde. Beinhaltet die Konfiguration der Bediener-App.Zuordnung (AWS Monitor) — Verknüpft das Überwachungskonto mithilfe der
awscc_devopsagent_associationRessource mit dem Agentenbereich.Zuordnung (AWS Quelle) — (Optional) Verknüpft das Dienstkonto mit dem Agentenbereich für die kontenübergreifende Überwachung.
Teil 2: Dienstkonto (optional)
IAM-Rolle (
DevOpsAgentRole-SecondaryAccount-TF) — Cross-account Rolle mit einem festen Namen. Wird vom Agent-Bereich im Monitoring-Konto als vertrauenswürdig eingestuft. Beinhaltet dieAIDevOpsAgentAccessPolicyverwaltete Richtlinie und eine Inline-Richtlinie, die die Erstellung der dienstbezogenen Resource Explorer-Rolle ermöglicht.Lambda-Funktion (
echo-service-tf) — Ein einfacher Beispieldienst, der Eingabeereignisse zurückgibt.
Einrichtung
Schritt 1: Klonen Sie das Beispiel-Repository
git clone https://github.com/aws-samples/sample-aws-devops-agent-terraform.git cd sample-aws-devops-agent-terraform
Schritt 2: Variablen konfigurieren
Kopieren Sie die Beispielvariablendatei und passen Sie sie an Ihre Umgebung an:
cp terraform.tfvars.example terraform.tfvars
Bearbeiten Sie terraform.tfvars mit dem Namen und der Beschreibung Ihres Agentenbereichs:
agent_space_name = "MyCompanyAgentSpace" agent_space_description = "DevOps Agent Space for monitoring production workloads"
Teil 1: Stellen Sie den Agentenbereich bereit
In diesem Abschnitt erstellen Sie den Agentenbereich, die IAM-Rollen, die Operator-App und eine AWS Zuordnung in Ihrem Monitoring-Konto.
Schritt 1: Automatisierte Bereitstellung (empfohlen)
Verwenden Sie das bereitgestellte Bereitstellungsskript für eine optimierte Einrichtung:
./deploy.sh
Dieses Skript führt automatisch Folgendes durch:
Prüft die Voraussetzungen (Terraform, AWS CLI, Anmeldeinformationen)
Erstellt bei Bedarf
terraform.tfvarsanhand eines BeispielsInitialisiert, validiert, plant und wendet Terraform an
Alternativ, wenn Sie eine manuelle Steuerung bevorzugen:
terraform init terraform plan terraform apply
Geben Sie einyes, wenn Sie aufgefordert werden, die Bereitstellung zu bestätigen.
Schritt 2: Notieren Sie die Ausgaben
Nach Abschluss der Bereitstellung druckt Terraform die Ausgaben. Notieren Sie sich diese Werte für die spätere Verwendung:
Outputs: agent_space_id = "abc123" agent_space_arn = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/abc123" agent_space_name = "MyCompanyAgentSpace" devops_agentspace_role_arn = "arn:aws:iam::<MONITORING_ACCOUNT_ID>:role/DevOpsAgentRole-AgentSpace-a1b2c3d4" devops_operator_role_arn = "arn:aws:iam::<MONITORING_ACCOUNT_ID>:role/DevOpsAgentRole-WebappAdmin-a1b2c3d4" primary_account_id = "<MONITORING_ACCOUNT_ID>" primary_account_association_id = "assoc-xyz"
Wenn Sie Teil 2 abschließen möchten, speichern Sie den agent_space_arn Wert. Sie benötigen es, um die Ressourcen des Dienstkontos zu konfigurieren.
Schritt 3: Überprüfen Sie die Bereitstellung
Führen Sie das Überprüfungsskript nach der Bereitstellung aus:
./post-deploy.sh
Oder verwenden Sie die AWS CLI, um zu überprüfen, ob der Agentenbereich erfolgreich erstellt wurde:
aws devops-agent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>
Zu diesem Zeitpunkt wird Ihr Agentenbereich bereitgestellt, wobei die Operator-App aktiviert und Ihr Monitoring-Konto verknüpft ist. Der Agent kann Probleme in diesem Konto überwachen.
Teil 2 (optional): Kontenübergreifende Überwachung hinzufügen
In diesem Abschnitt erweitern Sie das Setup, sodass der Agentenbereich Ressourcen in einem zweiten AWS Konto (dem Dienstkonto) überwachen kann. Dies beinhaltet zwei Aktionen:
Hinzufügen einer AWS Quellzuordnung, die auf das Dienstkonto verweist.
Bereitstellung einer kontoübergreifenden IAM-Rolle und einer Echo-Lambda-Funktion im Dienstkonto.
Wichtig
Sie müssen Teil 1 abschließen, bevor Sie fortfahren können. Die Ressourcen des Dienstkontos benötigen die Ausgabe agent_space_arn aus der Bereitstellung von Teil 1.
Schritt 1: Konfigurieren Sie die Dienstkonto-ID
Geben Sie terraform.tfvars unter Ihre Dienstkonto-ID ein:
service_account_id = "<YOUR_SERVICE_ACCOUNT_ID>"
Schritt 2: Den ARN für den Agentenbereich einrichten
Kopieren Sie den agent_space_arn Wert aus der Ausgabe von Teil 1 (Schritt 2) und geben Sie ihn einterraform.tfvars:
agent_space_arn = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>"
Die Ressourcen des Dienstkontos verwenden diesen Wert, um den Geltungsbereich der Vertrauensrichtlinie für die sekundäre Kontorolle festzulegen. Diese Ressourcen werden nur erstellt, wenn dieser Wert festgelegt ist.
Schritt 3: Konfigurieren Sie den Anbieter `aws.service`
Konfigurieren Sie unter den aws.service Anbieteralias mit den Anmeldeinformationen für das Dienstkonto. main.tf Sie können entweder ein benanntes Profil oder eine Rolle übernehmen verwenden:
Ein Profil verwenden:
provider "aws" { alias = "service" region = var.aws_region profile = "your-service-account-profile" }
Oder mit „Rolle übernehmen“:
provider "aws" { alias = "service" region = var.aws_region assume_role { role_arn = "arn:aws:iam::<SERVICE_ACCOUNT_ID>:role/OrganizationAccountAccessRole" } }
Schritt 4: Bereitstellen
Wenden Sie die aktualisierte Konfiguration an:
terraform apply
Dadurch werden die folgenden Ressourcen im Dienstkonto erstellt:
Eine IAM-Rolle (
DevOpsAgentRole-SecondaryAccount-TF), die dem Agentenbereich im Überwachungskonto vertrautEine Echo-Lambda-Funktion (
echo-service-tf) als Beispieldienst
Sie erstellt auch eine AWS Quellzuordnung im Überwachungskonto, die das Dienstkonto verknüpft.
Schritt 5: Überprüfen Sie die Bereitstellung
Testen Sie den Echo-Service, um sicherzustellen, dass die Lambda-Funktion erfolgreich bereitgestellt wurde:
aws lambda invoke \ --function-name echo-service-tf \ --payload '{"test": "hello world"}' \ --profile <your-service-account-profile> \ --region <REGION> \ response.json cat response.json
Teil 3 (optional): Integrationen von Drittanbietern registrieren
In diesem Abschnitt registrieren Sie externe Dienste (Dynatrace,, Splunk ServiceNow, New Relic,,) im Agentenbereich. GitLab PagerDuty Diese Integrationen ermöglichen es dem AWS DevOps Agenten, bei Untersuchungen auf Telemetrie, Vorfalldaten und Quellcodekontrollinformationen zuzugreifen.
Im Gegensatz zum AWS CDK-Beispiel, das eine separate IntegrationsStack Phase und eine manuelle Verkabelung der Agenten-Space-ID erfordert, verweisen diese Ressourcen direkt auf den Agent-Bereich und können in derselben Weise terraform apply wie Teil 1 bereitgestellt werden.
Unterstützte Integrationen
| Service | Servicetyp | Authentifizierung |
|---|---|---|
| Dynatrace | dynatrace |
OAuth-Client-Anmeldeinformationen |
| ServiceNow | servicenow |
OAuth-Client-Anmeldeinformationen |
| Splunk | mcpserversplunk |
Inhaber-Token |
| New Relic | mcpservernewrelic |
API-Schlüssel |
| GitLab | gitlab |
Zugriffstoken |
| PagerDuty | pagerduty |
OAuth-Client-Anmeldeinformationen |
Anmerkung
Datadog ist nicht in der Terraform-Konfiguration enthalten. Für die Verbindung von Datadog ist eine interaktive OAuth-Benutzerautorisierung (Anmeldung und Zustimmung des Browsers) erforderlich, wie unter beschrieben, die Terraform nicht automatisieren kann. Verbindung herstellen DataDog Registrieren Sie Datadog manuell über die Seite Capability Providers in der Konsole.
Schritt 1: Anmeldeinformationen für die Integration konfigurieren
Fügen Sie einen integrations Block terraform.tfvars hinzu und füllen Sie nur die gewünschten Dienste auf. Das folgende Beispiel zeigt eine Dynatrace-Integration:
integrations = { dynatrace = { account_urn = "<DYNATRACE_ACCOUNT_URN>" client_id = "<DYNATRACE_CLIENT_ID>" client_name = "<DYNATRACE_CLIENT_NAME>" client_secret = "<DYNATRACE_CLIENT_SECRET>" env_id = "<DYNATRACE_ENVIRONMENT_ID>" resources = ["<DYNATRACE_RESOURCE_1>"] } }
Die vollständige Form der einzelnen Integrationen finden Sie terraform.tfvars.example im Beispiel-Repository.
ServiceNow Anforderung: Immer instance_id explizit auf den kurzen Instanznamen setzen (z. B. "ven04972" — nicht den vollständigeninstance_url). Wenn dieser instance_id Wert weggelassen wird, wird auf die Assoziation instance_url zurückgegriffen, was die DevOps Agenten-API mit einem 400 GeneralServiceException: instanceId '<url>' does not match the registered ServiceNow instance ablehnt.
Sicherheit: Die integrations Variable ist markiertsensitive, sodass ihre Werte aus der Plan- und Anwendungsausgabe entfernt werden. Übergeben Sie keine echten Anmeldeinformationen für. terraform.tfvars Quellgeheimnisse für die Produktion aus AWS Secrets Manager oder AWS Systems Manager Parameter Store (z. B. unter Verwendung von data Quellen) und nicht aus Klartext.
Schritt 2: Bereitstellen
Wenden Sie die Konfiguration an:
terraform apply
Dadurch wird für jede aktivierte Integration eine Dienstregistrierung und -zuordnung erstellt.
Schritt 3: Überprüfen Sie die Ergebnisse
Nach Abschluss der Bereitstellung ordnen die Integrationsausgaben jeden aktivierten Dienst seinen registrierten IDs zu:
integration_service_ids = { "dynatrace" = "service-abc123" } integration_association_ids = { "dynatrace" = "assoc-xyz789" }
Weitere Informationen zur Konfiguration der Anmeldeinformationen für jeden Dienst finden Sie unter:
Verwenden vorhandener IAM-Rollen (optional)
Standardmäßig erstellt die Terraform-Konfiguration neue IAM-Rollen für den Agentenbereich und die Operator-App. Wenn Sie bereits über IAM-Rollen mit den erforderlichen Richtlinien verfügen, können Sie die Rollenerstellung überspringen und stattdessen die vorhandenen Rollen-ARNs angeben.
Voraussetzungen
Die vorhandenen Rollen müssen die folgenden Anforderungen erfüllen:
Rolle „Agent Space“
Die Vertrauensrichtlinie
aidevops.amazonaws.com.rproxy.goskope.comermöglicht die Übernahme der Rolle mitsts:AssumeRoleIst die
AIDevOpsAgentAccessPolicyverwaltete Richtlinie angehängt(Optional) Hat eine Inline-Richtlinie, die die Erstellung der serviceverknüpften Resource Explorer-Rolle ermöglicht
Rolle „Operator-App“
Die Vertrauensrichtlinie
aidevops.amazonaws.com.rproxy.goskope.comermöglicht es, die Rolle mitsts:AssumeRoleund zu übernehmensts:TagSessionIst die
AIDevOpsOperatorAppAccessPolicyverwaltete Richtlinie angehängt
Konfiguration
Legen Sie in terraform.tfvars eine oder beide Rollen-ARNs fest:
existing_agentspace_role_arn = "arn:aws:iam::ACCOUNT_ID:role/YourAgentSpaceRole" existing_operator_role_arn = "arn:aws:iam::ACCOUNT_ID:role/YourOperatorRole"
Wenn diese Werte festgelegt sind, werden die entsprechenden Rollenressourcen in iam.tf übersprungen. Dieser Ansatz ist vollständig abwärtskompatibel — bestehende Konfigurationen mit leeren Werten (Standard) behalten das aktuelle Verhalten bei der Rollenerstellung bei.
Fehlerbehebung
Verzögerungen bei der IAM-Übertragung
Die Konfiguration umfasst einen Zeitraum von 30 Sekunden
time_sleepzwischen der Erstellung der IAM-Rolle und der Erstellung des Agent Space. Der DevOps Agent-Dienst validiert die Vertrauensrichtlinie der Operatorrolle bei der Erstellung des Agent Space. Dies kann fehlschlagen, wenn IAM nicht vollständig weitergegeben wurde. Wenn weiterhin Fehler in der Vertrauensrichtlinie angezeigt werden, warten Sie eine Minute und führen Sie den Vorgangterraform applyerneut aus. Die IAM-Rollen sind bereits vorhanden und die Anwendung setzt dort fort, wo sie aufgehört hat.
ServiceNow instanceId does not matchFehler
Geben Sie im
service_nowIntegrationsblockinstance_idexplizit den kurzen Instanznamen (z. B."ven04972") an, nicht den vollständigeninstance_url. Siehe den Hinweis in Teil 3 oben.
Dynatrace-Verband status: invalid
Wenn der
terraform applyVorgang erfolgreich ist, aber die resultierende Zuordnung meldetstatus = "invalid"(sichtbar überaws devops-agent get-associationdie Konsole), bedeutet dies, dass Dynatrace die OAuth-Client-Anmeldedaten zurückgewiesen hat. Double-checkclient_idclient_secret, undaccount_urngegen das Dynatrace-Konto und nicht gegen ein Terraform-Konfigurationsproblem.
Berechtigungsfehler
Stellen Sie sicher, dass Ihre AWS Anmeldeinformationen über die erforderlichen IAM-Berechtigungen zum Erstellen von Rollen und Richtlinien verfügen.
Vergewissern Sie sich, dass die Bedingungen der Vertrauensrichtlinie mit Ihrer Konto-ID übereinstimmen.
Cross-account Die Bereitstellung schlägt fehl
Der
aws.serviceAnbieter muss mit Anmeldeinformationen für das Dienstkonto konfiguriert sein. Verwenden Sie ein benanntes Profil oder einen Block „Rolle übernehmen“.Stellen Sie sicher, dass der
agent_space_arnWert mit dem ARN aus der Ausgabe von Teil 1 übereinstimmt.
Der Terraform-Ressourcentyp wurde nicht gefunden
Stellen Sie sicher, dass Sie die
awsccAnbieterversion~> 1.0oder höher haben. Für dieawscc_devopsagent_associationRessourcenawscc_devopsagent_agent_spaceund ist der AWS Cloud Control-Anbieter erforderlich.
Bereinigen
Um alle Ressourcen zu entfernen, löschen Sie sie in umgekehrter Reihenfolge, falls Sie Teil 2 bereitgestellt haben:
./cleanup.sh
Oder manuell:
terraform destroy
Warnung: Dadurch werden Ihr Agentenbereich und alle zugehörigen Daten dauerhaft gelöscht. Stellen Sie sicher, dass Sie alle wichtigen Informationen gesichert haben, bevor Sie fortfahren.
Sicherheitsüberlegungen
Die Terraform-Konfiguration erstellt IAM-Rollen mit Vertrauensrichtlinien, die es nur dem
aidevops.amazonaws.com.rproxy.goskope.comDienstprinzipal ermöglichen, sie zu übernehmen.Zu den Vertrauensrichtlinien gehören Bedingungen, die den Zugriff auf Ihr bestimmtes AWS Konto und den ARN Ihres Agentenbereichs einschränken.
Alle Richtlinien folgen dem Prinzip der geringsten Rechte. Überprüfen Sie die IAM-Richtlinien und passen Sie sie an die Sicherheitsanforderungen Ihres Unternehmens an.
Die kontoübergreifende Rolle (
DevOpsAgentRole-SecondaryAccount-TF) verwendet einen festen Namen und ist auf einen bestimmten Agent-Space-ARN ARN.
Nächste Schritte
Nachdem Sie Ihren AWS DevOps Agenten mit Terraform bereitgestellt haben:
Erfahren Sie im DevOps Agent-Benutzerhandbuch mehr über den gesamten Funktionsumfang des AWS DevOps Agenten.
Erwägen Sie, die Terraform-Bereitstellung in Ihre CI/CD Pipelines zu integrieren, um das Infrastrukturmanagement zu automatisieren.
Weitere Ressourcen
Ressource awscc_devopsagent_agent_space
in der Terraform-Registrierung Ressource awscc_devopsagent_association in der Terraform-Registrierung
Die Ressource awscc_devopsagent_private_connection
in der Terraform-Registrierung