

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.

# Flüchtiger Speicher für Fargate-Aufgaben für Amazon ECS.
<a name="fargate-task-storage"></a>

Bei der Bereitstellung AWS Fargate erhält jede Amazon ECS-Aufgabe, die auf Linux-Containern gehostet wird, den folgenden kurzlebigen Speicher für Bind-Mounts. Diese können aufgespielt und mit den Parametern `volumes`, `mountPoints` und `volumesFrom` in der Aufgabendefinition von allen Containern verwendet werden. Dies wird bei aktivierten Windows-Containern nicht unterstützt. AWS Fargate

## Plattformversionen für Fargate-Linux-Container
<a name="fargate-task-storage-linux-pv"></a>

### Version 1.4.0 oder höher
<a name="fargate-task-storage-pv14"></a>

Standardmäßig erhalten Amazon-ECS-Aufgaben, die auf Fargate mit Plattformversion `1.4.0` oder höher gehostet werden mindestens 20 GiB flüchtigen Speicher. Die Gesamtmenge des flüchtigen Speichers kann bis zu einem Maximum von 200 GiB erhöht werden. Dazu können Sie den `ephemeralStorage`-Parameter in Ihrer Aufgabendefinition festlegen.

Das gezogene, komprimierte und das unkomprimierte Container-Image für die Aufgabe wird im flüchtigen Speicher gespeichert. Um die Gesamtmenge des flüchtigen Speichers zu ermitteln, die Ihre Aufgabe verwenden muss, müssen Sie die Speichermenge, die Ihr Containerimage verwendet, von der Gesamtmenge des flüchtigen Speichers abziehen, der Ihrer Aufgabe zugewiesen ist.

Bei Aufgaben mit Plattformversion `1.4.0` oder höher, die am 28. Mai 2020 oder später gestartet wurden, wird der flüchtige Speicher mit einem AES-256-Verschlüsselungsalgorithmus verschlüsselt. Dieser Algorithmus verwendet einen AWS eigenen Verschlüsselungsschlüssel, oder Sie können Ihren eigenen, vom Kunden verwalteten Schlüssel erstellen. Weitere Informationen finden Sie unter Vom [Kunden verwaltete Schlüssel für AWS Fargate kurzlebigen Speicher](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-storage-encryption.html).

Für Aufgaben, die Plattformversion `1.4.0` oder höher verwenden und die am 18. November 2022 oder später gestartet wurden, wird die flüchtige Speichernutzung über den Aufgabenmetadaten-Endpunkt gemeldet. Ihre Anwendungen in Ihren Aufgaben können den Aufgabenmetadaten-Endpunkt-Version 4 abfragen, um deren reservierte Größe für flüchtigen Speicher und die verwendete Menge abzurufen. 

 Darüber hinaus werden die Größe des reservierten flüchtigen Speichers und die verwendete Menge an Container Insights gesendet, wenn Sie Amazon CloudWatch Container Insights aktivieren.

**Anmerkung**  
Fargate reserviert Speicherplatz auf der Festplatte. Er wird nur von Fargate verwendet. Ihnen entstehen dafür keine Kosten. Es wird in diesen Metriken nicht angezeigt. Sie können diesen zusätzlichen Speicherplatz jedoch in anderen Tools sehen, wie z. B. `df`.

### Version 1.3.0 oder früher
<a name="fargate-task-storage-pv13"></a>

Für Amazon-ECS-Aufgaben in Fargate, die Plattformversion `1.3.0` oder früher verwenden, erhält jede Aufgabe den folgenden flüchtigen Speicher.
+ 10 GB Speicher auf Docker-Ebene
**Anmerkung**  
Dieser Betrag umfasst sowohl komprimierte als auch unkomprimierte Container-Image-Artifakte.
+ Zusätzliche 4 GB für Volume-Mounts. Diese können aufgespielt und mit den Parametern `volumes`, `mountPoints` und `volumesFrom` in der Aufgabendefinition von allen Containern verwendet werden.

## Plattformversionen für Fargate-Windows-Container
<a name="fargate-task-storage-windows-pv"></a>

### Version 1.0.0 oder höher
<a name="fargate-task-storage-pvws1"></a>

