

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.

# Amazon ECR-Überwachung
<a name="monitoring"></a>

Sie können Ihre Amazon ECR-API-Nutzung mit Amazon überwachen CloudWatch, das Rohdaten aus Amazon ECR sammelt und zu lesbaren Metriken nahezu in Echtzeit verarbeitet. Diese Statistiken werden über einen Zeitraum von zwei Wochen aufgezeichnet, sodass Sie auf historische Informationen zugreifen und sich einen Überblick über Ihre API-Nutzung verschaffen können. Amazon ECR-Metrikdaten werden automatisch innerhalb von einer Minute CloudWatch an gesendet. Weitere Informationen zu CloudWatch finden Sie im [ CloudWatch Amazon-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

Amazon ECR liefert Metriken, die auf Ihrer API-Nutzung für Autorisierungs-, Image-Push- und Image-Pull-Aktionen basieren.

Die Überwachung ist ein wichtiger Bestandteil der Aufrechterhaltung der Zuverlässigkeit, Verfügbarkeit und Leistung von Amazon ECR und Ihren AWS Lösungen. Wir empfehlen Ihnen, Überwachungsdaten aus den Ressourcen zu sammeln, aus denen Ihre AWS Lösung besteht, damit Sie einen etwaigen Fehler an mehreren Stellen leichter debuggen können. Bevor Sie mit der Überwachung von Amazon ECR beginnen, sollten Sie jedoch einen Überwachungsplan erstellen, der Antworten auf die folgenden Fragen enthält:
+ Was sind Ihre Ziele bei der Überwachung?
+ Welche Ressourcen werden überwacht?
+ Wie oft werden diese Ressourcen überwacht?
+ Welche Überwachungstools werden verwendet?
+ Wer soll die Überwachungsaufgaben ausführen?
+ Wer soll benachrichtigt werden, wenn Fehler auftreten?

Der nächste Schritt besteht darin, eine Basislinie für die normale Amazon ECR-Leistung in Ihrer Umgebung zu erstellen, indem Sie die Leistung zu verschiedenen Zeiten und unter verschiedenen Lastbedingungen messen. Speichern Sie bei der Überwachung von Amazon ECR historische Überwachungsdaten, damit Sie sie mit neuen Leistungsdaten vergleichen, normale Leistungsmuster und Leistungsanomalien erkennen und Methoden zur Behebung von Problemen entwickeln können.

**Topics**
+ [Visualisierung Ihrer Service Quotas und Einstellung von Alarmen](monitoring-quotas-alarms.md)
+ [Amazon ECR-Nutzungsmetriken](monitoring-usage.md)
+ [Amazon ECR-Nutzungsberichte](usage-reports.md)
+ [Amazon-ECR-Repository-Metriken](ecr-repository-metrics.md)
+ [Amazon ECR-Ereignisse und EventBridge](ecr-eventbridge.md)
+ [Protokollierung von Amazon ECR-Aktionen mit AWS CloudTrail](logging-using-cloudtrail.md)

# Visualisierung Ihrer Service Quotas und Einstellung von Alarmen
<a name="monitoring-quotas-alarms"></a>

Sie können die CloudWatch Konsole verwenden, um Ihre Servicekontingenten zu visualisieren und zu sehen, wie Ihre aktuelle Nutzung im Vergleich zu Servicekontingenten abschneidet. Sie können auch Alarme festlegen, damit Sie benachrichtigt werden, wenn Sie sich einem Kontingent nähern.

**So visualisieren Sie ein Service Quotas und legen optional einen Alarm fest**

1. Öffnen Sie die CloudWatch Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie im Navigationsbereich **Metriken** aus.

1. Auf der Registerkarte **Alle Metriken** wählen Sie **Nutzung** und dann **Nach AWS Ressourcen**.

   Die Liste der Service Quotas-Nutzungsmetriken wird angezeigt.

1. Aktivieren Sie das Kontrollkästchen neben einer der Metriken.

   Das Diagramm zeigt Ihre aktuelle Nutzung dieser AWS Ressource.

1. Gehen Sie wie folgt vor, um Service Quotas in das Diagramm aufzunehmen:

   1. Wählen Sie die Registerkarte **Graphed metrics** (Grafisch dargestellte Metriken) aus.

   1. Wählen Sie **Math expression** (Mathematischer Ausdruck), **Start with an empty expression** (Mit einem leeren Ausdruck beginnen). Geben Sie dann in der neuen Zeile unter **Details** **SERVICE\$1QUOTA(m1)** ein.

      Dem Diagramm wird eine neue Linie hinzugefügt, die Service Quotas für die in der Metrik dargestellten Ressource anzeigt.

1. Um Ihre aktuelle Nutzung als Prozentsatz des Kontingents anzuzeigen, fügen Sie einen neuen Ausdruck hinzu oder ändern Sie den aktuellen **SERVICE\$1QUOTA**-Ausdruck. Verwenden Sie für den neuen Ausdruck **m1/60/SERVICE\$1QUOTA(m1)\$1100**.

1. (Optional) Gehen Sie wie folgt vor, um einen Alarm festzulegen, der Sie benachrichtigt, wenn Sie sich Service Quotas nähern:

   1. Wählen Sie in der **m1/60/SERVICE\$1QUOTA(m1)\$1100**-Zeile unter **Aktionen** das Alarmsymbol aus. Es sieht aus wie eine Glocke.

      Die Seite „Alarmerstellung“ wird angezeigt.

   1. Vergewissern Sie sich unter **Conditions** (Bedingungen), dass der **Threshhold type** (Schwellenwert-Typ) **Static** (Statisch) ist und **Whenever Expression1 ist** auf **Greater** (Größer) festgelegt ist. Unter **als** geben Sie **80** ein. Dadurch wird ein Alarm ausgelöst, der in den Zustand ALARM übergeht, wenn die Nutzung 80 Prozent des Kontingents überschreitet.

   1. Wählen Sie **Weiter** aus.

   1. Auf der nächsten Seite können Sie ein Amazon SNS-Thema auswählen oder ein neues erstellen. Dieses Thema wird benachrichtigt, wenn der Alarm in den ALARM-Status wechselt. Wählen Sie anschließend **Weiter**.

   1. Geben Sie auf der nächsten Seite einen Namen und eine Beschreibung für den Alarm ein und wählen Sie dann **Next** (Weiter).

   1. Wählen Sie **Alarm erstellen** aus.

# Amazon ECR-Nutzungsmetriken
<a name="monitoring-usage"></a>

Sie können CloudWatch Nutzungsmetriken verwenden, um einen Überblick über die Ressourcennutzung Ihres Kontos zu erhalten. Verwenden Sie diese Kennzahlen, um Ihre aktuelle Servicenutzung in CloudWatch Diagrammen und Dashboards zu visualisieren.

Die Nutzungsmetriken von Amazon ECR entsprechen den AWS Servicekontingenten. Sie können Alarme konfigurieren, mit denen Sie benachrichtigt werden, wenn sich Ihre Nutzung einem Servicekontingent nähert. Weitere Informationen über Amazon ECR Service Quotas finden Sie unter [Amazon ECR Service Quotas](service-quotas.md).

Amazon ECR veröffentlicht die folgenden Metriken im Namespace `AWS/Usage`.


|  Metrik  |  Description  | 
| --- | --- | 
|  `CallCount`  |  Die Anzahl der API-Aktionsaufrufe von Ihrem Konto. Die Ressourcen werden durch die Dimensionen definiert, die der Metrik zugeordnet sind. Die nützlichste Statistik für diese Metrik ist `SUM`, mit der die Summe der Werte aller Mitwirkenden während der definierten Periode dargestellt wird.  | 
|  `ResourceCount`  |  Die Anzahl der angegebenen Ressourcen in Ihrem Konto. Die Ressourcen werden durch die Dimensionen definiert, die der Metrik zugeordnet sind. Die nützlichste Statistik für diese Metrik ist`MAXIMUM`, welche die maximale Anzahl von Ressourcen darstellt, die in einem Zeitraum von 5 Minuten genutzt wurden.  | 

Die folgenden Dimensionen werden verwendet, um die API-Nutzungsmetriken zu verfeinern, die von Amazon ECR veröffentlicht werden.


|  Dimension  |  Description  | 
| --- | --- | 
|  `Service`  |  Der Name des AWS Dienstes, der die Ressource enthält. Für Amazon ECR-Nutzungsmetriken lautet der Wert für diese Dimension `ECR`.  | 
|  `Type`  |  Der Typ von Entität, die gemeldet wird. Derzeit ist der einzig gültige Wert für Amazon ECR API-Nutzungsmetriken. `API`  | 
|  `Resource`  |  Der Typ der Ressource, die ausgeführt wird. Derzeit liefert Amazon ECR Informationen über Ihre API-Nutzung für die folgenden API-Aktionen. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonECR/latest/userguide/monitoring-usage.html)  | 
|  Class  |  Die Klasse der nachverfolgten Ressource. Derzeit verwendet Amazon ECR die Klassendimension nicht.  | 

