Schlüsselverwaltung - Amazon Simple Notification 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.

Schlüsselverwaltung

Die folgenden Abschnitte enthalten Informationen zum Arbeiten mit Schlüsseln, die in AWS Key Management Service (AWS KMS) verwaltet werden. Mehr Informationen über

Anmerkung

Amazon SNS unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Sie können keinen anderen KMS-Schlüsseltyp für die Verschlüsselung Ihre Service-Ressourcen verwenden. Wie Sie feststellen, ob ein KMS-Schlüssel ein symmetrisch Verschlüsselungsschlüssel ist, erfahren Sie unter Erkennen asymmetrischer Schlüssel.

Einschätzen der AWS KMS-Kosten

Möglicherweise möchten Sie Ihre Kosten genauer vorhersagen und Ihre AWS-Rechnung besser nachvollziehen können und wollen daher wissen, wie oft Amazon SNS Ihren AWS KMS key 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 SNS höher liegen.

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

R = B / D * (2 * P)

B ist der Abrechnungszeitraum (in Sekunden).

D ist die Wiederverwendungszeit des Datenschlüssels (in Sekunden—Amazon SNS verwendet einen Datenschlüssel bis zu 5 Minuten lang).

P ist die Anzahl der Veröffentlichungen der Prinzipale, die Nachrichten an das Amazon-SNS-Thema senden.

Es folgen Beispielberechnungen: Preisinformationen finden Sie unter AWS Key Management Service-Preise.

Beispiel 1: Berechnung der Anzahl der AWS KMS-API-Aufrufe für 1 Herausgeber und 1 Thema

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 5 Minuten (300 Sekunden).

  • Es gibt 1 Thema.

  • Es gibt 1 Veröffentlichungsprinzipal.

2,678,400 / 300 * (2 * 1) = 17,856

Beispiel 2: Berechnung der Anzahl der AWS KMS-API-Aufrufe für mehrere Herausgeber und 2 Themen

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 5 Minuten (300 Sekunden).

  • Es gibt 2 Themen.

  • Das erste Thema hat 3 Veröffentlichungsprinzipale.

  • Das zweite Thema hat 5 Veröffentlichungsprinzipale.

(2,419,200 / 300 * (2 * 3)) + (2,419,200 / 300 * (2 * 5)) = 129,024

Konfigurieren von AWS KMS-Berechtigungen

Bevor Sie SSE verwenden können, müssen Sie AWS KMS key-Richtlinien konfigurieren, um eine Verschlüsselung von Themen und eine Verschlüsselung sowie Entschlüsselung von Nachrichten zu ermöglichen. Weitere Informationen zu Berechtigungen für AWS KMS-Aktionen finden Sie unter AWS KMS Glue-API-Berechtigungen: Referenz für Aktionen und Ressourcen im AWS Key Management Service Entwicklerhandbuch. Einzelheiten zur Einrichtung eines Amazon-SNS-Themas mit serverseitiger Verschlüsselung finden Sie unter Ein Amazon-SNS-Thema mit serverseitiger Verschlüsselung einrichten.

Anmerkung

Sie können Berechtigungen für symmetrische KMS-Verschlüsselungsschlüssel auch mit IAM-Richtlinien verwalten. Weitere Informationen finden Sie unter Verwenden von IAM-Richtlinien mitAWS KMS.

Sie können globale Berechtigungen zum Senden und Empfangen von Amazon SNS konfigurieren. Für AWS KMS ist jedoch eine explizite Benennung des vollständigen ARN von KMSs in bestimmten Regionen im Abschnitt Resource der IAM-Richtlinie erforderlich.

Außerdem müssen Sie sicherstellen, dass die Schlüsselrichtlinien des AWS KMS key die erforderlichen Berechtigungen gewähren. Geben Sie dazu die Namen der Prinzipale an, die verschlüsselte Nachrichten in Amazon SNS als Benutzer in der KMS-Schlüsselrichtlinie produzieren und verbrauchen.

Alternativ können Sie die erforderlichen AWS KMS-Aktionen und den KMS-ARN in einer IAM-Richtlinie angeben, die den Prinzipalen zugewiesen ist, die verschlüsselte Nachrichten in Amazon SNS veröffentlichen und abonnieren. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf AWS KMS im AWS Key Management Service-Entwicklerhandbuch.

Wenn Sie einen vom Kunden verwalteten Schlüssel für Ihr Amazon-SNS-Thema auswählen und Sie Aliase verwenden, um den Zugriff auf KMS-Schlüssel mithilfe von IAM-Richtlinien oder KMS-Schlüsselrichtlinien mit dem Bedingungsschlüssel kms:ResourceAliases zu steuern, stellen Sie sicher, dass dem ausgewählten vom Kunden verwalteten Schlüssel auch ein Alias zugeordnet ist. Weitere Informationen zur Verwendung von Aliasen zur Steuerung des Zugriffs auf KMS-Schlüssel finden Sie unter Verwenden von Aliasen zur Steuerung des Zugriffs auf KMS-Schlüssel im Entwicklerhandbuch zu AWS Key Management Service.

