Erteilungen in AWS KMS - AWS Key Management 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.

Erteilungen in AWS KMS

Eine Erteilung ist ein Richtlinieninstrument, das es AWS-Prinzipalen erlaubt, KMS-Schlüssel in kryptografischen Operationen zu verwenden. Es kann ihnen auch erlauben, einen KMS-Schlüssel anzuzeigen (DescribeKey) und Erteilungen zu erstellen und zu verwalten. Bei der Autorisierung des Zugriffs auf einen KMS-Schlüssel werden Erteilungen zusammen mit Schlüsselrichtlinien und IAM-Richtlinien berücksichtigt. Erteilungen werden häufig für temporäre Berechtigungen verwendet, da Sie eine erstellen, deren Berechtigungen verwenden und sie dann wieder löschen können, ohne Ihre Schlüsselrichtlinien oder IAM-Richtlinien zu ändern.

Erteilungen werden häufig von AWS-Services verwendet, die sich in AWS KMS integrieren, um Ihre ruhenden Daten zu verschlüsseln. Der Service erstellt eine Erteilung im Namen eines Benutzers im Konto, verwendet seine Berechtigungen und hebt die Erteilung auf, sobald die Aufgabe abgeschlossen ist. Weitere Informationen darüber, wie AWS-Services Erteilungen verwenden, finden Sie unter Verwendung von AWS KMS durch AWS-Service oder dem Thema Verschlüsselung im Ruhezustand im Benutzerhandbuch oder Entwicklerhandbuch für den Service.

Code-Beispiele zur Veranschaulichung der Arbeit mit Erteilungen in mehreren Programmiersprachen finden Sie unter Arbeiten mit Erteilungen.

Informationen über Erteilungen

Erteilungen sind ein sehr flexibler und nützlicher Zugriffsteuerungs-Mechanismus. Wenn Sie eine Erteilung für einen KMS-Schlüssel erstellen, erlaubt die Erteilung es dem Empfänger-Prinzipal, die angegebenen Erteilungs-Operationen für den KMS-Schlüssel aufzurufen, vorausgesetzt, dass alle in der Erteilung angegebenen Bedingungen erfüllt sind.

  • Jede Erteilung erlaubt den Zugriff auf genau einen KMS-Schlüssel. Sie können eine Erteilung für einen KMS-Schlüssel in einem anderen AWS-Konto erstellen.

  • Eine Erteilung kann den Zugriff auf einen KMS-Schlüssel erlauben, aber nicht den Zugriff verweigern.

  • Jede Erteilung hat einen Empfänger-Prinzipal. Der Empfänger-Prinzipal kann im selben AWS-Konto wie der KMS-Schlüssel oder in einem anderen Konto eine oder mehrere Identitäten repräsentieren.

  • Eine Erteilung kann nur Erteilungs-Operationen erlauben. Die Erteilungs-Operationen müssen durch den KMS-Schlüssel in der Erteilung unterstützt werden. Wenn Sie eine nicht unterstützte Operation angeben, schlägt die CreateGrant Anforderung mit einer ValidationError Ausnahme fehl.

  • Der Empfänger-Prinzipal können die Berechtigungen verwenden, die ihnen durch die Erteilung gewährt werden, ohne die Erteilung anzugeben, genauso wie wenn die Berechtigungen aus einer Schlüsselrichtlinie oder IAM-Richtlinie stammen. Da die AWS KMS-API jedoch einem Konsistenzmodell folgt, kann es bei der Erstellung, Außerbetriebnahme oder Widerruf einer Erlaubnis zu einer kurzen Verzögerung kommen, bevor die Änderung in ganz AWS KMS verfügbar ist. Um die Berechtigungen in einer Erteilung sofort zu verwenden, verwenden Sie einen Erteilungs-Token.

  • Ein autorisierter Prinzipal kann die Erteilung löschen, (aufheben oder widerrufen). Durch das Löschen einer Erteilung entfallen alle Berechtigungen, die durch die Erteilung erlaubt wurden. Sie müssen nicht herausfinden, welche Richtlinien hinzugefügt oder entfernt werden sollen, um die Erteilung rückgängig zu machen.

  • AWS KMS begrenzt die Anzahl der Erteilungen für jeden KMS-Schlüssel. Details hierzu finden Sie unter Erteilungen pro KMS-Schlüssel: 50 000.

