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:
-
Verwenden Sie einen vom Kunden verwalteten Schlüssel. Weitere Informationen finden Sie unter Erstellen von Schlüsseln im AWS Key Management Service-Entwicklerhandbuch.
-
Damit der AWS-Service über die Berechtigungen
kms:GenerateDataKey*
undkms: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:
-
Fügen Sie die
aws:SourceAccount
- undaws: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
undaws: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
" } } } -
Aktivieren Sie SSE für Ihr Thema mithilfe Ihres KMS.
-
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