

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 SQS Schlüsselverwaltung
<a name="sqs-key-management"></a>

Amazon SQS lässt sich in das AWS Key Management Service (KMS) integrieren, um [KMS-Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) für serverseitige Verschlüsselung (SSE) zu verwalten. SSE-Informationen und Definitionen zur Schlüsselverwaltung finden Sie unter [Verschlüsselung im Ruhezustand in Amazon SQS](sqs-server-side-encryption.md). Amazon SQS verwendet KMS-Schlüssel, um die Datenschlüssel zu validieren und zu sichern, mit denen die Nachrichten ver- und entschlüsselt werden. Die folgenden Abschnitte enthalten Informationen über das Arbeiten mit KMS-Schlüsseln und Datenschlüsseln im Amazon-SQS-Service.

## Berechtigungen konfigurieren AWS KMS
<a name="sqs-what-permissions-for-sse"></a>

Jeder KMS-Schlüssel muss über eine Schlüsselrichtlinie verfügen. Beachten Sie, dass Sie die Schlüsselrichtlinie eines AWS verwalteten KMS-Schlüssels für Amazon SQS nicht ändern können. Die Richtlinie für diesen KMS-Schlüssel beinhaltet Berechtigungen für alle Prinzipale im Konto (die zur Verwendung von Amazon SQS berechtigt sind), verschlüsselte Warteschlangen zu verwenden. 

 Amazon SQS unterscheidet Anrufer anhand ihrer AWS Anmeldeinformationen, unabhängig davon, ob sie unterschiedliche AWS Konten, IAM-Benutzer oder IAM-Rollen verwenden. Darüber hinaus wird dieselbe IAM-Rolle mit unterschiedlichen Bereichsrichtlinien als separate Anforderer behandelt. Bei der Verwendung von IAM-Rollensitzungen werden jedoch keine unterschiedlichen Anforderer erstellt, wenn nur die Variation unter `RoleSessionName` Beibehaltung der gleichen IAM-Rollen- und Bereichsrichtlinien vorgenommen wird. Vermeiden Sie es daher, sich bei der Angabe AWS KMS wichtiger Richtlinienprinzipale ausschließlich auf `RoleSessionName` Unterschiede zu verlassen, da diese Sitzungen als derselbe Anforderer behandelt werden. 

Alternativ können Sie die erforderlichen Berechtigungen in einer IAM-Richtlinie angeben, die den Prinzipalen zugewiesen ist, die verschlüsselte Nachrichten produzieren und konsumieren. Weitere Informationen finden Sie unter [Verwenden von IAM-Richtlinien mit AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) im *AWS Key Management Service -Entwicklerhandbuch*.

**Anmerkung**  
Sie können zwar globale Berechtigungen für das Senden an und Empfangen von Amazon SQS konfigurieren, AWS KMS erfordert jedoch die ausdrückliche Benennung des vollständigen ARN der KMS-Schlüssel in bestimmten Regionen im `Resource` Abschnitt einer IAM-Richtlinie.

### Konfigurieren Sie KMS-Berechtigungen für Dienste AWS
<a name="compatibility-with-aws-services"></a>

Verschiedene AWS Dienste dienen als Ereignisquellen, die Ereignisse an Amazon SQS SQS-Warteschlangen senden können. Damit diese Ereignisquellen mit verschlüsselten Warteschlangen arbeiten können, müssen Sie einen vom Kunden verwalteten KMS-Schlüssel erstellen und der Schlüsselrichtlinie Berechtigungen hinzufügen, damit der Service die erforderlichen AWS KMS API-Methoden verwenden kann. Führen Sie zum Konfigurieren der Berechtigungen die folgenden Schritte durch.