Standardmäßig erhalten Amazon-ECS-Aufgaben, die auf Fargate mit Plattformversion `1.0.0` oder höher gehostet werden mindestens 20 GiB flüchtigen Speicher. Die Gesamtmenge des flüchtigen Speichers kann bis zu einem Maximum von 200 GiB erhöht werden. Dazu können Sie den `ephemeralStorage`-Parameter in Ihrer Aufgabendefinition festlegen.

Das gezogene, komprimierte und das unkomprimierte Container-Image für die Aufgabe wird im flüchtigen Speicher gespeichert. Um die Gesamtmenge des flüchtigen Speichers zu ermitteln, die Ihre Aufgabe verwenden muss, müssen Sie die Speichermenge, die Ihr Containerimage verwendet, von der Gesamtmenge des flüchtigen Speichers abziehen, der Ihrer Aufgabe zugewiesen ist.

Weitere Informationen finden Sie unter [Bind-Mounts mit Amazon ECS verwenden](bind-mounts.md).

# Vom Kunden verwaltete Schlüssel für AWS Fargate kurzlebigen Speicher für Amazon ECS
<a name="fargate-storage-encryption"></a>

AWS Fargate unterstützt vom Kunden verwaltete Schlüssel zur Verschlüsselung von Daten für Amazon ECS-Aufgaben, die in kurzlebigen Speichern gespeichert sind, um Kunden, die Vorschriften beachten, bei der Einhaltung ihrer internen Sicherheitsrichtlinien zu unterstützen. Kunden profitieren weiterhin von den Serverless-Vorteilen von Fargate und bieten Compliance-Prüfern gleichzeitig mehr Einblick in die selbstverwaltete Speicherverschlüsselung. Fargate verfügt zwar standardmäßig über eine von Fargate verwaltete Verschlüsselung für den flüchtigen Speicher, Kunden können jedoch beim Verschlüsseln sensibler Daten auch eigene selbstverwaltete Schlüssel verwenden.

Sie können Ihre eigenen Schlüssel importieren AWS KMS oder die Schlüssel in erstellen. AWS KMS Diese selbstverwalteten Schlüssel werden in AWS KMS standardmäßigen AWS KMS Lebenszyklusaktionen wie Rotation, Deaktivierung und Löschen gespeichert und führen diese aus. Sie können den Zugriff auf und die Verwendung von Schlüsseln in CloudTrail Protokollen überprüfen.

Standardmäßig unterstützt der KMS-Schlüssel 50 000 Zuweisungen pro Schlüssel. Fargate verwendet einen einzigen AWS KMS Zuschuss pro vom Kunden verwalteter Schlüsselaufgabe und unterstützt somit bis zu 50.000 gleichzeitige Aufgaben für einen Schlüssel. Wenn Sie diese Anzahl erhöhen möchten, können Sie eine Erhöhung des Limits beantragen, die auf einer case-by-case bestimmten Grundlage genehmigt wird.

Fargate berechnet keine zusätzlichen Gebühren für die Verwendung von kundenverwalteten Schlüsseln. Ihnen wird nur der Standardpreis für die Verwendung von AWS KMS Schlüsseln für Speicher- und API-Anfragen berechnet.

**Topics**
+ [Einen Verschlüsselungsschlüssel für flüchtigen Fargate-Speicher für Amazon ECS erstellen](fargate-create-storage-key.md)
+ [Verwaltung von AWS KMS Schlüsseln für Fargate Ephemeral Storage für Amazon ECS](fargate-managing-kms-key.md)

# Einen Verschlüsselungsschlüssel für flüchtigen Fargate-Speicher für Amazon ECS erstellen
<a name="fargate-create-storage-key"></a>

Erstellen Sie einen kundenverwalteten Schlüssel zum Verschlüsseln von Daten, die im flüchtigen Fargate-Speicher gespeichert sind.