Seien Sie vorsichtig, wenn Sie Erteilungen erstellen und anderen die Berechtigung zum Erstellen von Erteilungen erteilen. Die Berechtigung zum Erstellen von Erteilungen hat Auswirkungen auf die Sicherheit, ähnlich wie das Zulassen von kms:PutKeyPolicy die Berechtigung zum Festlegen von Richtlinien.

  • Benutzer mit der Berechtigung zum Erstellen von Erteilungen für einen KMS-Schlüssel (kms:CreateGrant) können eine Erteilung verwenden, um es Benutzern und Rollen, einschließlich AWS-Services, zu erlauben, den KMS-Schlüssel zu verwenden. –Die Prinzipale können Identitäten in Ihrem eigenen AWS-Konto oder Identitäten in einem anderen Konto oder einer anderen Organisation sein.

  • Erteilungen können nur eine Teilmenge von AWS KMS-Operationen verwenden. Sie können Erteilungen verwenden, um es Prinzipalen zu erlauben, den KMS-Schlüssel anzuzeigen, ihn in kryptografischen Operationen zu verwenden und Erteilungen zu erstellen und außer Betrieb zu nehmen. Details dazu finden Sie unter Erteilungs-Operationen. Sie können auch Erteilungs-Einschränkungen verwenden, um die Berechtigungen in einer Erteilung für eine Schlüssel mit symmetrischer Verschlüsselung einzuschränken.

  • Prinzipale können Berechtigung zum Erstellen von Erteilungen aus einer Schlüsselrichtlinie oder IAM-Richtlinie erhalten. Prinzipale, die kms:CreateGrant-Berechtigung aus einer Richtlinie bekommen, können Zuschüsse für alle Erteilungs-Operationen auf dem KMS-Schlüssel erstellen. Diese Prinzipale müssen nicht über die Berechtigung verfügen, die sie für den Schlüssel erteilen. Wenn Sie die kms:CreateGrant-Berechtigung in einer Richtlinie erlauben, können Sie Richtlinienbedingungen verwenden, um diese Berechtigung einzuschränken.

  • Prinzipale können auch die Berechtigung erhalten, Erteilungen aus einer Erteilung zu erstellen. Diese Prinzipale können nur die Berechtigungen delegieren, die ihnen erteilt wurden, selbst wenn sie über andere Berechtigungen aus einer Richtlinie verfügen. Details hierzu finden Sie unter Gewähren von CreateGrant Berechtigungen.

Hilfe zu Konzepten im Zusammenhang mit Erteilungen finden Sie unter Terminologie für Erteilungen.

Konzepte für Erteilungen

Um Erteilungen effektiv nutzen zu können, müssen Sie die Begriffe und Konzepte verstehen, die AWS KMS verwendet.

Einschränkungen für Erteilungen

Eine Bedingung, die die Berechtigungen in der Erteilung einschränkt. Derzeit unterstützt AWS KMS Erteilungs-Einschränkungen anhand des Verschlüsselungskontexts in der Anforderung für eine kryptografische Produktion. Details hierzu finden Sie unter Verwenden von Erteilungs-Einschränkungen.

Erteilungs-ID

Die eindeutige ID einer Erteilung für einen KMS-Schlüssel. Sie können eine Erteilungs-ID zusammen mit einer Schlüsselkennung verwenden, um eine Erteilung in einer - oder -RevokeGrantAnforderung zu identifizieren. RetireGrant

Erteilungs-Operationen

Die AWS KMS-Operationen, die Sie in einer Erteilung erlauben können. Wenn Sie andere Operationen angeben, schlägt die CreateGrant Anforderung mit einer ValidationError Ausnahme fehl. Dies sind auch die Operationen, die einen Erteilungs-Token akzeptieren. Ausführliche Informationen über diese Berechtigungen finden Sie unter AWS KMS -Berechtigungen.

Diese Erteilungs-Operationen stellen tatsächlich die Berechtigung zur Verwendung der Produktion dar. Daher gilt, dass Sie für die ReEncrypt-Produktion ReEncryptFrom, ReEncryptTo, oder beide ReEncrypt* angeben können.

Die Erteilungs-Operationen sind:

