

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 using Terraform
<a name="getting-started-with-aws-devops-agent-getting-started-with-aws-devops-agent-using-terraform"></a>

## -Übersicht
<a name="overview"></a>

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](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html) 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 unter[Unterstützte Regionen](about-aws-devops-agent-supported-regions.md).

## Voraussetzungen
<a name="prerequisites"></a>

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
<a name="what-this-guide-covers"></a>

Dieser Leitfaden ist in zwei 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.

## Ressourcen erstellt
<a name="resources-created"></a>

### Teil 1: Überwachungskonto
<a name="part-1-monitoring-account"></a>
+ **IAM-Rolle** (`DevOpsAgentRole-AgentSpace-*`) — Wird vom DevOps Agent-Dienst zur Überwachung des Kontos übernommen. Beinhaltet die `AIDevOpsAgentAccessPolicy` verwaltete Richtlinie und eine Inline-Richtlinie, die die Erstellung der serviceverknüpften Resource Explorer-Rolle ermöglicht.
+ **IAM-Rolle** (`DevOpsAgentRole-WebappAdmin-*`) — Operator-App-Rolle mit der `AIDevOpsOperatorAppAccessPolicy` verwalteten Richtlinie für Agentenoperationen.
+ **Agentenbereich** (konfigurierbarer Name) — Der zentrale Agentenbereich, der mithilfe der `awscc_devopsagent_agent_space` Ressource erstellt wurde. Beinhaltet die Konfiguration der Bediener-App.
+ **Zuordnung** (AWS Monitor) — Verknüpft das Überwachungskonto mithilfe der `awscc_devopsagent_association` Ressource mit dem Agentenbereich.
+ **Zuordnung** (AWS Quelle) — (Optional) Verknüpft das Dienstkonto mit dem Agentenbereich für die kontenübergreifende Überwachung.

### Teil 2: Dienstkonto (optional)
<a name="part-2-service-account-optional"></a>
+ **IAM-Rolle** (`DevOpsAgentRole-SecondaryAccount-TF`) — Kontoübergreifende Rolle mit festem Namen. Wird vom Agent-Bereich im Monitoring-Konto als vertrauenswürdig eingestuft. Beinhaltet die `AIDevOpsAgentAccessPolicy` verwaltete Richtlinie und eine Inline-Richtlinie, die die Erstellung der mit dem Resource Explorer-Dienst verknüpften Rolle ermöglicht.
+ **Lambda-Funktion** (`echo-service-tf`) — Ein einfacher Beispieldienst, der Eingabeereignisse zurückgibt.

## Einrichtung
<a name="setup"></a>

### Schritt 1: Klonen Sie das Beispiel-Repository
<a name="step-1-clone-the-sample-repository"></a>

```
git clone https://github.com/aws-samples/sample-aws-devops-agent-terraform.git
cd sample-aws-devops-agent-terraform
```

### Schritt 2: Variablen konfigurieren
<a name="step-2-configure-variables"></a>

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
<a name="part-1-deploy-the-agent-space"></a>

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)
<a name="step-1-deploy-with-automation-recommended"></a>

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.tfvars` anhand eines Beispiels
+ Initialisiert, validiert, plant und wendet Terraform an

Alternativ, wenn Sie eine manuelle Steuerung bevorzugen:

```
terraform init
terraform plan
terraform apply
```

Geben Sie ein`yes`, wenn Sie aufgefordert werden, die Bereitstellung zu bestätigen.

### Schritt 2: Notieren Sie die Ausgaben
<a name="step-2-record-the-outputs"></a>

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
<a name="step-3-verify-the-deployment"></a>

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
<a name="part-2-optional-add-cross-account-monitoring"></a>

In diesem Abschnitt erweitern Sie das Setup, sodass der Agentenbereich Ressourcen in einem zweiten AWS Konto (dem Dienstkonto) überwachen kann. Dies beinhaltet zwei Aktionen:

1. Hinzufügen einer AWS Quellzuordnung, die auf das Dienstkonto verweist.

1. 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. Für die Ressourcen des Dienstkontos ist die Ausgabe `agent_space_arn` aus der Bereitstellung von Teil 1 erforderlich.

### Schritt 1: Konfigurieren Sie die Dienstkonto-ID
<a name="step-1-configure-the-service-account-id"></a>

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
<a name="step-2-set-the-agent-space-arn"></a>

Kopieren Sie den `agent_space_arn` Wert aus der Ausgabe von Teil 1 (Schritt 2) und geben Sie ihn ein`terraform.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`
<a name="step-3-configure-the-awsservice-provider"></a>

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
<a name="step-4-deploy"></a>

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 vertraut
+ Eine 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
<a name="step-5-verify-the-deployment"></a>

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
```

## Fehlerbehebung
<a name="troubleshooting"></a>

**Verzögerungen bei der IAM-Übertragung**
+ Die Konfiguration umfasst einen Zeitraum von 30 Sekunden `time_sleep` zwischen 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 Vorgang `terraform apply` erneut aus. Die IAM-Rollen sind bereits vorhanden und die Anwendung setzt dort fort, wo sie aufgehört hat.

**Fehler bei der Genehmigung**
+ 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.

**Die kontoübergreifende Bereitstellung schlägt fehl**
+ Der `aws.service` Anbieter 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_arn` Wert mit dem ARN aus der Ausgabe von Teil 1 übereinstimmt.

**Der Terraform-Ressourcentyp wurde nicht gefunden**
+ Stellen Sie sicher, dass Sie die `awscc` Anbieterversion `~> 1.0` oder höher haben. Für die `awscc_devopsagent_association` Ressourcen `awscc_devopsagent_agent_space` und ist der AWS Cloud Control-Anbieter erforderlich.

## Bereinigen
<a name="cleanup"></a>

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
<a name="security-considerations"></a>
+ Die Terraform-Konfiguration erstellt IAM-Rollen mit Vertrauensrichtlinien, die es nur dem `aidevops.amazonaws.com` Dienstprinzipal 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
<a name="next-steps"></a>

Nachdem Sie Ihren AWS DevOps Agenten mit Terraform bereitgestellt haben:

1. Erfahren Sie im DevOps [Agent-Benutzerhandbuch mehr über den gesamten Funktionsumfang des AWS DevOps Agenten](https://docs.aws.amazon.com/devopsagent/latest/userguide/).

1. Erwägen Sie, die Terraform-Bereitstellung in Ihre CI/CD Pipelines zu integrieren, um das Infrastrukturmanagement zu automatisieren.

## Weitere Ressourcen
<a name="additional-resources"></a>
+ [AWS DevOps Benutzerhandbuch für Agenten](https://docs.aws.amazon.com/devopsagent/latest/userguide/)
+ [Beispiel für ein Terraform-Repository](https://github.com/aws-samples/sample-aws-devops-agent-terraform)
+ [CLI Onboarding-Leitfaden](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html)