Die folgenden Dimensionen werden verwendet, um die von Amazon ECR veröffentlichten Metriken zur Ressourcennutzung zu verfeinern.


|  Dimension  |  Description  | 
| --- | --- | 
|  `Service`  |  Der Name des AWS Dienstes, der die Ressource enthält. Für Amazon ECR-Nutzungsmetriken lautet der Wert für diese Dimension `ECR`.  | 
|  `Type`  |  Der Typ von Entität, die gemeldet wird. Derzeit ist der einzig gültige Wert für Amazon ECR-Metriken zur Ressourcennutzung. `RESOURCE`  | 
|  `Resource`  |  Der Typ der Ressource, die ausgeführt wird. Derzeit gibt Amazon ECR Informationen zu Ihrer Ressourcennutzung für die folgenden Kennzahlen zurück. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonECR/latest/userguide/monitoring-usage.html)  | 
|  `ResourceId`  |  Die Kennung der Ressource, die genutzt wurde. Derzeit ResourceId ist nur relevant für `ImagesPerRepositoryCount` und sein Wert ist als „repository/your\$1repository\$1name. For example: "repository/my-repo“ formatiert. Gibt die Anzahl der Bilder im Repository mit dem Namen „my-repo“ zurück.  | 

# Amazon ECR-Nutzungsberichte
<a name="usage-reports"></a>

AWS bietet ein kostenloses Berichtstool namens Cost Explorer, mit dem Sie die Kosten und die Nutzung Ihrer Amazon ECR-Ressourcen analysieren können.

Verwenden Sie den Cost Explorer, um Diagramme Ihrer Nutzung und Kosten anzuzeigen. Sie können die Daten der vorherigen 13 Monate anzeigen und prognostizieren, wie viel Sie wahrscheinlich für die nächsten drei Monate ausgeben werden. Sie können den Cost Explorer verwenden, um Muster in Ihren Ausgaben für AWS -Ressourcen im Verlauf der Zeit zu sehen, Bereiche zu identifizieren, die eine genauere Untersuchung erfordern, und Trends auszumachen, die Ihnen helfen, Ihre Kosten zu verstehen. Sie können auch Zeitbereiche für die Daten angeben und die Daten nach Tagen oder Monate anzeigen lassen.