Die Erteilungs-Operationen, die Sie erlauben, müssen durch den KMS-Schlüssel in der Erteilung unterstützt werden. Wenn Sie eine nicht unterstützte Operation angeben, schlägt die CreateGrant Anforderung mit einer ValidationError Ausnahme fehl. Beispielsweise können Erteilungen für KMS-Schlüssel mit symmetrischer Verschlüsselung die Operationen Signieren, Überprüfen, GenerateMac oder VerifyMac nicht zulassen. Erteilungen für asymmetrische KMS-Schlüssel dürfen keine Operationen zulassen, die Datenschlüssel oder Datenschlüsselpaare generieren.

Erteilungs-Token

Die AWS KMS-API folgt einem eventuellen Konsistenzmodell. Wenn Sie eine Erteilung erstellen, kann es zu einer kurzen Verzögerung kommen, bis die Änderung in AWS KMS verfügbar ist. In der Regel dauert es weniger als ein paar Sekunden, bis sich die Änderung im gesamten System verbreitet, in einigen Fällen kann es jedoch mehrere Minuten dauern. Wenn Sie versuchen, eine Erteilung zu verwenden, bevor sie sich vollständig im System verbreitet hat, erhalten Sie möglicherweise eine Zugriffsverweigerungsmeldung. Mit einem Erteilungs-Token können Sie auf die Erteilung verweisen und die Erteilungs-Berechtigungen sofort verwenden.

Ein Berechtigungserteilungs-Token ist eine eindeutige, nicht-geheime, base64-kodierte Zeichenfolge mit variabler Länge, die eine Erteilung darstellt. Sie können den Erteilungs-Token verwenden, um die Erteilung in jeder Erteilungs-Produktion zu identifizieren. Da der Token-Wert jedoch ein Hash-Digest ist, zeigt er keine Details über die Erteilung an.

Ein Erteilungs-Token darf nur so lange verwendet werden, bis sich die Erteilung vollständig in AWS KMS ausgebreitet hat. Danach kann der Empfänger-Prinzipal die Berechtigung in der Erteilung ohne Angabe eines Grant-Token oder eines anderen Beweises für die Erteilung verwenden. Sie können jederzeit ein Erteilungs-Token verwenden, aber sobald die Erteilung die letztendliche Konsistenz erreicht hat, verwendet AWS KMS die Erteilung, um Berechtigungen zu bestimmen, und nicht das Erteilungs-Token.

Mit dem folgenden Befehl wird beispielsweise die -GenerateDataKeyOperation aufgerufen. Er verwendet ein Erteilung-Token, um die Erteilung darzustellen, die dem Aufrufer (dem erteilenden Prinzipal) die Berechtigung zum Aufrufen von GenerateDataKey für den angegebenen KMS-Schlüssel erteilt.

$ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --grant-token $token

Sie können den Erteilungs-Token verwenden, um eine Erteilung in Operationen zu identifizieren, die Erteilungen verwalten. Beispielsweise kann der ausscheidende Prinzipal ein Erteilungs-Token in einem Aufruf der -RetireGrantOperation verwenden.

$ aws kms retire-grant \ --grant-token $token

CreateGrant ist die einzige Produktion, die ein Erteilungs-Token zurückgibt. Sie können kein Erteilungs-Token von einer anderen AWS KMS Operation oder vom CloudTrail Protokollereignis für die CreateGrant Operation erhalten. Die ListRetirableGrants Operationen ListGrants und geben die Erteilungs-ID zurück, aber kein Erteilungs-Token.

Details hierzu finden Sie unter Verwenden eines Erteilungs-Token.

Erteilender Prinzipal

Die Identitäten, die die in der Erteilung angegebenen Berechtigungen erhalten. Jede Erteilung hat einen Empfänger-Prinzipal, aber der Empfänger-Prinzipal kann mehrere Identitäten repräsentieren.

Der Empfänger-Prinzipal kann ein beliebiger AWS-Prinzipal sein, wie ein AWS-Konto (Root), ein IAM-Benutzer, eine IAM-Rolle, eine Verbundrolle oder ein Verbundbenutzer oder ein Benutzer einer übernommenen Rolle. Der Empfänger-Prinzipal kann sich im selben Konto wie der KMS-Schlüssel oder in einem anderen Konto befinden. Der Empfänger-Prinzipal kann jedoch kein Service-Prinzipal und keine IAM-Gruppe oder AWS-Organisation sein.

Anmerkung

