AWS KMS key-Verwaltung - Amazon Aurora

AWS KMS key-Verwaltung

Amazon Aurora wird automatisch zur Schlüsselverwaltung in AWS Key Management Service (AWS KMS) integriert. Amazon Aurora verwendet eine Envelope-Verschlüsselung. Weitere Informationen zur Envelope-Verschlüsselung finden Sie unter Envelope-Verschlüsselung im AWS Key Management Service-Entwicklerhandbuch.

Sie können zwei Typen von AWS KMS-Schlüsseln verwenden, um Ihre DB-Cluster zu verschlüsseln.

  • Wenn Sie die volle Kontrolle über einen KMS-Schlüssel haben möchten, müssen Sie einen vom Kunden verwalteten Schlüssel erstellen. Weitere Informationen über kundenverwaltete Schlüssel finden Sie unter Kundenverwaltete Schlüssel im AWS Key Management Service Developer Guide.

  • Von AWS verwaltete Schlüssel sind KMS-Schlüssel in Ihrem Konto, die in Ihrem Namen von einem AWS Dienst erstellt, verwaltet und verwendet werden, der mit AWS KMS. Standardmäßig wird der RDS-Von AWS verwalteter Schlüssel (aws/rds) für die Verschlüsselung verwendet. Sie können den RDS-Von AWS verwalteter Schlüssel nicht verwalten, rotieren oder löschen. Weitere Informationen zu Von AWS verwaltete Schlüssel finden Sie unter Von AWS verwaltete Schlüssel im AWS Key Management Service-Entwickler-Leitfaden.

Zur Verwaltung von KMS-Schlüsseln für verschlüsselte DB-Cluster von Amazon Aurora verwenden Sie den AWS Key Management Service (AWS KMS) in der AWS KMS-Konsole, die AWS CLI oder die AWS KMS-API. Verwenden Sie zur Anzeige von Audit-Protokollen für jede Aktion, die mit einem AWS-verwalteten oder kundenverwalteten Schlüssel durchgeführt wurde AWS CloudTrail. Weitere Informationen zum Rotieren der Schlüssel finden Sie unter Rotieren von AWS KMS-Schlüsseln.

Autorisieren der Verwendung eines kundenverwalteten Schlüssels

Wenn Aurora einen vom Kunden verwalteten Schlüssel für kryptografische Vorgänge verwendet, handelt es im Namen des Benutzers, der die Aurora-Ressource erstellt oder ändert.

Wenn Sie eine Aurora-Ressource mit einem vom Kunden verwalteten Schlüssel erstellen möchten, müssen Sie über die Berechtigung verfügen, die folgenden Vorgänge für den vom Kunden verwalteten Schlüssel aufzurufen:

  • kms:CreateGrant

  • kms:DescribeKey

Sie können diese erforderlichen Berechtigungen in einer Schlüsselrichtlinie oder in einer IAM-Richtlinie angeben, wenn die Schlüsselrichtlinie dies zulässt.

Wichtig

Wenn Sie explizite Zugriffsverweigerungsanweisungen für alle Ressourcen (*) in AWS KMS-Schlüsselrichtlinien mit verwalteten Services wie Amazon RDS verwenden, müssen Sie eine Bedingung angeben, damit das Konto als Eigentümer der Ressource agieren kann. Ohne diese Bedingung können Vorgänge fehlschlagen, auch wenn die Zugriffsverweigerungsregel Ausnahmen für Ihren IAM-Benutzer enthält.

Tipp

Um den Grundsatz der Erteilung der geringsten erforderlichen Berechtigungen zu befolgen, lassen Sie den vollständigen Zugriff auf kms:CreateGrant nicht zu. Verwenden Sie stattdessen den kms:ViaService-Bedingungsschlüssel, um dem Benutzer die Erstellung von Erteilungen auf dem KMS-Schlüssel nur dann zu erlauben, wenn die Erteilungen im Namen des Benutzers von einem AWS-Service erstellt wird.

Sie können die IAM-Richtlinie auf verschiedene Weise strikter gestalten. Um beispielsweise zu erlauben, dass der vom Kunden verwaltete Schlüssel nur für Anfragen verwendet wird, die von Aurora ausgehen, können Sie den kms:ViaService-Bedingungsschlüssel mit dem Wert rds.<region>.amazonaws.com verwenden. Sie können auch die Schlüssel oder Werte im Amazon-RDS-Verschlüsselungskontext als Bedingung für die Verwendung des vom Kunden verwalteten Schlüssels für die Verschlüsselung verwenden.

Weitere Informationen finden Sie unter Benutzern in anderen Konten die Verwendung eines KMS-Schlüssels erlauben im AWS Key Management Service-Entwicklerhandbuch und unter Schlüsselrichtlinien in AWS KMS.

Amazon-RDS-Verschlüsselungskontext

Wenn Aurora Ihren KMS-Schlüssel verwendet oder Amazon EBS den KMS-Schlüssel im Namen von Aurora verwendet, gibt der Service einen Verschlüsselungskontext an. Der Verschlüsselungskontext enthält zusätzliche authentifizierte Daten (AAD), anhand derer AWS KMS die Datenintegrität sicherstellt. Wenn für eine Verschlüsselungsoperation ein Verschlüsselungskontext angegeben wird, muss der Service denselben Verschlüsselungskontext auch für die Entschlüsselungsoperation angeben. Andernfalls schlägt die Entschlüsselung fehl. Der Verschlüsselungskontext wird zudem in Ihre AWS CloudTrail-Protokolle geschrieben, sodass Sie jederzeit nachvollziehen können, warum ein bestimmter KMS-Schlüssel verwendet wurde. Ihre CloudTrail-Protokolle können sehr viele Einträge zur Verwendung eines KMS-Schlüssels enthalten. Der Verschlüsselungskontext in den einzelnen Protokolleinträgen kann Ihnen jedoch helfen, herauszufinden, warum der KMS-Schlüssel zu einem gegebenen Zeitpunkt verwendet wurde.

Aurora gibt als Verschlüsselungskontext immer mindestens die ID der DB-des CB-Clusters an, wie im folgenden Beispiel im JSON-Format gezeigt:

{ "aws:rds:dbc-id": "cluster-CQYSMDPBRZ7BPMH7Y3RTDG5QY" }

Anhand dieses Verschlüsselungskontexts können Sie herausfinden, für welchen DB-Cluster der KMS-Schlüssel verwendet wurde.

Wird Ihr KMS-Schlüssel für einen bestimmten DB-Cluster und ein bestimmtes Amazon-EBS-Volume verwendet, werden die ID des DB-Clusters und die ID des EBS-Volumes als Verschlüsselungskontext angegeben, wie im folgenden Beispiel im JSON-Format gezeigt:

{ "aws:rds:dbc-id": "cluster-BRG7VYS3SVIFQW7234EJQOM5RQ", "aws:ebs:id": "vol-ad8c6542" }