**Anmerkung**  
Die Verschlüsselung von flüchtigem Fargate-Speicher mit kundenverwalteten Schlüsseln ist für Windows-Aufgaben-Cluster nicht verfügbar.  
Die Verschlüsselung von flüchtigem Fargate-Speicher mit kundenverwalteten Schlüsseln ist für `platformVersions`früher als `1.4.0` nicht verfügbar.  
Fargate reserviert Speicherplatz auf einem flüchtigen Speicher, der nur von Fargate genutzt wird, und Ihnen wird der Speicherplatz nicht in Rechnung gestellt. Die Zuteilung kann sich von Schlüsselaufgaben unterscheiden, die nicht vom Kunden verwaltet werden, aber der Gesamtspeicherplatz bleibt gleich. Sie können sich diese Änderung in Tools wie `df` anzeigen.  
Multiregionale Schlüssel werden für flüchtigen Fargate-Speicher nicht unterstützt.  
KMS-Schlüsselaliase werden für flüchtigen Fargate-Speicher nicht unterstützt.

Gehen Sie wie folgt vor, um einen vom Kunden verwalteten Schlüssel (CMK) zur Verschlüsselung von kurzlebigem Speicher für Fargate in AWS KMS zu erstellen.

1. [Navigieren Sie zu /kms. https://console.aws.amazon.com](https://console.aws.amazon.com/kms)

1. Folgen Sie den Anweisungen zum [Erstellen von Schlüsseln](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) im [Entwicklerhandbuch für AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html).

1. Achten Sie bei der Erstellung Ihres AWS KMS Schlüssels darauf, dass Sie in den wichtigsten Richtlinien die für den Fargate-Dienst relevanten AWS KMS Betriebsberechtigungen angeben. Um Ihren kundenverwalteten Schlüssel mit Ihren Amazon-ECS-Cluster-Ressourcen zu verwenden, müssen die folgenden API-Vorgänge in der Richtlinie zugelassen sein:
   + `kms:GenerateDataKeyWithoutPlainText`‐ Rufen Sie an`GenerateDataKeyWithoutPlainText`, um aus dem bereitgestellten Schlüssel einen verschlüsselten AWS KMS Datenschlüssel zu generieren.
   + `kms:CreateGrant` – Fügt einem kundenverwalteten Schlüssel eine Zuweisung hinzu. Gewährt Kontrollzugriff auf einen bestimmten AWS KMS Schlüssel, der den Zugriff auf Grant-Operationen ermöglicht, die Amazon ECS Fargate benötigt. Weitere Informationen zum [Verwenden von Zuweisungen](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) finden Sie im [Entwicklerhandbuch für AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html). Das erlaubt es Amazon ECS Fargate, Folgendes zu tun:
     + Rufen Sie an`Decrypt`, AWS KMS um den Verschlüsselungsschlüssel zum Entschlüsseln der kurzlebigen Speicherdaten zu erhalten.
     + Einen Prinzipal für die Außerbetriebnahme einrichten, damit der Service in den Status `RetireGrant` wechseln kann.
   + `kms:DescribeKey` – Stellt die Details des kundenverwalteten Schlüssels bereit, damit Amazon ECS den Schlüssel validieren kann, falls dieser symmetrisch ist und aktiviert wurde.

   Das folgende Beispiel zeigt eine AWS KMS Schlüsselrichtlinie, die Sie auf den Zielschlüssel für die Verschlüsselung anwenden würden. Wenn Sie diese Beispiels-Richtlinienanweisungen verwenden möchten, ersetzen Sie die *user input placeholders* durch Ihre eigenen Informationen. Konfigurieren Sie wie immer nur die Berechtigungen, die Sie benötigen, aber Sie müssen mindestens einem Benutzer Berechtigungen gewähren AWS KMS , um Fehler zu vermeiden.

   ```
   {
         "Sid": "Allow generate data key access for Fargate tasks.",
         "Effect": "Allow",
         "Principal": { "Service":"fargate.amazonaws.com" },
         "Action": [
           "kms:GenerateDataKeyWithoutPlaintext"
         ],
         "Condition": {
           "StringEquals": {
             "kms:EncryptionContext:aws:ecs:clusterAccount": [
               "customerAccountId"
             ],
             "kms:EncryptionContext:aws:ecs:clusterName": [
                "clusterName"
             ]   
           }
         },
         "Resource": "*"
       },
       {
         "Sid": "Allow grant creation permission for Fargate tasks.",
         "Effect": "Allow",
         "Principal": { "Service":"fargate.amazonaws.com" },
         "Action": [
           "kms:CreateGrant"
         ],
         "Condition": {
           "StringEquals": {
             "kms:EncryptionContext:aws:ecs:clusterAccount": [
               "customerAccountId"
             ],
             "kms:EncryptionContext:aws:ecs:clusterName": [
                "clusterName"
             ]   
           },
          "ForAllValues:StringEquals": {
             "kms:GrantOperations": [
                "Decrypt"
             ]
          }
         },
         "Resource": "*"
       },
       {
         "Sid": "Allow describe key permission for cluster operator - CreateCluster and UpdateCluster.",
         "Effect": "Allow",
         "Principal": { "AWS":"arn:aws:iam::customerAccountId:role/customer-chosen-role" },
         "Action": [
           "kms:DescribeKey"
         ],
         "Resource": "*"
       }
   ```

   Fargate-Aufgaben verwenden die Verschlüsselungskontext-Schlüssel `aws:ecs:clusterAccount` und `aws:ecs:clusterName` für kryptografische Vorgänge mit dem Schlüssel. Kunden sollten diese Berechtigungen hinzufügen, um den Zugriff auf einen bestimmten and/or Kontocluster einzuschränken. Verwenden Sie den Cluster-Namen und nicht den ARN, wenn Sie den Cluster angeben.

   Weitere Informationen finden Sie unter [Verschlüsselungskontext](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) im [AWS KMS -Entwicklerhandbuch](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html).

   Wenn Sie einen Cluster erstellen oder aktualisieren, haben Sie die Option, den Bedingungsschlüssel `fargateEphemeralStorageKmsKeyId` zu verwenden. Dieser Bedingungsschlüssel ermöglicht Kunden eine genauere Kontrolle über die IAM-Richtlinien. Aktualisierungen der `fargateEphemeralStorageKmsKeyId`-Konfiguration werden nur bei neuen Servicebereitstellungen wirksam.

   Im Folgenden finden Sie ein Beispiel dafür, wie Kunden nur einem bestimmten Satz genehmigter AWS KMS Schlüssel Berechtigungen gewähren können.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "ecs:CreateCluster",
           "ecs:UpdateCluster"
         ],
         "Resource": "*",
         "Condition": {
           "StringEquals": {
             "ecs:fargate-ephemeral-storage-kms-key": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
           }
         }
       }
     ]
   }
   ```

------

   Als Nächstes folgt ein Beispiel für die Ablehnung von Versuchen, AWS KMS Schlüssel zu entfernen, die bereits einem Cluster zugeordnet sind.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Deny",
       "Action": [
           "ecs:CreateCluster",
           "ecs:UpdateCluster"
       ],
       "Resource": "*",
       "Condition": {
         "Null": {
           "ecs:fargate-ephemeral-storage-kms-key": "true"
         }
       }
     }
   }
   ```

