

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.

# Überwachen Sie die Nutzung eines gemeinsam genutzten Amazon Machine Image über mehrere AWS-Konten
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts"></a>

*Naveen Suthar und Sandeep Gawande, Amazon Web Services*

## Zusammenfassung
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts-summary"></a>

[Amazon Machine Images (AMIs)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) werden verwendet, um Amazon Elastic Compute Cloud (Amazon EC2) -Instances in Ihrer Amazon Web Services (AWS) -Umgebung zu erstellen. Sie können ein separates, zentrales AWS-Konto erstellen AMIs , das in diesem Muster als *Creator-Konto* bezeichnet wird. Sie können das AMI dann für mehrere Benutzer gemeinsam nutzen AWS-Konten , die sich in demselben Muster befinden AWS-Region, die in diesem Muster als *Verbraucherkonten* bezeichnet werden. Die Verwaltung AMIs von einem einzigen Konto aus bietet Skalierbarkeit und vereinfacht die Verwaltung. In den Verbraucherkonten können Sie auf das gemeinsam genutzte AMI in Amazon EC2 Auto Scaling [Scaling-Startvorlagen](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template.html) und Amazon Elastic Kubernetes Service (Amazon EKS) [-Knotengruppen](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html) verweisen.

Wenn ein gemeinsam genutztes AMI [veraltet, [deregistriert](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) oder [nicht gemeinsam genutzt](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) ist, können die auf AWS-Services das AMI in den Verbraucherkonten verweisenden AMIs dieses AMI nicht verwenden, um neue Instances zu starten. Jedes Auto Scaling-Ereignis oder jeder Relaunch derselben Instance schlägt fehl. Dies kann zu Problemen in der Produktionsumgebung führen, z. B. zu Anwendungsausfällen oder Leistungseinbußen. Wenn AMI-Sharing- und Nutzungsereignisse mehrfach auftreten AWS-Konten, kann es schwierig sein, diese Aktivität zu überwachen.

Dieses Muster hilft Ihnen dabei, die gemeinsame AMI-Nutzung und den Status von Konten in derselben Region zu überwachen. Es verwendet serverlose AWS-Services Systeme wie Amazon EventBridge, Amazon DynamoDB und Amazon Simple Email Service (Amazon SES). AWS Lambda Sie stellen die Infrastruktur als Code (IaC) mithilfe von Terraform bereit. HashiCorp Diese Lösung gibt Warnmeldungen aus, wenn ein Dienst in einem Verbraucherkonto auf ein abgemeldetes oder nicht gemeinsam genutztes AMI verweist.

## Voraussetzungen und Einschränkungen
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts-prereqs"></a>

**Voraussetzungen**
+ Zwei oder mehr aktive Konten AWS-Konten: ein Erstellerkonto und ein oder mehrere Verbraucherkonten
+ Eines oder mehrere AMIs , die vom Erstellerkonto mit einem Verbraucherkonto geteilt werden
+ Terraform CLI, [installiert](https://developer.hashicorp.com/terraform/cli) (Terraform-Dokumentation)
+ [Terraform AWS Provider, konfiguriert (Terraform-Dokumentation)](https://hashicorp.github.io/terraform-provider-aws/)
+ [(Optional, aber empfohlen) Terraform-Backend, konfiguriert (Terraform-Dokumentation)](https://developer.hashicorp.com/terraform/language/backend)
+ Git, [installiert](https://github.com/git-guides/install-git)

**Einschränkungen**
+ Dieses Muster überwacht anhand der Konto-ID, AMIs welche für bestimmte Konten freigegeben wurden. Dieses Muster überwacht nicht AMIs , welche Daten mithilfe der Organisations-ID für eine Organisation freigegeben wurden.
+ AMIs kann nur mit Konten geteilt werden, die sich innerhalb derselben Gruppe befinden AWS-Region. Dieses Muster überwacht AMIs innerhalb einer einzigen Zielregion. Um die Nutzung von AMIs in mehreren Regionen zu überwachen, setzen Sie diese Lösung in jeder Region ein.
+ Bei diesem Muster werden keine Daten überwacht AMIs , die vor der Bereitstellung dieser Lösung geteilt wurden. Wenn Sie das bereits geteilte AMI überwachen möchten AMIs, können Sie die Freigabe des AMI aufheben und es dann erneut mit den Benutzerkonten teilen.

**Produktversionen**
+ Terraform Version 1.2.0 oder höher
+ Terraform AWS Provider Version 4.20 oder höher

## Architektur
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts-architecture"></a>

**Zieltechnologie-Stack**

Die folgenden Ressourcen werden als IaC über Terraform bereitgestellt:
+ Amazon-DynamoDB-Tabellen
+  EventBridge Amazon-Regeln
+ AWS Identity and Access Management (IAM) -Rolle
+ AWS Lambda Funktionen
+ Amazon SES

**Zielarchitektur**

![\[Architektur zur Überwachung der gemeinsamen AMI-Nutzung und zur Benachrichtigung von Benutzern, wenn das AMI nicht gemeinsam genutzt oder deregistriert ist\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2d709249-0c68-47d7-be5d-46e8a73071ed/images/8c48c4dd-d681-4c32-9ba8-8f5ad2d66f64.png)


Das Diagramm zeigt den folgenden Workflow:

1. Ein AMI im Erstellerkonto wird mit einem Verbraucherkonto im selben Konto geteilt AWS-Region.

1. Wenn das AMI gemeinsam genutzt wird, erfasst eine EventBridge Regel im Erstellerkonto das `ModifyImageAttribute` Ereignis und initiiert eine Lambda-Funktion im Erstellerkonto.

1. Die Lambda-Funktion speichert Daten, die sich auf das AMI beziehen, in einer DynamoDB-Tabelle im Creator-Konto.

1. Wenn ein AWS-Service Kundenkonto das gemeinsame AMI verwendet, um eine EC2 Amazon-Instance zu starten, oder wenn das gemeinsam genutzte AMI mit einer Startvorlage verknüpft ist, erfasst eine EventBridge Regel im Verbraucherkonto die Nutzung des gemeinsamen AMI.

1. Die EventBridge Regel initiiert eine Lambda-Funktion im Verbraucherkonto. Die Lambda-Funktion bewirkt Folgendes:

   1. Die Lambda-Funktion aktualisiert die AMI-bezogenen Daten in einer DynamoDB-Tabelle im Verbraucherkonto.

   1. Die Lambda-Funktion nimmt eine IAM-Rolle im Creator-Konto an und aktualisiert die Lambda-Tabelle im Creator-Konto. In der `Mapping` Tabelle wird ein Element erstellt, das die Instance-ID oder die Startvorlagen-ID der jeweiligen AMI-ID zuordnet.

1. Das AMI, das zentral im Creator-Konto verwaltet wird, ist veraltet, deregistriert oder nicht gemeinsam genutzt.

1. Die EventBridge Regel im Creator-Konto erfasst das `ModifyImageAttribute` `DeregisterImage` OR-Ereignis mit der `remove` Aktion und initiiert die Lambda-Funktion.

1. Die Lambda-Funktion überprüft die DynamoDB-Tabelle, um festzustellen, ob das AMI in einem der Verbraucherkonten verwendet wird. Wenn in der `Mapping` Tabelle keine Instance IDs oder Startvorlage mit dem AMI IDs verknüpft ist, ist der Vorgang abgeschlossen.

1. Wenn dem AMI in der `Mapping` Tabelle eine Instance IDs oder Startvorlage IDs zugeordnet ist, verwendet die Lambda-Funktion Amazon SES, um eine E-Mail-Benachrichtigung an die konfigurierten Abonnenten zu senden.

## Tools
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts-tools"></a>

**AWS-Services**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS Lambda Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen. AWS-Konten
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, sie zu verwenden.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) unterstützt Sie beim Senden und Empfangen von E-Mails mithilfe Ihrer eigenen E-Mail-Adressen und Domains.

**Andere Tools**
+ [HashiCorp Terraform](https://www.terraform.io/docs) ist ein Infrastructure-as-Code-Tool (IaC), mit dem Sie mithilfe von Code Cloud-Infrastruktur und -Ressourcen bereitstellen und verwalten können.
+ [Python](https://www.python.org/) ist eine Allzweck-Computerprogrammiersprache.

**Code-Repository**

Der Code für dieses Muster ist im Repository GitHub [cross-account-ami-monitoring-terraform-samples](https://github.com/aws-samples/cross-account-ami-monitoring-terraform-samples) verfügbar.

## Best Practices
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts-best-practices"></a>
+ Folgen Sie den [Best Practices für die Arbeit](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html) mit Funktionen. AWS Lambda 
+ Folgen Sie den [Best Practices für das Bauen AMIs](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html).
+ Halten Sie sich bei der Erstellung der IAM-Rolle an das Prinzip der geringsten Rechte und gewähren Sie nur die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen. Weitere Informationen finden Sie in der IAM-Dokumentation unter [Gewährung der geringsten Rechte](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) und [bewährte Methoden zur Sicherheit](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html).
+ Richten Sie die Überwachung und Warnmeldungen für die AWS Lambda Funktionen ein. Weitere Informationen finden Sie unter [Überwachung und Problembehandlung von Lambda-Funktionen](https://docs.aws.amazon.com/lambda/latest/dg/lambda-monitoring.html).

## Epen
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts-epics"></a>

### Passen Sie die Terraform-Konfigurationsdateien an
<a name="customize-the-terraform-configuration-files"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die AWS CLI benannten Profile. | Erstellen Sie für das Erstellerkonto und jedes Verbraucherkonto ein AWS Command Line Interface (AWS CLI) benanntes Profil. Anweisungen dazu finden Sie AWS CLI im Ressourcencenter für die ersten AWS Schritte unter [Einrichten](https://aws.amazon.com/getting-started/guides/setup-environment/module-three/) von. | DevOps Ingenieur | 
| Klonen Sie das Repository | Geben Sie den folgenden Befehl ein. Dadurch wird das Repository [cross-account-ami-monitoring-terraform-samples](https://github.com/aws-samples/cross-account-ami-monitoring-terraform-samples) mithilfe von SSH geklont. GitHub <pre>git clone git@github.com:aws-samples/cross-account-ami-monitoring-terraform-samples.git</pre> | DevOps Ingenieur | 
| Aktualisieren Sie die Datei provider.tf. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html)Weitere Informationen zur Konfiguration der Anbieter finden Sie unter [Konfigurationen mehrerer Anbieter](https://developer.hashicorp.com/terraform/language/providers/configuration#alias-multiple-provider-configurations) in der Terraform-Dokumentation. | DevOps Ingenieur | 
| Aktualisieren Sie die Datei terraform.tfvars. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | DevOps Ingenieur | 
| Aktualisieren Sie die Datei main.tf. | Führen Sie diese Schritte nur aus, wenn Sie diese Lösung für mehr als ein Kundenkonto bereitstellen. Wenn Sie diese Lösung nur für ein Verbraucherkonto bereitstellen, ist keine Änderung dieser Datei erforderlich.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | DevOps Ingenieur | 

### Stellen Sie die Lösung mithilfe von Terraform bereit
<a name="deploy-the-solution-by-using-terraform"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Lösung bereit. | Geben Sie in der Terraform-CLI die folgenden Befehle ein, um die AWS Ressourcen in den Creator- und Consumer-Konten bereitzustellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | DevOps Ingenieur | 
| Überprüfen Sie die Identität der E-Mail-Adresse. | Bei der Bereitstellung des Terraform-Plans hat Terraform für jedes Verbraucherkonto in Amazon SES eine E-Mail-Adressidentität erstellt. Bevor Benachrichtigungen an diese E-Mail-Adresse gesendet werden können, müssen Sie die E-Mail-Adresse überprüfen. Anweisungen finden Sie in der Amazon SES SES-Dokumentation unter [Verifizieren der Identität einer E-Mail-Adresse](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-email-proc). | Allgemeines AWS | 

### Überprüfen Sie den Ressourceneinsatz
<a name="validate-resource-deployment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bestätigen Sie die Bereitstellung im Creator-Konto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | DevOps Ingenieur | 
| Überprüfen Sie die Bereitstellung im Kundenkonto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | DevOps Ingenieur | 

### Überwachung validieren
<a name="validate-monitoring"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein AMI im Creator-Konto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | DevOps Ingenieur | 
| Verwenden Sie das AMI im Verbraucherkonto. | Verwenden Sie im Verbraucherkonto das gemeinsam genutzte AMI, um eine EC2 Amazon-Instance oder eine Startvorlage zu erstellen. Anweisungen finden Sie unter [Wie starte ich eine EC2 Amazon-Instance von einem benutzerdefinierten AMI aus](https://repost.aws/knowledge-center/launch-instance-custom-ami) (AWS re:POST Knowledge Center) oder [Erstellen Sie eine Startvorlage für eine Auto Scaling Scaling-Gruppe (Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) Scaling-Dokumentation). | DevOps Ingenieur | 
| Überprüfen Sie die Überwachung und Alarmierung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | DevOps Ingenieur | 

### (Optional) Beenden Sie die gemeinsame Überwachung AMIs
<a name="optional-stop-monitoring-shared-amis"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Löschen Sie die Ressourcen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | DevOps Ingenieur | 

## Fehlerbehebung
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Ich habe keine E-Mail-Benachrichtigung erhalten. | Es kann mehrere Gründe geben, warum die Amazon SES SES-E-Mail nicht gesendet wurde. Überprüfen Sie, ob Folgendes der Fall ist:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts.html) | 

## Zugehörige Ressourcen
<a name="monitor-use-of-a-shared-amazon-machine-image-across-multiple-aws-accounts-resources"></a>

**AWS Dokumentation**
+ [Lambda-Funktionen mit Python erstellen](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html) (Lambda-Dokumentation)
+ [Ein AMI erstellen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami.html) ( EC2 Amazon-Dokumentation)
+ [Teilen Sie ein AMI mit bestimmten Personen AWS-Konten](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) ( EC2 Amazon-Dokumentation)
+ [Ihr AMI abmelden](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html) ( EC2 Amazon-Dokumentation)

**Terraform-Dokumentation**
+ [Installieren Sie Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)
+ [Terraform-Backend-Konfiguration](https://www.terraform.io/language/settings/backends/configuration)
+ [Terraform AWS-Anbieter](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)
+ [Terraform-Binärdatei herunterladen](https://developer.hashicorp.com/terraform/install)