**Warnung**  
Wenn Sie den KMS-Schlüssel für die Verschlüsselung Ihrer Amazon SQS SQS-Nachrichten ändern, beachten Sie, dass bestehende Nachrichten, die mit dem alten KMS-Schlüssel verschlüsselt wurden, mit diesem Schlüssel verschlüsselt bleiben. Um diese Nachrichten zu entschlüsseln, müssen Sie den alten KMS-Schlüssel beibehalten und sicherstellen, dass seine Schlüsselrichtlinie Amazon SQS die Berechtigungen für `kms:Decrypt` und gewährt. `kms:GenerateDataKey` Stellen Sie nach der Aktualisierung auf einen neuen KMS-Schlüssel zur Verschlüsselung neuer Nachrichten sicher, dass alle vorhandenen Nachrichten, die mit dem alten KMS-Schlüssel verschlüsselt wurden, verarbeitet und aus der Warteschlange entfernt werden, bevor Sie den alten KMS-Schlüssel löschen oder deaktivieren.

1. Erstellen Sie einen vom Kunden verwalteten KMS-Schlüssel. Weitere Informationen finden Sie unter [Erstellen von Schlüsseln](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) im *AWS Key Management Service -Entwicklerhandbuch*.

1. Damit die AWS Dienstereignisquelle die Methoden `kms:Decrypt` und `kms:GenerateDataKey` API verwenden kann, fügen Sie der KMS-Schlüsselrichtlinie die folgende Anweisung hinzu.

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
         "Statement": [{
            "Effect": "Allow",
            "Principal": {
               "Service": "service.amazonaws.com"
            },
            "Action": [
               "kms:Decrypt",
               "kms:GenerateDataKey"
            ],
            "Resource": "*"
          }]
   }
   ```

------

   Ersetzen Sie „service“ im obigen Beispiel durch den *Servicenamen* der Ereignisquelle. Zu den Ereignisquellen gehören die folgenden Services.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html)

1.  [Konfigurieren Sie eine vorhandene SSE-Warteschlange](sqs-configure-sse-existing-queue.md) mit dem ARN Ihres KMS-Schlüssels.

1. Stellen Sie der verschlüsselten Warteschlange den ARN der Ereignisquelle zur Verfügung.

### AWS KMS Berechtigungen für Produzenten konfigurieren
<a name="send-to-encrypted-queue"></a>

Wenn der [Zeitraum für die Wiederverwendung des Datenschlüssels](#sqs-how-does-the-data-key-reuse-period-work) abgelaufen ist, löst der nächste Aufruf des Produzenten von `SendMessage` oder `SendMessageBatch` auch Aufrufe von `kms:Decrypt` und `kms:GenerateDataKey` aus. Der Aufruf von `kms:Decrypt` dient dazu, die Integrität des neuen Datenschlüssels vor dessen Verwendung zu überprüfen. Daher muss der Produzent über die Berechtigungen `kms:Decrypt` und `kms:GenerateDataKey` für den KMS-Schlüssel verfügen. 

Fügen Sie der IAM-Richtlinie des Produzenten die folgende Anweisung hinzu. Denken Sie daran, die richtigen ARN-Werte für die Schlüsselressource und die Warteschlangenressource zu verwenden.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-2:123456789012:key/111112222233333"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sqs:SendMessage"
            ],
            "Resource": "arn:aws:sqs:*:123456789012:MyQueue"
        }
    ]
}
```

------

### Konfigurieren Sie AWS KMS Berechtigungen für Verbraucher
<a name="receive-from-encrypted-queue"></a>