Die Messdaten in Ihren Kosten- und Nutzungsberichten zeigen die Nutzung in allen Ihren Amazon ECR-Repositories. Weitere Informationen finden Sie unter [Markieren von Ressourcen für die Fakturierung](ecr-using-tags.md#tag-resources-for-billing).

Weitere Informationen zur Erstellung eines AWS Kosten- und Nutzungsberichts finden Sie unter [AWS Kosten- und Nutzungsbericht](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-reports-costusage.html) im *AWS Billing Benutzerhandbuch*.

# Amazon-ECR-Repository-Metriken
<a name="ecr-repository-metrics"></a>

Amazon ECR sendet Metriken zur Anzahl der Repository-Abrufe an Amazon CloudWatch. Amazon ECR-Metrikdaten werden automatisch CloudWatch in Zeitabständen von 1 Minute an gesendet. Weitere Informationen zu CloudWatch finden Sie im [ CloudWatch Amazon-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

**Topics**
+ [CloudWatch Metriken aktivieren](#enable_cloudwatch)
+ [Verfügbare Metriken und Dimensionen](#available_cloudwatch_metrics)
+ [Amazon ECR-Metriken mit der CloudWatch Konsole anzeigen](#viewing_metrics_console)

## CloudWatch Metriken aktivieren
<a name="enable_cloudwatch"></a>

Amazon ECR sendet Repository-Metriken automatisch für alle Repositorys. Sie müssen keine manuellen Schritte unternehmen.

## Verfügbare Metriken und Dimensionen
<a name="available_cloudwatch_metrics"></a>

In den folgenden Abschnitten sind die Metriken und Dimensionen aufgeführt, die Amazon ECR an Amazon CloudWatch sendet.

### Amazon-ECR-Metriken
<a name="ecr-metrics"></a>

Amazon ECR stellt Metriken bereit, mit denen Sie Ihre Repositorys überwachen können. Sie können die Pullcount messen.

Der `AWS/ECR`-Namespace enthält die folgenden Metriken.

`RepositoryPullCount`  
Die Gesamtzahl der Pulls für die Images im Repository.  
Gültige Dimensionen: `RepositoryName`.  
Gültige Statistiken: Durschnitt, Minimum, Maximum, Summe, Datenstichproben. Die nützlichste Statistik ist Sum.  
Unit: Integer.

### Dimensionen für Amazon-ECR-Metriken
<a name="ecs-metrics-dimensions"></a>

Amazon-ECR-Metriken verwenden den `AWS/ECR`-Namespace und stellen Metriken für folgende Dimensionen bereit.

`RepositoryName`  
Diese Dimension filtert die Daten, die Sie für alle Container-Images in einem bestimmten Repository anfordern.

## Amazon ECR-Metriken mit der CloudWatch Konsole anzeigen
<a name="viewing_metrics_console"></a>

Sie können die Amazon ECR-Repository-Metriken auf der CloudWatch Konsole anzeigen. Die CloudWatch Konsole bietet eine detaillierte und anpassbare Anzeige Ihrer Ressourcen. Weitere Informationen finden Sie im [ CloudWatch Amazon-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

# Amazon ECR-Ereignisse und EventBridge
<a name="ecr-eventbridge"></a>

Amazon EventBridge ermöglicht es Ihnen, Ihre AWS Services zu automatisieren und automatisch auf Systemereignisse wie Probleme mit der Anwendungsverfügbarkeit oder Ressourcenänderungen zu reagieren. Ereignisse im AWS Rahmen von Services werden EventBridge nahezu in Echtzeit übermittelt. Sie können einfache Regeln schreiben, um anzugeben, welche Ereignisse für Sie interessant sind, durchzuführende automatisierte Aktionen einschließen, wenn sich für ein Ereignis eine Übereinstimmung mit einer Regel ergibt. Die folgenden Aktionen können beispielsweise automatisch ausgelöst werden:
+ Ereignisse zu Protokollgruppen in CloudWatch Logs hinzufügen
+ Eine AWS Lambda Funktion aufrufen
+ Aufrufen eines Amazon EC2 Run Command
+ Weiterleiten des Ereignisses an Amazon Kinesis Data Streams
+ Aktivierung einer AWS Step Functions Zustandsmaschine
+ Benachrichtigen eines Amazon SNS-Themas oder einer Amazon SQS-Warteschlange

Weitere Informationen finden Sie unter [Erste Schritte mit Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html) im * EventBridge Amazon-Benutzerhandbuch*.

## Beispielereignisse von Amazon ECR
<a name="ecr-eventbridge-bus"></a>

Nachfolgend finden Sie ein Beispiel für Ereignisse aus Amazon ECR. Ereignisse werden auf bestmögliche Weise ausgegeben.

**Ereignis für einen abgeschlossenen Image-Push**

Das folgende Ereignis wird gesendet, wenn jeder Image-Push abgeschlossen ist. Weitere Informationen finden Sie unter [Ein Docker-Image in ein privates Amazon ECR-Repository übertragen](docker-push-ecr-image.md).

```
{
    "version": "0",
    "id": "13cde686-328b-6117-af20-0e5566167482",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-11-16T01:54:34Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "result": "SUCCESS",
        "repository-name": "my-repository-name",
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "action-type": "PUSH",
        "image-tag": "latest"
    }
}
```

**Ereignis für eine Pull-Through-Cache-Aktion**

Das folgende Ereignis wird gesendet, wenn versucht wird, eine Pull-Through-Cache-Aktion auszuführen. Weitere Informationen finden Sie unter [Synchronisieren Sie eine Upstream-Registrierung mit einer privaten Amazon ECR-Registrierung](pull-through-cache.md).

```
{
    "version": "0",
    "id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
    "detail-type": "ECR Pull Through Cache Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2023-02-29T02:36:48Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:ecr:us-west-2:123456789012:repository/docker-hub/alpine"
    ],
    "detail": {
        "rule-version": "1",
        "sync-status": "SUCCESS",
        "ecr-repository-prefix": "docker-hub",
        "repository-name": "docker-hub/alpine",
        "upstream-registry-url": "public.ecr.aws",
        "image-tag": "3.17.2",
        "image-digest": "sha256:4aa08ef415aecc80814cb42fa41b658480779d80c77ab15EXAMPLE",
    }
}
```

**Ereignis für einen abgeschlossenen Image-Scan (grundlegendes Scanning)**

Wenn der grundlegende Scan für Ihre Registrierung aktiviert ist, wird das folgende Ereignis gesendet, wenn jeder Image-Scan abgeschlossen ist. Der `finding-severity-counts`-Parameter gibt nur einen Wert für einen Schweregrad zurück, wenn ein solcher vorhanden ist. Wenn das Image beispielsweise keine Ergebnisse auf `CRITICAL`-Ebene enthält, wird keine kritische Zählung zurückgegeben. Weitere Informationen finden Sie unter [Bilder auf Betriebssystemschwachstellen in Amazon ECR scannen](image-scanning-basic.md).

**Anmerkung**  
Weitere Informationen zu Ereignissen, die Amazon Inspector ausgibt, wenn das erweiterte Scannen aktiviert ist, finden Sie unter [EventBridge Ereignisse, die zum erweiterten Scannen in Amazon ECR gesendet wurden](image-scanning-enhanced-events.md).

```
{
    "version": "0",
    "id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
    "detail-type": "ECR Image Scan",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-10-29T02:36:48Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ecr:us-east-1:123456789012:repository/my-repository-name"
    ],
    "detail": {
        "scan-status": "COMPLETE",
        "repository-name": "my-repository-name",
        "finding-severity-counts": {
	       "CRITICAL": 10,
	       "MEDIUM": 9
	     },
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "image-tags": []
    }
}
```

**Ereignis für eine Änderungsbenachrichtigung für eine Ressource mit aktiviertem verbessertem Scannen (erweitertes Scannen)**

Wenn das erweiterte Scannen für Ihre Registrierung aktiviert ist, wird das folgende Ereignis von Amazon ECR gesendet, wenn es eine Änderung an einer Ressource gibt, für die das erweiterte Scannen aktiviert ist. Dazu gehören neue Repositorys, die Untersuchungshäufigkeit für ein Repository, das geändert wird, oder wenn Images in Repositorys mit aktiviertem erweiterten Scannen erstellt oder gelöscht werden. Weitere Informationen finden Sie unter [Bilder auf Softwareschwachstellen in Amazon ECR scannen](image-scanning.md).

```
{
	"version": "0",
	"id": "0c18352a-a4d4-6853-ef53-0ab8638973bf",
	"detail-type": "ECR Scan Resource Change",
	"source": "aws.ecr",
	"account": "123456789012",
	"time": "2021-10-14T20:53:46Z",
	"region": "us-east-1",
	"resources": [],
	"detail": {
		"action-type": "SCAN_FREQUENCY_CHANGE",
		"repositories": [{
				"repository-name": "repository-1",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-1",
				"scan-frequency": "SCAN_ON_PUSH",
				"previous-scan-frequency": "MANUAL"
			},
			{
				"repository-name": "repository-2",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-2",
				"scan-frequency": "CONTINUOUS_SCAN",
				"previous-scan-frequency": "SCAN_ON_PUSH"
			},
			{
				"repository-name": "repository-3",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-3",
				"scan-frequency": "CONTINUOUS_SCAN",
				"previous-scan-frequency": "SCAN_ON_PUSH"
			}
		],
		"resource-type": "REPOSITORY",
		"scan-type": "ENHANCED"
	}
}
```

**Ereignis für eine Image-Löschung**

Das folgende Ereignis wird gesendet, wenn ein Image gelöscht wird. Weitere Informationen finden Sie unter [Löschen eines Bilds in Amazon ECR](delete_image.md).

```
{
    "version": "0",
    "id": "dd3b46cb-2c74-f49e-393b-28286b67279d",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-11-16T02:01:05Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "result": "SUCCESS",
        "repository-name": "my-repository-name",
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "action-type": "DELETE",
        "image-tag": "latest"
    }
}
```

**Ereignis für eine Bildarchivierungsaktion**

Das folgende Ereignis wird gesendet, wenn ein Bild archiviert wird. Das `target-storage-class` Feld wird auf gesetzt`ARCHIVE`. Das Ereignis umfasst die Medientypen Manifest und Artifact, mit denen der Typ des archivierten Inhalts identifiziert werden kann.

```
{
    "version": "0",
    "id": "4f5ec4d5-4de4-7aad-a046-EXAMPLE",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T00:58:09Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "ARCHIVE",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "ubuntu",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
        "artifact-media-type": "application/vnd.oci.image.config.v1+json"
    }
}
```

**Ereignis für eine Image-Wiederherstellungsaktion**

Das folgende Ereignis wird gesendet, wenn ein archiviertes Image wiederhergestellt wird. Das `target-storage-class` Feld wird auf gesetzt`STANDARD`. Das Ereignis enthält ein `last-activated-at` Feld, das anzeigt, wann das Bild zuletzt wiederhergestellt wurde.

```
{
    "version": "0",
    "id": "7b8fc5e6-5ef5-8bbe-b157-EXAMPLE",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T01:15:22Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "STANDARD",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "ubuntu",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
        "artifact-media-type": "application/vnd.oci.image.config.v1+json",
        "last-activated-at": "2025-10-10T19:13:02.74Z"
    }
}
```

**Ereignis für eine Aktion zur Wiederherstellung des Referrers**

Das folgende Ereignis wird gesendet, wenn ein archivierter Referrer (Referenzartefakt wie eine SBOM, Signatur oder Bescheinigung) wiederhergestellt wird. Beachten Sie, dass das dazu dient, `detail-type` es von normalen `ECR Referrer Action` Bildaktionen zu unterscheiden. Die `artifact-media-type` Felder `manifest-media-type` und identifizieren den spezifischen Typ des Referrers, der wiederhergestellt wird. In diesem Beispiel wird ein SBOM-Artefakt wiederhergestellt.

```
{
    "version": "0",
    "id": "8c9gd6f7-6fg6-9ccf-c268-EXAMPLE",
    "detail-type": "ECR Referrer Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T01:20:45Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "STANDARD",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "sbom",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.cncf.oras.artifact.manifest.v1+json",
        "artifact-media-type": "text/sbom+json",
        "last-activated-at": "2025-10-10T19:13:02.74Z"
    }
}
```

**Ereignis für eine abgeschlossene Image-Replikation**

Das folgende Ereignis wird gesendet, wenn jede Image-Replikation abgeschlossen ist. Weitere Informationen finden Sie unter [Replikation privater Images in Amazon ECR](replication.md).

```
{
  "version": "0",
  "id": "c8b133b1-6029-ee73-e2a1-4f466b8ba999",
  "detail-type": "ECR Replication Action",
  "source": "aws.ecr",
  "account": "123456789012",
  "time": "2024-05-08T20:44:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecr:us-east-1:123456789012:repository/docker-hub/alpine"
  ],
  "detail": {
    "result": "SUCCESS",
    "repository-name": "docker-hub/alpine",
    "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
    "source-account": "123456789012",
    "action-type": "REPLICATE",
    "source-region": "us-west-2",
    "image-tag": "3.17.2"
  }
}
```

**Ereignis für eine fehlgeschlagene Image-Replikation**

Das folgende Ereignis wird gesendet, wenn eine Bildreplikation fehlschlägt. Das `result` Feld enthält zusätzliche Fehlerinformationen `FAILED` und kann in den Ereignisdetails enthalten sein.

```
{
  "version": "0",
  "id": "d9c244c2-7130-ff84-f3b2-5g577c9cb000",
  "detail-type": "ECR Replication Action",
  "source": "aws.ecr",
  "account": "123456789012",
  "time": "2024-05-08T20:45:12Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecr:us-east-1:123456789012:repository/my-app"
  ],
  "detail": {
    "result": "FAILED",
    "repository-name": "my-app",
    "image-digest": "sha256:8g6c3751gf7gc5g47603ege4511d5a80ead5g90f5893543f1489bde2345",
    "source-account": "123456789012",
    "action-type": "REPLICATE",
    "source-region": "us-west-2",
    "image-tag": "latest"
  }
}
```

# Protokollierung von Amazon ECR-Aktionen mit AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

Amazon ECR ist in einen Service integriert AWS CloudTrail, der eine Aufzeichnung der Aktionen bereitstellt, die von einem Benutzer, einer Rolle oder einem AWS Service in Amazon ECR ausgeführt wurden. CloudTrail erfasst die folgenden Amazon ECR-Aktionen als Ereignisse:
+ Alle API-Aufrufe, einschließlich Aufrufen von der Amazon ECR-Konsole
+ Alle Aktionen, die aufgrund der Verschlüsselungseinstellungen in Ihren Repositories durchgeführt werden
+ Alle Aktionen, die aufgrund von Lebenszyklus-Richtlinienregeln durchgeführt werden, einschließlich erfolgreicher sowie erfolgloser Aktionen
**Wichtig**  
Aufgrund der Größenbeschränkungen einzelner CloudTrail Ereignisse sendet Amazon ECR bei Lebenszyklus-Richtlinienaktionen, bei denen 10 oder mehr Bilder abgelaufen sind, mehrere Ereignisse an CloudTrail. Darüber hinaus enthält Amazon ECR maximal 100 Tags pro Image.

Wenn ein Trail erstellt wird, können Sie die kontinuierliche Übermittlung von CloudTrail Ereignissen an einen Amazon S3 S3-Bucket aktivieren, einschließlich Ereignissen für Amazon ECR. Wenn Sie keinen Trail konfigurieren, können Sie die neuesten Ereignisse trotzdem in der CloudTrail Konsole im **Ereignisverlauf** anzeigen. Anhand dieser Informationen können Sie feststellen, welche Anfrage an Amazon ECR gestellt wurde, von welcher IP-Adresse sie ausging, wer die Anfrage gestellt hat, wann sie gestellt wurde und weitere Details. 

Weitere Informationen finden Sie im [AWS CloudTrail -Benutzerhandbuch](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

## Amazon ECR-Informationen in CloudTrail
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail ist für Ihr AWS Konto aktiviert, wenn Sie das Konto erstellen. Wenn eine Aktivität in Amazon ECR auftritt, wird diese Aktivität zusammen mit anderen AWS Serviceereignissen in der CloudTrail **Ereignishistorie in einem Ereignis** aufgezeichnet. Sie können aktuelle Ereignisse in Ihrem AWS Konto ansehen, suchen und herunterladen. Weitere Informationen finden Sie unter [Ereignisse mit CloudTrail Ereignisverlauf anzeigen](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html). 

Für eine fortlaufende Aufzeichnung von Ereignissen in Ihrem AWS Konto, einschließlich Ereignissen für Amazon ECR, erstellen Sie einen Trail. Ein Trail ermöglicht CloudTrail die Übermittlung von Protokolldateien an einen Amazon S3 S3-Bucket. Wenn Sie einen Trail in der Konsole erstellen, können Sie den Trail auf eine einzelne Region oder auf alle Regionen anwenden. Der Trail protokolliert Ereignisse in der AWS Partition und übermittelt die Protokolldateien an den von Ihnen angegebenen Amazon S3 S3-Bucket. Darüber hinaus können Sie andere AWS Dienste so konfigurieren, dass sie die in den CloudTrail Protokollen gesammelten Ereignisdaten analysieren und darauf reagieren. Weitere Informationen finden Sie unter: 
+ [Einen Trail für dein AWS Konto erstellen](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [AWS Serviceintegrationen mit Protokollen CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [Konfiguration von Amazon SNS SNS-Benachrichtigungen für CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [Empfangen von CloudTrail Protokolldateien aus mehreren Regionen](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) und [Empfangen von CloudTrail Protokolldateien von mehreren Konten](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

Alle Amazon ECR API-Aktionen werden von der [Amazon Elastic Container Registry API-Referenz](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/) protokolliert CloudTrail und sind in dieser dokumentiert. Wenn Sie allgemeine Aufgaben ausführen, werden in den CloudTrail Protokolldateien Abschnitte für jede API-Aktion generiert, die Teil dieser Aufgabe ist. Wenn Sie beispielsweise ein Repository erstellen`GetAuthorizationToken`, `CreateRepository` werden `SetRepositoryPolicy` Abschnitte in den CloudTrail Protokolldateien generiert. Wenn Sie ein Bild in ein Repository übertragen, werden`InitiateLayerUpload`,`UploadLayerPart`,`CompleteLayerUpload`, und`PutImage`, falls das Blob-Mounting aktiviert ist, `MountLayer` Abschnitte generiert. Bei einem Abrufen des Images werden `GetDownloadUrlForLayer` und `BatchGetImage`-Abschnitte generiert. Wenn Sie ein Bild archivieren oder wiederherstellen, wird ein `UpdateImageStorageClass` Abschnitt generiert. Wenn OCI Clients, die die OCI 1.1 Spezifikation unterstützen, die Liste der Referrer oder Referenzartefakte für ein Bild mithilfe der Referrer-API abrufen, wird ein Ereignis ausgelöst. `ListImageReferrers` CloudTrail Beispiele für diese gängigen Aufgaben finden Sie unter [CloudTrail Beispiele für Protokolleinträge](#cloudtrail-examples).

Jeder Ereignis- oder Protokolleintrag enthält Informationen zu dem Benutzer, der die Anforderung generiert hat. Die Identitätsinformationen unterstützen Sie bei der Ermittlung der folgenden Punkte:
+ Ob die Anfrage mit Root- oder -Benutzeranmeldeinformationen ausgeführt wurde.
+ Ob die Anfrage mit temporären Sicherheitsanmeldeinformationen für eine Rolle oder einen föderierten Benutzer ausgeführt wurde
+ Ob die Anfrage von einem anderen Dienst gestellt wurde AWS 

Weitere Informationen hierzu finden Sie unter dem [CloudTrail-Element `userIdentity`](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

## Verstehen der Amazon ECR-Protokolldateieinträge
<a name="understanding-service-name-entries"></a>

Ein Trail ist eine Konfiguration, die die Übertragung von Ereignissen als Protokolldateien an einen von Ihnen angegebenen Amazon S3 S3-Bucket ermöglicht. CloudTrail Protokolldateien enthalten einen oder mehrere Protokolleinträge. Ein Ereignis stellt eine einzelne Anfrage aus einer beliebigen Quelle dar und enthält Informationen über die angeforderte Aktion, Datum und Uhrzeit der Aktion, Anforderungsparameter und andere Informationen. CloudTrail Protokolldateien sind kein geordneter Stack-Trace der öffentlichen API-Aufrufe, sodass sie nicht in einer bestimmten Reihenfolge angezeigt werden. 

### CloudTrail Beispiele für Protokolleinträge
<a name="cloudtrail-examples"></a>

Im Folgenden finden Sie Beispiele für CloudTrail Protokolleinträge für einige häufig vorkommende Amazon ECR-Aufgaben.

Diese Beispiele wurden für eine bessere Lesbarkeit formatiert. In einer CloudTrail Protokolldatei sind alle Einträge und Ereignisse in einer einzigen Zeile zusammengefasst. Darüber hinaus wurde dieses Beispiel auf einen einzigen Amazon ECR-Eintrag beschränkt. In einer echten CloudTrail Protokolldatei sehen Sie Einträge und Ereignisse von mehreren Diensten. AWS 

**Wichtig**  
Die **Quelle IPAddress** ist die IP-Adresse, von der aus die Anfrage gestellt wurde. Bei Aktionen, die von der Servicekonsole ausgehen, bezieht sich die angegebene Adresse auf Ihre zugrunde liegende Ressource, nicht auf den Konsolen-Webserver. Für Dienste in AWS wird nur der DNS-Name angezeigt. Wir werten die Authentifizierung immer noch anhand der Quell-IP des Clients aus, auch wenn sie so bearbeitet wurde, dass sie dem AWS DNS-Namen dient.

**Topics**
+ [Beispiel: Repository-Aktion erstellen](#cloudtrail-examples-create-repository)
+ [Beispiel: AWS KMS `CreateGrant` API-Aktion beim Erstellen eines Amazon ECR-Repositorys](#cloudtrail-examples-create-repository-kms)
+ [Beispiel: Aktion zum Pushen eines Images](#cloudtrail-examples-push-image)
+ [Beispiel: Aktion zum Abrufen eines Images](#cloudtrail-examples-image-pull)
+ [Beispiel: Image-Lebenszyklus-Richtlinien-Aktion](#cloudtrail-examples-lcp)
+ [Beispiel: Aktion zur Bildarchivierung](#cloudtrail-examples-image-archive)
+ [Beispiel: Aktion zur Wiederherstellung eines Bilds](#cloudtrail-examples-image-restore)
+ [Beispiel: Aktion „Bild-Referrer“](#cloudtrail-examples-image-referrers-action)

#### Beispiel: Repository-Aktion erstellen
<a name="cloudtrail-examples-create-repository"></a>

Das folgende Beispiel zeigt einen CloudTrail Protokolleintrag, der die Aktion demonstriert. `CreateRepository`

```
{
    "eventVersion": "1.04",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2018-07-11T21:54:07Z"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            }
        }
    },
    "eventTime": "2018-07-11T22:17:43Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "CreateRepository",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "203.0.113.12",
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "repositoryName": "testrepo"
    },
    "responseElements": {
        "repository": {
            "repositoryArn": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
            "repositoryName": "testrepo",
            "repositoryUri": "123456789012.dkr.ecr.us-east-2.amazonaws.com/testrepo",
            "createdAt": "Jul 11, 2018 10:17:44 PM",
            "registryId": "123456789012"
        }
    },
    "requestID": "cb8c167e-EXAMPLE",
    "eventID": "e3c6f4ce-EXAMPLE",
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
            "accountId": "123456789012"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

#### Beispiel: AWS KMS `CreateGrant` API-Aktion beim Erstellen eines Amazon ECR-Repositorys
<a name="cloudtrail-examples-create-repository-kms"></a>

Das folgende Beispiel zeigt einen CloudTrail Protokolleintrag, der die AWS KMS `CreateGrant` Aktion beim Erstellen eines Amazon ECR-Repositorys mit aktivierter KMS-Verschlüsselung demonstriert. Für jedes Repository, das mit aktivierter KMS-Verschlüsselung erstellt wurde, sollten Sie zwei `CreateGrant` Protokolleinträge sehen. CloudTrail

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAIEP6W46J43IG7LXAQ",
        "arn": "arn:aws:iam::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "Mary_Major",
        "sessionContext": {
            "sessionIssuer": {
                
            },
            "webIdFederationData": {
                
            },
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2020-06-10T19:22:10Z"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-06-10T19:22:10Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "203.0.113.12",
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "keyId": "4b55e5bf-39c8-41ad-b589-18464af7758a",
        "granteePrincipal": "ecr.us-west-2.amazonaws.com",
        "operations": [
            "GenerateDataKey",
            "Decrypt"
        ],
        "retiringPrincipal": "ecr.us-west-2.amazonaws.com",
        "constraints": {
            "encryptionContextSubset": {
                "aws:ecr:arn": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo"
            }
        }
    },
    "responseElements": {
        "grantId": "3636af9adfee1accb67b83941087dcd45e7fadc4e74ff0103bb338422b5055f3"
    },
    "requestID": "047b7dea-b56b-4013-87e9-a089f0f6602b",
    "eventID": "af4c9573-c56a-4886-baca-a77526544469",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:123456789012:key/4b55e5bf-39c8-41ad-b589-18464af7758a"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

#### Beispiel: Aktion zum Pushen eines Images
<a name="cloudtrail-examples-push-image"></a>

Das folgende Beispiel zeigt einen CloudTrail Protokolleintrag, der einen Image-Push demonstriert, der die `PutImage` Aktion verwendet.

**Anmerkung**  
Wenn Sie ein Bild übertragen, werden Sie in den CloudTrail Protokollen auch `CompleteLayerUpload` Verweise auf `InitiateLayerUpload``UploadLayerPart`, und sehen.

```
{
    "eventVersion": "1.04",
    "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
    "arn": "arn:aws:sts::123456789012:user/Mary_Major",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "PutImage",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageTag": "latest",
		"registryId": "123456789012",
		"imageManifest": "{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 5543,\n      \"digest\": \"sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 43252507,\n         \"digest\": \"sha256:3b37166ec61459e76e33282dda08f2a9cd698ca7e3d6bc44e6a6e7580cdeff8e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 846,\n         \"digest\": \"sha256:504facff238fde83f1ca8f9f54520b4219c5b8f80be9616ddc52d31448a044bd\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 615,\n         \"digest\": \"sha256:ebbcacd28e101968415b0c812b2d2dc60f969e36b0b08c073bf796e12b1bb449\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 850,\n         \"digest\": \"sha256:c7fb3351ecad291a88b92b600037e2435c84a347683d540042086fe72c902b8a\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 168,\n         \"digest\": \"sha256:2e3debadcbf7e542e2aefbce1b64a358b1931fb403b3e4aeca27cb4d809d56c2\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 37720774,\n         \"digest\": \"sha256:f8c9f51ad524d8ae9bf4db69cd3e720ba92373ec265f5c390ffb21bb0c277941\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 30432107,\n         \"digest\": \"sha256:813a50b13f61cf1f8d25f19fa96ad3aa5b552896c83e86ce413b48b091d7f01b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 197,\n         \"digest\": \"sha256:7ab043301a6187ea3293d80b30ba06c7bf1a0c3cd4c43d10353b31bc0cecfe7d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 154,\n         \"digest\": \"sha256:67012cca8f31dc3b8ee2305e7762fee20c250513effdedb38a1c37784a5a2e71\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 176,\n         \"digest\": \"sha256:3bc892145603fffc9b1c97c94e2985b4cb19ca508750b15845a5d97becbd1a0e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 183,\n         \"digest\": \"sha256:6f1c79518f18251d35977e7e46bfa6c6b9cf50df2a79d4194941d95c54258d18\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:b7bcfbc2e2888afebede4dd1cd5eebf029bb6315feeaf0b56e425e11a50afe42\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:2b220f8b0f32b7c2ed8eaafe1c802633bbd94849b9ab73926f0ba46cdae91629\"\n      }\n   ]\n}"
	},
	"responseElements": {
		"image": {
			"repositoryName": "testrepo",
			"imageManifest": "{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 5543,\n      \"digest\": \"sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 43252507,\n         \"digest\": \"sha256:3b37166ec61459e76e33282dda08f2a9cd698ca7e3d6bc44e6a6e7580cdeff8e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 846,\n         \"digest\": \"sha256:504facff238fde83f1ca8f9f54520b4219c5b8f80be9616ddc52d31448a044bd\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 615,\n         \"digest\": \"sha256:ebbcacd28e101968415b0c812b2d2dc60f969e36b0b08c073bf796e12b1bb449\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 850,\n         \"digest\": \"sha256:c7fb3351ecad291a88b92b600037e2435c84a347683d540042086fe72c902b8a\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 168,\n         \"digest\": \"sha256:2e3debadcbf7e542e2aefbce1b64a358b1931fb403b3e4aeca27cb4d809d56c2\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 37720774,\n         \"digest\": \"sha256:f8c9f51ad524d8ae9bf4db69cd3e720ba92373ec265f5c390ffb21bb0c277941\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 30432107,\n         \"digest\": \"sha256:813a50b13f61cf1f8d25f19fa96ad3aa5b552896c83e86ce413b48b091d7f01b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 197,\n         \"digest\": \"sha256:7ab043301a6187ea3293d80b30ba06c7bf1a0c3cd4c43d10353b31bc0cecfe7d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 154,\n         \"digest\": \"sha256:67012cca8f31dc3b8ee2305e7762fee20c250513effdedb38a1c37784a5a2e71\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 176,\n         \"digest\": \"sha256:3bc892145603fffc9b1c97c94e2985b4cb19ca508750b15845a5d97becbd1a0e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 183,\n         \"digest\": \"sha256:6f1c79518f18251d35977e7e46bfa6c6b9cf50df2a79d4194941d95c54258d18\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:b7bcfbc2e2888afebede4dd1cd5eebf029bb6315feeaf0b56e425e11a50afe42\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:2b220f8b0f32b7c2ed8eaafe1c802633bbd94849b9ab73926f0ba46cdae91629\"\n      }\n   ]\n}",
			"registryId": "123456789012",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e",
				"imageTag": "latest"
			}
		}
	},
	"requestID": "cf044b7d-5f9d-11e9-9b2a-95983139cc57",
	"eventID": "2bfd4ee2-2178-4a82-a27d-b12939923f0f",
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"recipientAccountId": "123456789012"
}
```

#### Beispiel: Aktion zum Abrufen eines Images
<a name="cloudtrail-examples-image-pull"></a>

Das folgende Beispiel zeigt einen CloudTrail Protokolleintrag, der einen Image-Pull demonstriert, bei dem die `BatchGetImage` Aktion verwendet wird.

**Anmerkung**  
Wenn Sie die Pull-Übertragung eines Image durchführen und das Image nicht lokal vorhanden ist, erscheinen in den CloudTrail -Protokollen zudem `GetDownloadUrlForLayer`-Verweise.

```
{
    "eventVersion": "1.04",
    "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
    "arn": "arn:aws:sts::123456789012:user/Mary_Major",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T17:23:20Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "BatchGetImage",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "ecr.amazonaws.com",
	"userAgent": "ecr.amazonaws.com",
	"requestParameters": {
		"imageIds": [{
			"imageTag": "latest"
		}],
		"acceptedMediaTypes": [
			"application/json",
			"application/vnd.oci.image.manifest.v1+json",
			"application/vnd.oci.image.index.v1+json",
			"application/vnd.docker.distribution.manifest.v2+json",
			"application/vnd.docker.distribution.manifest.list.v2+json",
			"application/vnd.docker.distribution.manifest.v1+prettyjws"
		],
		"repositoryName": "testrepo",
		"registryId": "123456789012"
	},
	"responseElements": null,
	"requestID": "2a1b97ee-5fa3-11e9-a8cd-cd2391aeda93",
	"eventID": "c84f5880-c2f9-4585-9757-28fa5c1065df",
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"recipientAccountId": "123456789012"
}
```

#### Beispiel: Image-Lebenszyklus-Richtlinien-Aktion
<a name="cloudtrail-examples-lcp"></a>

Das folgende Beispiel zeigt einen CloudTrail Protokolleintrag, der zeigt, wann ein Image aufgrund einer Lebenszyklus-Richtlinienregel abgelaufen ist. Dieser Ereignistyp kann durch Filtern nach `PolicyExecutionEvent` für das Ereignisnamensfeld gefunden werden.

Wenn Sie eine Lifecycle-Richtlinienvorschau testen, generiert Amazon ECR einen CloudTrail Protokolleintrag mit dem Feld für den Ereignisnamen von`DryRunEvent`, mit exakt derselben Struktur wie der`PolicyExecutionEvent`. Wenn Sie den Namen des Ereignisses in ändern`DryRunEvent`, können Sie stattdessen nach Probelaufereignissen filtern.

**Wichtig**  
Aufgrund der Größenbeschränkungen einzelner CloudTrail Ereignisse sendet Amazon ECR bei Lebenszyklus-Richtlinienaktionen, bei denen 10 oder mehr Bilder abgelaufen sind, mehrere Ereignisse an CloudTrail. Darüber hinaus enthält Amazon ECR maximal 100 Tags pro Image.

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-03-12T20:22:12Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "PolicyExecutionEvent",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "9354dd7f-9aac-4e9d-956d-12561a4923aa",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo",
            "accountId": "123456789012",
            "type": "AWS::ECR::Repository"
        }
    ],
    "eventType": "AwsServiceEvent",
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "repositoryName": "testrepo",
        "lifecycleEventPolicy": {
            "lifecycleEventRules": [
                {
                    "rulePriority": 1,
                    "description": "remove all images > 2",
                    "lifecycleEventSelection": {
                        "tagStatus": "Any",
                        "tagPrefixList": [],
                        "countType": "Image count more than",
                        "countNumber": 2
                    },
                    "action": "expire"
                }
            ],
            "lastEvaluatedAt": 0,
            "policyVersion": 1,
            "policyId": "ceb86829-58e7-9498-920c-aa042e33037b"
        },
        "lifecycleEventImageActions": [
            {
                "lifecycleEventImage": {
                    "digest": "sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45",
                    "tagStatus": "Tagged",
                    "tagList": [
                        "alpine"
                    ],
                    "pushedAt": 1584042813000
                },
                "rulePriority": 1
            },
            {
                "lifecycleEventImage": {
                    "digest": "sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf",
                    "tagStatus": "Tagged",
                    "tagList": [
                        "centos"
                    ],
                    "pushedAt": 1584042842000
                },
                "rulePriority": 1
            }
        ],
        "lifecycleEventFailureDetails": [
            {
                "lifecycleEventImage": {
                    "digest": "sha256:9117e1bc28cd20751e584b4ccd19b1178d14cf02d134b04ce6be0cc51bff762a",
                    "tagStatus": "Untagged",
                    "tagList": [],
                    "pushedAt": 1584042844000
                },
                "rulePriority": 1,
                "failureCode": "ImageReferencedByManifestList",
                "failureReason": "Requested image referenced by manifest list: [sha256:4b27c83d44a18c31543039d9e8b2786043ec6c8d00804d5800c5148d6b6f65bc]"
            }
        ]
    }
}
```

#### Beispiel: Aktion zur Bildarchivierung
<a name="cloudtrail-examples-image-archive"></a>

Das folgende Beispiel zeigt einen CloudTrail Protokolleintrag, der zeigt, dass ein Bild mithilfe der `UpdateImageStorageClass` Aktion archiviert wird, bei der die `targetStorageClass` Einstellung auf `ARCHIVE` gesetzt ist.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "UpdateImageStorageClass",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageId": {
			"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
		},
		"targetStorageClass": "ARCHIVE",
		"registryId": "123456789012"
	},
	"responseElements": {
		"image": {
			"registryId": "123456789012",
			"repositoryName": "testrepo",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
			},
			"imageStatus": "ARCHIVED"
		}
	},
	"requestID": "cf044b7d-EXAMPLE",
	"eventID": "2bfd4ee2-EXAMPLE",
	"readOnly": false,
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"managementEvent": true,
	"recipientAccountId": "123456789012",
	"eventCategory": "Management"
}
```

#### Beispiel: Aktion zur Wiederherstellung eines Bilds
<a name="cloudtrail-examples-image-restore"></a>

Die folgenden Beispiele zeigen CloudTrail Protokolleinträge, die zeigen, dass ein Image wiederhergestellt wird. Wenn Sie ein archiviertes Image wiederherstellen, werden zwei Ereignisse generiert:

1. Ein API-Aufrufereignis, wenn die Wiederherstellung initiiert wird

1. Ein Dienstereignis, wenn der asynchrone Wiederherstellungsvorgang abgeschlossen ist

**API-Aufrufereignis (Initiierung der Wiederherstellung)**

Das folgende Beispiel zeigt den ersten API-Aufruf zur Wiederherstellung eines Images mithilfe der `UpdateImageStorageClass` Aktion mit `targetStorageClass` set to`STANDARD`. Die Antwort zeigt den Image-Status als`ACTIVATING`.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "UpdateImageStorageClass",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageId": {
			"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
		},
		"targetStorageClass": "STANDARD",
		"registryId": "123456789012"
	},
	"responseElements": {
		"image": {
			"registryId": "123456789012",
			"repositoryName": "testrepo",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
			},
			"imageStatus": "ACTIVATING"
		}
	},
	"requestID": "cf044b7d-EXAMPLE",
	"eventID": "2bfd4ee2-EXAMPLE",
	"readOnly": false,
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"managementEvent": true,
	"recipientAccountId": "123456789012",
	"eventCategory": "Management"
}
```

**Serviceereignis (Abschluss der Wiederherstellung)**

Das folgende Beispiel zeigt das Dienstereignis, das generiert wird, wenn der asynchrone Wiederherstellungsvorgang abgeschlossen ist. Dieser Ereignistyp kann durch Filtern nach `ImageActivationEvent` für das Ereignisnamensfeld gefunden werden. Der `serviceEventDetails` Abschnitt enthält das Wiederherstellungsergebnis und den endgültigen Image-Status.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-03-12T20:22:12Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "ImageActivationEvent",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "9354dd7f-EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo",
            "accountId": "123456789012",
            "type": "AWS::ECR::Repository"
        }
    ],
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "repositoryName": "testrepo",
        "imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e",
        "targetStorageClass": "STANDARD",
        "result": "SUCCESS",
        "imageStatus": "ACTIVE"
    },
    "eventCategory": "Management"
}
```

#### Beispiel: Aktion „Bild-Referrer“
<a name="cloudtrail-examples-image-referrers-action"></a>

Das folgende Beispiel zeigt einen AWS CloudTrail Protokolleintrag, der zeigt, wann ein OCI 1.1 kompatibler Client mithilfe der API eine Liste von Referrern oder Referenzartefakten für ein Bild abruft. `Referrers`

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2024-10-08T16:38:39Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        },
        "invokedBy": "ecr.amazonaws.com"
    },
    "eventTime": "2024-10-08T17:22:51Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "ListImageReferrers",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "ecr.amazonaws.com",
    "userAgent": "ecr.amazonaws.com",
    "requestParameters": {
        "registryId": "123456789012",
        "repositoryName": "testrepo",
        "subjectId": {
            "imageDigest": "sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a"
        },
        "nextToken": "urD72mdD/mC8b5-EXAMPLE"
    },
    "responseElements": null,
    "requestID": "cb8c167e-EXAMPLE",
    "eventID": "e3c6f4ce-EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```