SQSAmazon-Schlüsselverwaltung - Amazon Simple Queue Service

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.

SQSAmazon-Schlüsselverwaltung

Amazon SQS integriert sich in die AWS Key Management Service (KMS) zur Verwaltung von KMSSchlüsseln für die serverseitige Verschlüsselung (SSE). SSEInformationen und Definitionen der Schlüsselverwaltung finden Sie unterVerschlüsselung im Ruhezustand in Amazon SQS. 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 zur Arbeit mit KMS Schlüsseln und Datenschlüsseln im SQS Amazon-Service.

Konfigurieren AWS KMS permissions

Jeder KMS Schlüssel muss über eine Schlüsselrichtlinie verfügen. Beachten Sie, dass Sie die Schlüsselrichtlinie eines nicht ändern können AWS verwalteter KMS Schlüssel für AmazonSQS. Die Richtlinie für diesen KMS Schlüssel beinhaltet die Berechtigungen für alle Principals im Konto (die autorisiert sind, Amazon zu verwendenSQS), verschlüsselte Warteschlangen zu verwenden.

Bei einem vom Kunden verwalteten KMS Schlüssel müssen Sie die Schlüsselrichtlinie so konfigurieren, dass Berechtigungen für jeden Warteschlangenproduzenten und -verbraucher hinzugefügt werden. Dazu benennen Sie den Hersteller und den Verbraucher als Benutzer in der KMS Schlüsselrichtlinie. Weitere Informationen zur AWS KMS Berechtigungen, siehe AWS KMS Ressourcen und Operationen oder AWS KMS APIVerweis auf Berechtigungen in der AWS Key Management Service Leitfaden für Entwickler.

Alternativ können Sie die erforderlichen Berechtigungen in einer IAM Richtlinie angeben, die den Prinzipalen zugewiesen ist, die verschlüsselte Nachrichten erstellen und verarbeiten. Weitere Informationen finden Sie unter IAM Richtlinien verwenden mit AWS KMS in der AWS Key Management Service Leitfaden für Entwickler.

Anmerkung

Sie können zwar globale Berechtigungen für das Senden an und Empfangen von Amazon konfigurierenSQS, AWS KMS erfordert die ausdrückliche Benennung ARN aller KMS Schlüssel in bestimmten Regionen im Resource Abschnitt einer IAM Richtlinie.

Konfigurieren Sie KMS Berechtigungen für AWS service

Mehrere AWS Dienste dienen als Ereignisquellen, die Ereignisse an SQS Amazon-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 Daten verwenden kann AWS KMS APIMethoden. Führen Sie zum Konfigurieren der Berechtigungen die folgenden Schritte durch.

Warnung

Beachten Sie beim Ändern des KMS Schlüssels für die Verschlüsselung Ihrer SQS Amazon-Nachrichten, 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 behalten und sicherstellen, dass die Schlüsselrichtlinie Amazon SQS die Berechtigungen dafür kms:GenerateDataKey gewährt. 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 Schlüssel löschen oder deaktivieren. KMS

  1. Erstellen Sie einen vom Kunden verwalteten SchlüsselKMS. Weitere Informationen finden Sie unter Schlüssel erstellen im AWS Key Management Service Entwicklerhandbuch.

  2. Um das zu ermöglichen AWS Um die kms:GenerateDataKey API Methode zu verwenden, müssen Sie die folgende Anweisung zur KMS Schlüsselrichtlinie hinzufügen.

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

    Ersetzen Sie „service“ im obigen Beispiel durch den Servicenamen der Ereignisquelle. Zu den Ereignisquellen gehören die folgenden Services.

    Ereignisquelle Service-Name
    CloudWatch Amazon-Veranstaltungen events.amazonaws.com
    Amazon-S3-Ereignis-Benachrichtigungen s3.amazonaws.com
    SNSAmazon-Themenabonnements sns.amazonaws.com
  3. Konfigurieren Sie eine bestehende SSE Warteschlange mit Ihrem KMS Schlüssel. ARN

  4. Geben Sie die ARN Adresse der verschlüsselten Warteschlange an die Ereignisquelle weiter.

Konfiguration AWS KMS Genehmigungen für Produzenten

Wenn der Zeitraum für die Wiederverwendung von Datenschlüsseln abgelaufen ist, löst der nächste Aufruf des Herstellers SendMessageBatch auch Aufrufe von auskms:GenerateDataKey. SendMessage Der Hersteller muss über die kms:GenerateDataKey Berechtigungen für den KMS Schlüssel verfügen.

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

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Konfiguration AWS KMS Berechtigungen für Verbraucher

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. Daher muss der Verbraucher über die kms:Decrypt Erlaubnis für jeden KMS Schlüssel verfügen, der zum Verschlüsseln der Nachrichten in der angegebenen Warteschlange verwendet wird. Wenn die Warteschlange als Warteschlange für unzustellbare Briefe fungiert, muss der Verbraucher auch über die kms:Decrypt Berechtigung für jeden KMS Schlüssel verfügen, der zum Verschlüsseln der Nachrichten in der Quellwarteschlange verwendet wird. Fügen Sie der IAM Richtlinie des Verbrauchers die folgende Erklärung hinzu. Denken Sie daran, die richtigen ARN Werte für die Schlüsselressource und die Warteschlangenressource zu verwenden.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Konfiguration AWS KMS Berechtigungen mit verwirrtem Stellvertreterschutz

