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.
Problembehandlung bei AWS KMS Berechtigungen
Bei der Autorisierung des Zugriffs auf einen KMS-Schlüssel AWS KMS wird Folgendes ausgewertet:
-
Die Schlüsselrichtlinie, die dem KMS-Schlüssel angefügt ist. Die Schlüsselrichtlinie wird immer in der Region AWS-Konto und definiert, der der KMS-Schlüssel gehört.
-
Alle IAM-Richtlinien, die dem Benutzer oder der Rolle, die die Anforderung stellt, angefügt sind Die IAM-Richtlinien, die den Gebrauch eines KMS-Schlüssels durch einen Prinzipal regeln, sind immer in dem AWS-Konto des Prinzipals definiert.
-
Alle Erteilungen für den KMS-Schlüssel.
-
Andere Richtlinientypen, die möglicherweise für die Anforderung zur Verwendung des KMS-Schlüssels gelten, z. B. AWS Organizations -Service-Kontrollrichtlinien und VPC-Endpunktrichtlinien. Diese Richtlinien sind optional und erlauben standardmäßig alle Aktionen. Sie können sie jedoch verwenden, um Berechtigungen zu beschränken, die ansonsten Prinzipalen gewährt werden.
AWS KMS bewertet diese Richtlinienmechanismen gemeinsam, um festzustellen, ob der Zugriff auf den KMS-Schlüssel erlaubt oder verweigert wird. AWS KMS Verwendet dazu ein Verfahren, das dem im folgenden Flussdiagramm dargestellten ähnelt. Das folgende Flussdiagramm bietet eine visuelle Darstellung des Richtlinienauswertungsprozesses.

Dieses Flussdiagramm ist in zwei Teile unterteilt. Die Teile sind sequenziell angeordnet, werden in der Regel aber gleichzeitig ausgewertet.
-
Use Authorization (Autorisierung verwenden) legt fest, ob Sie zur Verwendung eines KMS-Schlüssels, basierend auf dessen Schlüsselrichtlinie, IAM-Richtlinien und Erteilungen, berechtigt sind.
-
Key trust (Schlüsselbasierte Vertrauensstellung) legt fest, ob Sie einem KMS-Schlüssel vertrauen sollten, den Sie verwenden dürfen. Im Allgemeinen vertrauen Sie den Ressourcen in Ihrem AWS-Konto. Sie können sich aber auch darauf verlassen, KMS-Schlüssel in einer anderen Umgebung zu verwenden, AWS-Konto wenn eine Grant- oder IAM-Richtlinie in Ihrem Konto die Verwendung des KMS-Schlüssels zulässt.
Aus diesem Flussdiagramm geht hervor, warum einem Aufrufer die Berechtigung für die Verwendung eines KMS-Schlüssels gewährt oder verweigert wurde. Sie können sie auch zur Bewertung Ihrer Richtlinien und Genehmigungen heranziehen. Das Flussdiagramm veranschaulicht beispielsweise, dass einem Aufrufer der Zugriff durch eine explizite DENY
-Anweisung oder durch das Weglassen einer expliziten ALLOW
-Anweisung in der Schlüsselrichtlinie, IAM-Richtlinie oder Erteilung verwehrt werden kann.
Das Flussdiagramm kann einige gängige Berechtigungsszenarien erläutern.
Beispiele für Berechtigungen
Beispiel 1: Dem Benutzer wird der Zugriff auf einen KMS-Schlüssel in seinem AWS-Konto
Alice ist eine IAM-Benutzerin im AWS-Konto 111122223333. Ihr wurde der Zugriff auf einen KMS-Schlüssel im selben AWS-Konto verweigert. Warum kann Alice den KMS-Schlüssel nicht verwenden?
Alice erhält in diesem Fall keinen Zugriff auf den KMS-Schlüssel, da keine Schlüsselrichtlinie, IAM-Richtlinie oder Erteilung vorliegt, die ihr die erforderlichen Berechtigungen erteilen könnte. Die Schlüsselrichtlinie des KMS-Schlüssels ermöglicht die Verwendung von IAM-Richtlinien AWS-Konto zur Steuerung des Zugriffs auf den KMS-Schlüssel, aber keine IAM-Richtlinie gibt Alice die Erlaubnis, den KMS-Schlüssel zu verwenden.