Bewährte IAM-Methoden raten von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM-Rollen, die temporäre Anmeldeinformationen bereitstellen. Weitere Informationen finden Sie unter Bewährte Methoden für die Sicherheit in IAM im IAM-Benutzerhandbuch.

Außerbetriebnahme (einer Erteilung)

Beendet eine Erteilung. Sie können eine Erteilung aufheben, wenn Sie die Berechtigungen nicht mehr brauchen.

Wenn Sie eine Erteilung widerrufen oder außer Betrieb nehmen, wird die Erteilung gelöscht. Die Außerbetriebnahme erfolgt jedoch durch einen Prinzipal, der in der Erteilung angegeben ist. Das Widerrufen erfolgt in der Regel durch einen Schlüsseladministrator. Details hierzu finden Sie unter Außerbetriebnahme und Widerruf von Erteilungen.

Außerbetriebnahme eines Prinzipals

Ein Prinzipal, der eine Erteilung aufheben kann. Sie können einen ausscheidenden Prinzipal in einer Erteilung angeben, jedoch ist es nicht erforderlich. Der ausscheidende Prinzipal kann ein beliebiger AWS-Prinzipal sein, einschließlich AWS-Konten, IAM-Benutzer, IAM-Rollen, Verbundbenutzer und angenommener Rollenbenutzer. Der ausscheidende Prinzipal kann sich im selben Konto wie der KMS-Schlüssel oder in einem anderen Konto befinden.

Anmerkung

Bewährte IAM-Methoden raten von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM-Rollen, die temporäre Anmeldeinformationen bereitstellen. Weitere Informationen finden Sie unter Bewährte Methoden für die Sicherheit in IAM im IAM-Benutzerhandbuch.

Zusätzlich zu dem in der Erteilung angegebenen ausscheidenden Prinzipal kann eine Erteilung von dem AWS-Konto aufgehoben werden, in dem die Erteilung erstellt wurde. Wenn die Erteilung die RetireGrant-Produktion erlaubt, kann der Empfänger-Prinzipal die Erteilung aufheben. Auch das AWS-Konto oder ein AWS-Konto, bei dem es sich um den ausscheidenden Prinzipal handelt, kann die Berechtigung zur Außerbetriebnahme einer Erteilung an einen IAM-Prinzipal in demselben AWS-Konto delegieren. Details hierzu finden Sie unter Außerbetriebnahme und Widerruf von Erteilungen.

Widerrufen (einer Erteilung)

Beendet eine Erteilung. Sie widerrufen eine Erteilung, um aktiv die Berechtigung abzulehnen, die die Erteilung erlaubt.

Wenn Sie eine Erteilung widerrufen oder außer Betrieb nehmen, wird die Erteilung gelöscht. Die Außerbetriebnahme erfolgt jedoch durch einen Prinzipal, der in der Erteilung angegeben ist. Das Widerrufen erfolgt in der Regel durch einen Schlüsseladministrator. Details hierzu finden Sie unter Außerbetriebnahme und Widerruf von Erteilungen.

Letztendliche Konsistenz (für Erteilungen)

Die AWS KMS-API folgt einem eventuellen Konsistenzmodell. Wenn Sie eine Erteilung erstellen, aufheben oder widerrufen, kann es zu einer kurzen Verzögerung kommen, bevor die Änderung in allen Bereichen von AWS KMS verfügbar ist. In der Regel dauert es weniger als ein paar Sekunden, bis sich die Änderung im gesamten System verbreitet, in einigen Fällen kann es jedoch mehrere Minuten dauern.

Diese kurze Verzögerung kann Ihnen auffallen, wenn Sie unerwartete Fehler erhalten. Wenn Sie beispielsweise versuchen, eine neue Erteilung zu verwalten oder die Berechtigungen in einer neuen Erteilung zu verwenden, bevor die Erteilung in allen Bereichen von AWS KMS bekannt ist, wird möglicherweise eine Zugriff-verweigert-Fehlermeldung angezeigt. Wenn Sie eine Erteilung aufheben oder widerrufen, kann der Empfänger-Prinzipal seine Berechtigungen möglicherweise für einen kurzen Zeitraum verwenden, bis die Erteilung vollständig gelöscht wurde. Die typische Strategie besteht darin, die Anforderung erneut zu versuchen, und einige AWS-SDKs enthalten automatische Backoff- und Wiederholungslogik.