Wenn der Zeitraum für die Wiederverwendung des Datenschlüssels abläuft, löst der nächste Aufruf des Konsumenten von `ReceiveMessage` ebenfalls einen Auruf von `kms:Decrypt` aus, um die Integrität des neuen Datenschlüssels vor dessen Verwendung zu überprüfen. Deshalb muss der Konsument über die Berechtigung `kms:Decrypt` für alle KMS-Schlüssel verfügen, die für die Verschlüsselung von Nachrichten in der angegebenen Warteschlange verwendet werden. Wenn es sich bei der Warteschlange um eine [Warteschlange für unzustellbare Nachrichten](sqs-dead-letter-queues.md) handelt, muss der Konsument zusätzlich die Berechtigung `kms:Decrypt` für jeden KMS-Schlüssel haben, mit dem die Nachrichten in der Quellwarteschlange verschlüsselt werden. Fügen Sie der IAM-Richtlinie des Konsumenten die folgende Anweisung hinzu. Denken Sie daran, die richtigen ARN-Werte für die Schlüsselressource und die Warteschlangenressource zu verwenden.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-2:123456789012:key/111112222233333"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sqs:ReceiveMessage"
            ],
            "Resource": "arn:aws:sqs:*:123456789012:MyQueue"
        }
    ]
}
```

------

### Konfigurieren Sie AWS KMS Berechtigungen mit dem Schutz vor verwirrten Stellvertretern
<a name="sqs-adding-confused-deputy-protection"></a>

Wenn der Prinzipal in einer Schlüsselrichtlinie ein [AWS -Service-Prinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) ist, können Sie die globalen Zustandsschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) oder [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) zum Schutz vor dem [Confused Deputy Scenario](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) verwenden. Um diese globalen Bedingungsschlüssel zu verwenden, legen Sie den Wert auf den Amazon-Ressourcennamen (ARN) oder das Konto der Ressource fest, die verschlüsselt wird. Wenn Sie den ARN der Ressource nicht kennen, verwenden Sie stattdessen `aws:SourceAccount`. 

In dieser KMS-Schlüsselrichtlinie darf eine bestimmte Ressource aus einem *Service*, der dem Konto `111122223333` gehört, KMS für die Aktionen `Decrypt` und `GenerateDataKey` Aktionen aufrufen, die während der SSE-Nutzung von Amazon SQS auftreten.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sqs.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": [
                        "arn:aws:sqs:us-west-1:111122223333:resource"
                    ]
                }
            }
        }
    ]
}
```

------

Bei Verwendung von SSE-fähigen Amazon-SQS-Warteschlangen unterstützen die folgenden Services `aws:SourceArn`:
+ Amazon SNS
+ Amazon S3
+ CloudWatch Events
+ AWS Lambda
+ CodeBuild
+ Amazon Connect Customer Profiles
+ AWS Auto Scaling
+ Amazon Chime

## Grundlegendes zum Wiederverwendungszeitraum für den Datenschlüssel
<a name="sqs-how-does-the-data-key-reuse-period-work"></a>