Beachten Sie die relevanten Richtlinien für dieses Beispiel.
-
Der KMS-Schlüssel, den Alice verwenden möchte, untersteht der Standardschlüsselrichtlinie. Diese Richtlinie erlaubt es dem AWS-Konto, das den KMS-Schlüssel besitzt, IAM-Richtlinien zum Steuern des Zugriffs auf den KMS-Schlüssel zu verwenden. Dieser Schlüssel erfüllt die im Abschnitt ERLAUBT die Schlüsselrichtlinie dem Aufruferkonto die Verwendung von IAM-Richtlinien zur Kontrolle des Zugriffs auf den Schlüssel? des Flussdiagramms beschriebene Bedingung.
{ "Version" : "2012-10-17", "Id" : "key-test-1", "Statement" : [ { "Sid" : "Delegate to IAM policies", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }
-
Keine Schlüsselrichtlinie, IAM-Richtlinie oder Erteilung erteilt Alice jedoch die Berechtigung zur Verwendung des KMS-Schlüssels. Daher wird Alice die Berechtigung zur Verwendung des KMS-Schlüssels verweigert.
Beispiel 2: Der Benutzer übernimmt die Rolle mit der Erlaubnis, einen KMS-Schlüssel in einem anderen System zu verwenden AWS-Konto
Bob ist ein Benutzer in Konto 1 (111122223333). Er ist berechtigt, in Konto 2 (444455556666) einen KMS-Schlüssel in kryptografischen Produktionen zu verwenden. Wie ist das möglich?
Tipp
Denken Sie beim Auswerten von kontoübergreifenden Berechtigungen daran, dass die Schlüsselrichtlinie im Konto des KMS-Schlüssels angegeben wird. Die IAM-Richtlinie wird im Konto des Aufrufers angegeben, auch wenn sich der Aufrufer in einem anderen Konto befindet. Weitere Informationen zum Bereitstellen des kontoübergreifenden Zugriffs auf KMS-Schlüssel finden Sie unter Benutzern in anderen Konten die Verwendung des KMS-Schlüssels erlauben.
-
Die Schlüsselrichtlinie für den KMS-Schlüssel in Konto 2 erlaubt Konto 2 die Verwendung von IAM-Richtlinien zum Steuern des Zugriffs auf den KMS-Schlüssel.
-
Die Schlüsselrichtlinie für den KMS-Schlüssel in Konto 2 erlaubt Konto 1 die Verwendung des KMS-Schlüssels in kryptografischen Produktionen. Konto 1 muss jedoch seinen Prinzipalen anhand von IAM-Richtlinien Zugriff auf den KMS-Schlüssel gewähren.
-
Eine IAM-Richtlinie in Konto 1 erlaubt es der
Engineering
-Rolle, den KMS-Schlüssel in Konto 2 für kryptografische Produktionen zu verwenden. -
Bob, ein Benutzer in Konto 1, verfügt über die Berechtigung, die
Engineering
-Rolle zu übernehmen. -
Bob kann diesem KMS-Schlüssel vertrauen, denn obwohl sich dieser nicht in seinem Konto befindet, ist es ihm über eine IAM-Richtlinie in seinem Konto explizit erlaubt, diesen KMS-Schlüssel zu verwenden.

Betrachten wir einmal die Richtlinien, die es Bob, einem Benutzer in Konto 1, ermöglichen, den KMS-Schlüssel in Konto 2 zu verwenden.
-
Die Schlüsselrichtlinie für den KMS-Schlüssel erlaubt es Konto 2 (444455556666, das Konto, das den KMS-Schlüssel besitzt), den Zugriff auf den KMS-Schlüssel anhand von IAM-Richtlinien zu steuern. Diese Schlüsselrichtlinie erlaubt außerdem Konto 1 (111122223333) die Verwendung des KMS-Schlüssels in kryptografischen Produktionen (angegeben im
Action
-Element der Richtlinienanweisung). Niemand in Konto 1 kann jedoch den KMS-Schlüssel in Konto 2 verwenden, sofern in Konto 1 keine IAM-Richtlinien definiert sind, die den Prinzipalen Zugriff auf den KMS-Schlüssel gewähren.Im Flussdiagramm erfüllt diese Schlüsselrichtlinie in Konto 2 die Bedingung Does the key policy ALLOW the caller's account to use IAM policies to control access to the key? (ERLAUBT die Schlüsselrichtlinie dem Aufrufer-Konto die Verwendung von IAM-Richtlinien zur Steuerung des Zugriffs auf den Schlüssel?)
{ "Id": "key-policy-acct-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to use IAM policies", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow account 1 to use this KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": "*" } ] }
-
Eine IAM-Richtlinie im Konto des Anrufers AWS-Konto (Konto 1, 111122223333) erteilt dem Prinzipal die Erlaubnis, kryptografische Operationen mithilfe des KMS-Schlüssels in Konto 2 (444455556666) durchzuführen. Das
Action
-Element delegiert dem Prinzipal die gleichen Berechtigungen, die Konto 1 durch die Schlüsselrichtlinie in Konto 2 erhalten hat. Um diese Berechtigung für dieEngineering
-Rolle in Konto 1, ist diese Inline-Richtlinie eingebettet in derEngineering
-Rolle.Kontoübergreifende IAM-Richtlinien wie diese werden erst dann wirksam, wenn die Schlüsselrichtlinie für den KMS-Schlüssel in Konto 2 dem Konto 1 die Berechtigung zur Verwendung des KMS-Schlüssels erteilt. Konto 1 kann seinen Prinzipalen außerdem nur Berechtigungen zum Ausführen von Aktionen erteilen, die dem Konto über die Schlüsselrichtlinie gewährt wurden.
Im Flussdiagramm erfüllt dies die Bedingung Does an IAM policy allow the caller to perform this action? (Erlaubt eine IAM-Richtlinie dem Aufrufer die Ausführung dieser Aktion?).
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-west-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab" ] } ] }
-
Das letzte erforderliche Element ist die Definition der
Engineering
-Rolle in Konto 1. DasAssumeRolePolicyDocument
in der Rolle erlaubt Bob, dieEngineering
-Rolle zu übernehmen.{ "Role": { "Arn": "arn:aws:iam::111122223333:role/Engineering", "CreateDate": "2019-05-16T00:09:25Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": { "Principal": { "AWS": "arn:aws:iam::111122223333:user/bob" }, "Effect": "Allow", "Action": "sts:AssumeRole" } }, "Path": "/", "RoleName": "Engineering", "RoleId": "AROA4KJY2TU23Y7NK62MV" } }