AWS KMS verfügt über Funktionen, um diese kurze Verzögerung zu verringern.

  • Um die Berechtigungen in einer neuen Erteilung sofort zu verwenden, verwenden Sie einen Erteilungs-Token. Sie können einen Erteilungs-Token verwenden, um die Erteilung in jeder Erteilungs-Produktion zu identifizieren. Anweisungen finden Sie unter Verwenden eines Erteilungs-Token.

  • Der CreateGrant Vorgang verfügt über einen Name Parameter, der verhindert, dass Wiederholungsvorgänge doppelte Erteilungen erstellen.

Anmerkung

Erteilungs-Token ersetzen die Gültigkeit der Erteilung, bis alle Endpunkte im Service mit dem neuen Erteilungsstatus aktualisiert wurden. In den meisten Fällen wird die letztendliche Konsistenz innerhalb von fünf Minuten erreicht.

Weitere Informationen finden Sie unter AWS KMS Letztendliche Konsistenz.

Bewährte Methoden für AWS KMS-Erteilungen

AWS KMS empfiehlt beim Erstellen, Verwenden und Verwalten von Erteilungen die folgenden bewährten Methoden.

  • Beschränken Sie die Berechtigungen in der Erteilung auf diejenigen, die der Empfänger-Prinzipal benötigt. Erteilen Sie Zugriff nach dem Prinzip der geringsten Berechtigung.

  • Verwenden Sie einen bestimmten Empfänger-Prinzipal, z. B. eine IAM-Rolle, und erteilen Sie dem Empfänger-Prinzipal nur die Berechtigung, die API-Operationen zu verwenden, die er benötigt.

  • Verwenden Sie den Verschlüsselungskontext Erteilungs-Einschränkungen, um sicherzustellen, dass Anrufer den KMS-Schlüssel für den beabsichtigten Zweck verwenden. Einzelheiten zur Verwendung des Verschlüsselungskontexts in einer Anforderung zum Schutz Ihrer Daten finden Sie unter So schützen Sie die Integrität Ihrer verschlüsselten Daten mithilfe von AWS Key Management Service und EncryptionContext im AWS -Sicherheitsblog.

    Tipp

    Verwenden Sie nach Möglichkeit die EncryptionContextEqual Erteilungseinschränkung. Die EncryptionContextSubset Erteilungseinschränkung ist schwieriger zu verwenden. Wenn Sie sie verwenden müssen, lesen Sie die Dokumentation sorgfältig durch und testen Sie die Erteilungs-Einschränkung, um sicherzustellen, dass sie wie beabsichtigt funktioniert.

  • Löschen Sie doppelte Erteilungen. Doppelte Erteilungen haben dieselben API-Aktionen und denselben Schlüssel-ARN, Empfänger-Prinzipal, Verschlüsselungskontext und Namen. Wenn Sie die ursprüngliche Erteilung aufheben oder widerrufen, aber die doppelte Erteilungen belassen, stellen die verbleibenden doppelten Erteilungen unbeabsichtigte Eskalationen von Rechten dar. Um bei CreateGrant-Anforderungen zu vermeiden, dass doppelte Erteilungen erstellt werden, verwenden Sie den Name-Parameter. Um doppelte Erteilungen zu erkennen, verwenden Sie die -ListGrantsOperation. Wenn Sie versehentlich eine doppelte Erteilung erstellen, widerrufen Sie bzw. nehmen Sie diese sie so schnell wie möglich außer Betrieb.

    Anmerkung

    Erteilungen für AWS-verwaltete Schlüssel könnten wie Duplikate aussehen, haben aber unterschiedliche Empfänger-Prinzipale.

    Das GranteePrincipal-Feld in der ListGrants-Antwort enthält normalerweise den Berechtigungsprinzipal der Genehmigung. Wenn der Empfänger-Prinzipal in der Erteilung jedoch ein AWS-Service ist, enthält das GranteePrincipal-Feld den Service-Prinzipal, der mehrere verschiedene Empfänger-Prinzipale repräsentieren kann.

  • Denken Sie daran, dass Erteilungen nicht automatisch ablaufen. Außerbetriebnahme oder Widerruf der Erteilung sobald die Berechtigung nicht mehr benötigt wird. Erteilungen, die nicht gelöscht werden, können ein Sicherheitsrisiko für verschlüsselte Ressourcen verursachen.