Einem Benutzer erlauben, Nachrichten an ein bestimmtes Thema mit SSE zu senden

Der Publisher muss die Berechtigungen kms:GenerateDataKey* und kms:Decrypt für den AWS KMS key besitzen.

{ "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:*:123456789012:MyTopic" }] }

Ermöglichen der Kompatibilität zwischen Ereignisquellen aus AWS Services und verschlüsselten Themen

Mehrere AWS-Services veröffentlichen Ereignisse zu Amazon SNS Themen. Damit diese Ereignisquellen mit verschlüsselten Themen arbeiten können, müssen Sie die folgenden Schritte ausführen:

  1. Verwenden Sie einen vom Kunden verwalteten Schlüssel. Weitere Informationen finden Sie unter Erstellen von Schlüsseln im AWS Key Management Service-Entwicklerhandbuch.

  2. Damit der AWS-Service über die Berechtigungen kms:GenerateDataKey* und kms:Decrypt verfügt, fügen Sie die folgende Anweisung zur KMS-Richtlinie hinzu.

    { "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }
    Ereignisquelle Dienstauftraggeber
    Amazon CloudWatch cloudwatch.amazonaws.com
    Amazon CloudWatch Events events.amazonaws.com
    AWS CodeCommit codecommit.amazonaws.com
    AWS CodeStar codestar-notifications.amazonaws.com
    AWS Database Migration Service dms.amazonaws.com
    AWS Directory Service ds.amazonaws.com
    Amazon DynamoDB dynamodb.amazonaws.com
    Amazon Inspector inspector.amazonaws.com
    Amazon Redshift redshift.amazonaws.com
    Amazon RDS events.rds.amazonaws.com
    Amazon S3 Glacier glacier.amazonaws.com
    Amazon Simple Email Service ses.amazonaws.com
    Amazon Simple Storage Service s3.amazonaws.com
    AWS Snowball importexport.amazonaws.com
    AWS Systems Manager Incident Manager

    AWS Systems Manager Incident Manager besteht aus zwei Service-Prinzipien:

    ssm-incidents.amazonaws.com; ssm-contacts.amazonaws.com
    Anmerkung

    Bei einigen Ereignisquellen von Amazon SNS müssen Sie eine IAM-Rolle(anstelle des Dienstprinzips) in der AWS KMS key-Richtlinie bereitstellen:

  3. Fügen Sie die aws:SourceAccount- und aws:SourceArn-Bedingungsschlüssel der KMS-Ressourcenrichtlinie hinzu, um den KMS-Schlüssel vor Confused-Deputy-Angriffen zu schützen. Genaue Einzelheiten zu jedem Fall finden Sie in der jeweiligen Liste der servicespezifischen Dokumentation (oben).

    Wichtig

    Das Hinzufügen von aws:SourceAccount und aws:SourceArn zu einer AWS KMS-Richtlinie wird für Themen „EventBridge-zu-verschlüsselt“ nicht unterstützt.

    { "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "customer-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:service:region:customer-account-id:resource-type:customer-resource-id" } } }
  4. Aktivieren Sie SSE für Ihr Thema mithilfe Ihres KMS.

  5. Stellen Sie der Ereignisquelle den ARN des verschlüsselten Themas zur Verfügung.

AWS KMS-Fehler

Wenn Sie mit Amazon SNS und AWS KMS, arbeiten, können Fehler auftreten. Die folgende Liste beschreibt die Fehler und möglichen Lösungen.

KMSAccessDeniedException

Der Verschlüsselungstext verweist auf einen Schlüssel, der nicht vorhanden ist oder auf den Sie keinen Zugriff haben.

HTTP Status Code: 400

KMSDisabledException

Die Anforderung wurde abgelehnt, da der angegebene KMS nicht aktiviert ist.

HTTP Status Code: 400

KMSInvalidStateException

Die Anforderung wurde abgelehnt, da der Status der angegebenen Ressource für diese Anforderung ungültig ist. Weitere Informationen finden Sie unter Schlüsselstatus von AWS KMS keys im AWS Key Management Service-Entwicklerhandbuch.

HTTP Status Code: 400

KMSNotFoundException

Die Anforderung wurde abgelehnt, da die angegebene Entity oder Ressource nicht gefunden wurde.

HTTP Status Code: 400

KMSOptInRequired

Die AWS-Zugriffsschlüssel-ID benötigt ein Abonnement für den Service.

HTTP Status Code: 403

KMSThrottlingException

Die Anforderung wurde aufgrund der Drosselung von Anforderungen abgelehnt. Weitere Informationen zur Drosselung finden Sie unter Kontingente im AWS Key Management Service-Entwicklerhandbuch.

HTTP Status Code: 400