Der [Zeitraum für die Wiederverwendung des Datenschlüssels](sqs-server-side-encryption.md#sqs-sse-key-terms) definiert die maximale Dauer für Amazon SQS zur Wiederverwendung desselben Datenschlüssels. Endet der Zeitraum der Datenschlüssel-Wiederverwendung, generiert Amazon SQS einen neuen Datenschlüssel. Beachten Sie die folgenden Richtlinien zum Wiederverwendungszeitraum.
+ Ein kürzerer Wiederverwendungszeitraum bietet mehr Sicherheit, führt jedoch zu mehr Anrufen AWS KMS, wodurch Gebühren anfallen können, die über das kostenlose Kontingent hinausgehen.
+ Obwohl der Datenschlüssel für die Verschlüsselung und Entschlüsselung separat zwischengespeichert wird, gilt der Wiederverwendungszeitraum für beide Kopien des Datenschlüssels.
+ Wenn der Zeitraum für die Wiederverwendung von Datenschlüsseln endet, löst der nächste Aufruf von `SendMessage` oder `SendMessageBatch` in der Regel einen Aufruf der AWS KMS `GenerateDataKey` Methode aus, um einen neuen Datenschlüssel abzurufen. Außerdem lösen die nächsten Aufrufe jeweils einen Aufruf von aus, AWS KMS `Decrypt` um die Integrität des Datenschlüssels zu überprüfen, bevor er verwendet wird. `SendMessage` `ReceiveMessage`
+ [Prinzipale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal) (AWS-Konten oder Benutzer) verwenden keine gemeinsamen Datenschlüssel (Nachrichten, die von eindeutigen Prinzipalen gesendet werden, erhalten immer eindeutige Datenschlüssel). Daher entspricht die Anzahl der Anrufe an AWS KMS ein Vielfaches der Anzahl der eindeutigen Prinzipale, die während der Wiederverwendung von Datenschlüsseln verwendet wurden.

## Schätzung der Kosten AWS KMS
<a name="sqs-estimate-kms-usage-costs"></a>

Um Kosten vorherzusagen und Ihre AWS Rechnung besser zu verstehen, möchten Sie vielleicht wissen, wie oft Amazon SQS Ihren KMS-Schlüssel verwendet.

**Anmerkung**  
Mit der nachstehenden Formel erhalten Sie eine gute Vorstellung davon, welche Kosten auf Sie zukommen. Allerdings können die tatsächlichen Kosten aufgrund der verteilten Struktur von Amazon SQS höher liegen.

Zur Berechnung der Anzahl der API-Anfragen (`R`) *pro Warteschlange* verwenden Sie folgende Formel:

```
R = (B / D) * (2 * P + C)
```

`B` ist der Abrechnungszeitraum (in Sekunden).

`D` ist der [Zeitraum für die Wiederverwendung des Datenschlüssels](sqs-server-side-encryption.md#sqs-sse-key-terms) (in Sekunden).

`P` ist die Anzahl der produzierenden [Prinzipale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal), die Nachrichten an die Amazon-SQS-Warteschlange senden.

`C` ist die Anzahl der konsumierenden Prinzipale, die Nachrichten aus der Amazon-SQS-Warteschlange erhalten.

**Wichtig**  
Für produzierende Prinzipale entstehen in der Regel doppelt so hohe Kosten wie für konsumierende Prinzipale. Weitere Informationen finden Sie unter [Grundlegendes zum Wiederverwendungszeitraum für den Datenschlüssel](#sqs-how-does-the-data-key-reuse-period-work).  
Die Kosten erhöhen sich, wenn der Produzent und der Verbraucher unterschiedliche -Benutzer haben.

Es folgen Beispielberechnungen: Preisinformationen finden Sie unter [AWS Key Management Service -Preise](https://aws.amazon.com/kms/pricing/).

### Beispiel 1: Berechnung der Anzahl der AWS KMS API-Aufrufe für 2 Principals und 1 Warteschlange
<a name="example-1-queue-2-principals"></a>

In diesem Beispiel wird Folgendes angenommen:
+ Der Abrechnungszeitraum ist 1. bis 31. Januar (2 678 400 Sekunden).
+ Der Wiederverwendungszeitraum für den Datenschlüssel ist auf 5 Minuten (300 Sekunden) eingestellt.
+ Es ist 1 Warteschlange vorhanden.
+ Es gibt 1 produzierenden und 1 konsumierenden Prinzipal.

```
(2,678,400 / 300) * (2 * 1 + 1) = 26,784
```

### Beispiel 2: Berechnung der Anzahl von AWS KMS API-Aufrufen für mehrere Produzenten und Verbraucher sowie für 2 Warteschlangen
<a name="example-2-queues-multiple-principals"></a>

In diesem Beispiel wird Folgendes angenommen:
+ Der Abrechnungszeitraum ist 1. bis 28. Februar (2 419 200 Sekunden).
+ Der Wiederverwendungszeitraum für den Datenschlüssel ist auf 24 Stunden (86 400 Sekunden) eingestellt.
+ Es gibt 2 Warteschlangen.
+ Die erste Warteschlange hat 3 produzierende Prinzipale und 1 konsumierenden Prinzipal.
+ Die zweite Warteschlange hat 5 produzierende und 2 konsumierende Prinzipale.

```
(2,419,200 / 86,400 * (2 * 3 + 1)) + (2,419,200 / 86,400 * (2 * 5 + 2)) = 532
```

## AWS KMS Fehler
<a name="sqs-sse-troubleshooting-errors"></a>

Wenn Sie mit Amazon SQS und arbeiten AWS KMS, können Fehler auftreten. In den folgenden Referenzen werden die Fehler und möglichen Lösungen zur Fehlerbehebung beschrieben.
+ [ Häufige AWS KMS -Fehler](https://docs.aws.amazon.com/kms/latest/APIReference/CommonErrors.html)
+ [AWS KMS -Entschlüsselungsfehler](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#API_Decrypt_Errors)
+ [AWS KMS GenerateDataKey Fehler](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html#API_GenerateDataKey_Errors)