Wenn der Hauptverantwortliche in einer wichtigen Grundsatzerklärung ein AWS Service Principal, Sie können die globalen Bedingungsschlüssel aws:SourceArnoder die aws:SourceAccountglobalen Bedingungsschlüssel verwenden, um sich vor dem Szenario „Confused Deputy“ zu schützen. Um diese Bedingungsschlüssel zu verwenden, setzen Sie den Wert auf den Amazon-Ressourcennamen (ARN) der Ressource, die verschlüsselt wird. Wenn Sie den Wert ARN der Ressource nicht kennen, verwenden Sie aws:SourceAccount stattdessen.

In dieser KMS wichtigen Richtlinie darf eine bestimmte Ressource eines Dienstes, der dem Konto 111122223333 gehört, Aktionen aufrufen KMS Decrypt und GenerateDataKey Aktionen ausführen, die während der SSE Nutzung von Amazon auftretenSQS.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "<replaceable>service</replaceable>.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:service::111122223333:resource" ] } } }] }

Wenn Sie SSE aktivierte SQS Amazon-Warteschlangen verwenden, unterstützen aws:SourceArn die folgenden Dienste:

  • Amazon SNS

  • Amazon S3

  • CloudWatch Ereignisse

  • AWS Lambda

  • CodeBuild

  • Amazon Connect Customer Profiles

  • AWS Auto Scaling

  • Amazon Chime

Grundlegendes zum Wiederverwendungszeitraum für den Datenschlüssel

Der Zeitraum für die Wiederverwendung von Datenschlüsseln definiert die maximale Dauer, für SQS die Amazon denselben Datenschlüssel wiederverwenden kann. Wenn der Zeitraum für die Wiederverwendung von Datenschlüsseln endet, SQS generiert Amazon einen neuen Datenschlüssel. Beachten Sie die folgenden Richtlinien zum Wiederverwendungszeitraum.

  • Ein kürzerer Wiederverwendungszeitraum bietet mehr Sicherheit, führt jedoch zu mehr Aufrufen bei AWS KMS, für die möglicherweise Gebühren anfallen, 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.

  • Derzeit wird während der SQS:SendMessageBatch Operationen SQS:SendMessage und nur die KMS:GenerateDataKey Genehmigung verwendet. Die kms:Decrypt Erlaubnis wird nur während des SQS:ReceiveMessage Vorgangs verwendet.

  • Schulleiter (AWS-Konten oder Benutzer) teilen sich keine Datenschlüssel (Nachrichten, die von eindeutigen Prinzipalen gesendet werden, erhalten immer eindeutige Datenschlüssel). Daher ist das Volumen der Anrufe an AWS KMS ist ein Vielfaches der Anzahl der eindeutigen Prinzipale, die während der Wiederverwendung von Datenschlüsseln verwendet wurden.

Schätzung AWS KMS Kosten

Um Kosten vorherzusagen und Ihre AWS Bill, vielleicht möchtest du wissen, wie oft Amazon deinen KMS Schlüssel SQS verwendet.

Anmerkung

Die folgende Formel kann Ihnen zwar eine sehr gute Vorstellung von den zu erwartenden Kosten geben, die tatsächlichen Kosten können jedoch aufgrund des Vertriebscharakters von Amazon höher seinSQS.

Verwenden Sie die folgende Formel, um die Anzahl der API Anfragen (R) pro Warteschlange zu berechnen:

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

B ist der Abrechnungszeitraum (in Sekunden).

D ist der Zeitraum für die Wiederverwendung des Datenschlüssels (in Sekunden).

Pist die Anzahl der produzierenden Auftraggeber, die an die SQS Amazon-Warteschlange senden.

Cist die Anzahl der verbrauchenden Principals, die aus der SQS Amazon-Warteschlange empfangen.

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.

Die Kosten erhöhen sich, wenn der Produzent und der Verbraucher unterschiedliche -Benutzer haben.

Es folgen Beispielberechnungen: Genaue Preisinformationen finden Sie unter AWS Key Management Service Preisgestaltung.

Beispiel 1: Berechnung der Anzahl von AWS KMS APIAnrufe für 2 Principals und 1 Warteschlange

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 APIruft mehrere Produzenten und Verbraucher und zwei Warteschlangen an

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

Wenn Sie mit Amazon arbeiten SQS und AWS KMS, Sie könnten auf Fehler stoßen. In den folgenden Referenzen werden die Fehler und möglichen Lösungen zur Fehlerbehebung beschrieben.