------

   Kunden können mithilfe der Befehle, oder sehen, ob ihre nicht verwalteten Aufgaben oder Serviceaufgaben mithilfe des AWS CLI `describe-tasks` Schlüssels verschlüsselt sind. `describe-cluster` `describe-services`

   Weitere Informationen finden Sie unter [Bedingungsschlüssel für AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html) im [Entwicklerhandbuch für AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html).

------
#### [ AWS-Managementkonsole ]

1. Öffnen Sie die Konsole auf [https://console.aws.amazon.com/ecs/Version 2.](https://console.aws.amazon.com/ecs/v2)

1. Wählen Sie im linken Navigationsbereich **Cluster** und oben rechts entweder **Cluster erstellen** oder wählen Sie einen vorhandenen Cluster aus. Wählen Sie für einen vorhandenen Cluster oben rechts die Option **Cluster aktualisieren** aus.

1. Im Abschnitt **Verschlüsselung** des Workflows haben Sie die Möglichkeit, Ihren AWS KMS Schlüssel unter **Managed Storage und **Fargate Ephemeral** Storage** auszuwählen. Sie können von hier aus auch wählen, ob Sie **einen AWS KMS Schlüssel erstellen** möchten.

1. Wählen Sie **Erstellen**, wenn Sie mit der Erstellung Ihres neuen Clusters fertig sind, oder **Aktualisieren**, wenn Sie einen vorhandenen aktualisieren wollten.

------
#### [ AWS CLI ]

Im Folgenden finden Sie ein Beispiel für die Erstellung eines Clusters und die Konfiguration Ihres kurzlebigen Fargate-Speichers mithilfe von AWS CLI (ersetzen Sie die *red* Werte durch Ihre eigenen):

```
aws ecs create-cluster --cluster clusterName \
--configuration '{"managedStorageConfiguration":{"fargateEphemeralStorageKmsKeyId":"arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}}'
{
    "cluster": {
        "clusterArn": "arn:aws:ecs:us-west-2:012345678901:cluster/clusterName",
        "clusterName": "clusterName",
        "configuration": {
            "managedStorageConfiguration": {
                "fargateEphemeralStorageKmsKeyId": "arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
            }
        },
        "status": "ACTIVE",
        "registeredContainerInstancesCount": 0,
        "runningTasksCount": 0,
        "pendingTasksCount": 0,
        "activeServicesCount": 0,
        "statistics": [],
        "tags": [],
        "settings": [],
        "capacityProviders": [],
        "defaultCapacityProviderStrategy": []
    },
    "clusterCount": 5
}
```

------
#### [ CloudFormation ]

Im Folgenden finden Sie eine Beispielvorlage für die Erstellung eines Clusters und die Konfiguration Ihres kurzlebigen Fargate-Speichers mithilfe von CloudFormation (ersetzen Sie die *red* Werte durch Ihre eigenen):

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  MyCluster: 
    Type: AWS::ECS::Cluster
    Properties: 
      ClusterName: "clusterName" 
      Configuration:
        ManagedStorageConfiguration:
          FargateEphemeralStorageKmsKeyId: "arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
```

------

# Verwaltung von AWS KMS Schlüsseln für Fargate Ephemeral Storage für Amazon ECS
<a name="fargate-managing-kms-key"></a>

Nachdem Sie Ihren AWS KMS Schlüssel zur Verschlüsselung Ihres kurzlebigen Fargate-Speichers erstellt oder importiert haben, verwalten Sie ihn genauso wie jeden anderen Schlüssel. AWS KMS 

**Automatische Rotation der Schlüssel AWS KMS**  
Sie können die automatische Schlüsselrotation aktivieren oder sie manuell rotieren. Bei der automatischen Schlüsselrotation wird der Schlüssel jährlich für Sie rotiert, indem neues kryptografisches Material für den Schlüssel generiert wird. AWS KMS speichert auch alle früheren Versionen des kryptografischen Materials, sodass Sie alle Daten entschlüsseln können, für die die früheren Schlüsselversionen verwendet wurden. Jegliches rotiertes Material wird AWS KMS erst gelöscht, wenn Sie den Schlüssel löschen.

Die automatische Schlüsselrotation ist optional und kann jederzeit aktiviert oder deaktiviert werden.

**Schlüssel deaktivieren oder entziehen AWS KMS**  
Wenn Sie einen vom Kunden verwalteten Schlüssel deaktivieren AWS KMS, hat dies keine Auswirkungen auf die Ausführung von Aufgaben, und sie funktionieren während ihres gesamten Lebenszyklus weiter. Wenn eine neue Aufgabe den deaktivierten oder widerrufenen Schlüssel verwendet, schlägt die Aufgabe fehl, da sie nicht auf den Schlüssel zugreifen kann. Sie sollten einen CloudWatch Alarm oder etwas Ähnliches einstellen, um sicherzustellen, dass kein deaktivierter Schlüssel zum Entschlüsseln bereits verschlüsselter Daten benötigt wird.

**Schlüssel löschen AWS KMS**  
Das Löschen von Schlüsseln sollte immer der letzte Ausweg sein und sollte nur durchgeführt werden, wenn Sie sicher sind, dass der gelöschte Schlüssel nie wieder benötigt wird. Neue Aufgaben, die versuchen, den gelöschten Schlüssel zu verwenden, schlagen fehl, da sie nicht darauf zugreifen können. AWS KMS empfiehlt, einen Schlüssel zu deaktivieren, anstatt ihn zu löschen. Wenn Sie der Meinung sind, dass es notwendig ist, einen Schlüssel zu löschen, empfehlen wir, ihn zuerst zu deaktivieren und einen CloudWatch Alarm einzustellen, um sicherzustellen, dass er nicht benötigt wird. Wenn Sie einen Schlüssel löschen, haben Sie AWS KMS mindestens sieben Tage Zeit, Ihre Meinung zu ändern.

**Überprüfung des AWS KMS Schlüsselzugriffs**  
Sie können CloudTrail Protokolle verwenden, um den Zugriff auf Ihren AWS KMS Schlüssel zu überprüfen. Sie können die AWS KMS Operationen`CreateGrant`,`GenerateDataKeyWithoutPlaintext`, und überprüfen`Decrypt`. Bei diesen Vorgängen wird auch das `aws:ecs:clusterAccount` und `aws:ecs:clusterName` als Teil der `EncryptionContext` angemeldeten Daten angezeigt CloudTrail.

Im Folgenden finden Sie CloudTrail Beispielereignisse für `GenerateDataKeyWithoutPlaintext``GenerateDataKeyWithoutPlaintext (DryRun)`,`CreateGrant`,`CreateGrant (DryRun)`, und `RetireGrant` (ersetzen Sie die *red* Werte durch Ihre eigenen).

------
#### [ GenerateDataKeyWithoutPlaintext ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "ec2-frontend-api.amazonaws.com"
    },
    "eventTime": "2024-04-23T18:08:13Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKeyWithoutPlaintext",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "ec2-frontend-api.amazonaws.com",
    "userAgent": "ec2-frontend-api.amazonaws.com",
    "requestParameters": {
        "numberOfBytes": 64,
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "encryptionContext": {
            "aws:ecs:clusterAccount": "account-id",
            "aws:ebs:id": "vol-xxxxxxx",
            "aws:ecs:clusterName": "cluster-name"
        }
    },
    "responseElements": null,
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": true,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------
#### [ GenerateDataKeyWithoutPlaintext (DryRun) ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "fargate.amazonaws.com"
    },
    "eventTime": "2024-04-23T18:08:11Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKeyWithoutPlaintext",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "fargate.amazonaws.com",
    "userAgent": "fargate.amazonaws.com",
    "errorCode": "DryRunOperationException",
    "errorMessage": "The request would have succeeded, but the DryRun option is set.",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "dryRun": true,
        "numberOfBytes": 64,
        "encryptionContext": {
            "aws:ecs:clusterAccount": "account-id",
            "aws:ecs:clusterName": "cluster-name"
        }
    },
    "responseElements": null,
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": true,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------
#### [ CreateGrant ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "ec2-frontend-api.amazonaws.com"
    },
    "eventTime": "2024-04-23T18:08:13Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "ec2-frontend-api.amazonaws.com",
    "userAgent": "ec2-frontend-api.amazonaws.com",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "granteePrincipal": "fargate.us-west-2.amazonaws.com",
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextSubset": {
                "aws:ecs:clusterAccount": "account-id",
                "aws:ebs:id": "vol-xxxx",
                "aws:ecs:clusterName": "cluster-name"
            }
        },
        "retiringPrincipal": "ec2.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    },
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": false,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------
#### [ CreateGrant (DryRun) ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "fargate.amazonaws.com"
    },
    "eventTime": "2024-04-23T18:08:11Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "fargate.amazonaws.com",
    "userAgent": "fargate.amazonaws.com",
    "errorCode": "DryRunOperationException",
    "errorMessage": "The request would have succeeded, but the DryRun option is set.",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "granteePrincipal": "fargate.us-west-2.amazonaws.com",
        "dryRun": true,
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextSubset": {
                "aws:ecs:clusterAccount": "account-id",
                "aws:ecs:clusterName": "cluster-name"
            }
        }
    },
    "responseElements": null,
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": false,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------
#### [ RetireGrant ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2024-04-20T18:37:38Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "RetireGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": {
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    },
    "additionalEventData": {
        "grantId": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    },
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": false,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------