Verwenden von Aliassen zur Steuerung des Zugriffs auf KMS-Schlüssel - 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.

Verwenden von Aliassen zur Steuerung des Zugriffs auf KMS-Schlüssel

Verwenden Sie diesen Bedingungsschlüssel, um den Zugriff auf einen KMS-Schlüssel anhand der Aliassen, die dem KMS-Schlüssel zugeordnet sind, zu steuern. Verwenden Sie dazu die Bedingungsschlüssel kms:RequestAlias und kms:ResourceAliases. Diese Funktion ist Teil der AWS KMS-Unterstützung für attributbasierte Zugriffssteuerung (ABAC).

Der kms:RequestAlias-Bedingungsschlüssel erlaubt oder verweigert den Zugriff auf einen KMS-Schlüssel basierend auf dem Alias in einer Anforderung. Der kms:ResourceAliases-Bedingungsschlüssel erlaubt oder verweigert den Zugriff auf einen KMS-Schlüssel basierend auf dem Alias, der mit dem KMS-Schlüssel verknüpft ist.

Diese Funktionen erlauben es Ihnen nicht, einen KMS-Schlüssel mithilfe eines Aliasses im resource-Element einer Richtlinienanweisung zu identifizieren. Wenn ein Alias der Wert einesresource-Element ist, gilt die Richtlinie für die Alias-Ressource und nicht für einen KMS-Schlüssel, der mit ihr verknüpft sein könnte.

Anmerkung

Es kann bis zu fünf Minuten dauern, bis Tag- und Alias-Änderungen Auswirkungen auf die KMS-Schlüsselautorisierung haben. Letzte Änderungen sind möglicherweise in API-Operationen sichtbar, bevor sie sich auf die Autorisierung auswirken.

Beachten Sie Folgendes, wenn Sie Aliasse verwenden, um den Zugriff auf KMS-Schlüssel zu steuern:

  • Verwenden Sie Aliasse, um beim Zugriff die bewährte Methode der geringsten Berechtigung zu befolgen. Geben Sie IAM-Prinzipalen nur die Berechtigungen, die sie für die KMS-Schlüssel benötigen, die sie verwenden oder verwalten müssen. Verwenden Sie beispielsweise Aliase, um die KMS-Schlüssel zu identifizieren, die für ein Projekt verwendet werden. Geben Sie dann dem Projektteam die Berechtigung, nur KMS-Schlüssel mit den Projekt-Aliassen zu verwenden.

  • Seien Sie vorsichtig, wenn Sie Prinzipalen die kms:CreateAlias-, kms:UpdateAlias- oder kms:DeleteAlias-Berechtigung erteilen, mit denen sie Aliasse hinzufügen, bearbeiten und löschen können. Wenn Sie Aliasse verwenden, um den Zugriff auf KMS-Schlüssel zu steuern, kann das Ändern eines Aliasses Prinzipalen die Berechtigung zur Verwendung von KMS-Schlüsseln erteilen, die andernfalls nicht über die Berechtigung verfügen. Es kann auch den Zugriff auf KMS-Schlüssel verweigern, die andere Prinzipale für ihre Aufträge benötigen.

  • Überprüfen Sie die Prinzipale in Ihrem AWS-Konto, die derzeit über die Berechtigung verfügen, Aliasse zu verwalten und passen Sie ggf. die Berechtigungen an. Schlüsseladministratoren, die nicht über die Berechtigung zum Ändern von Schlüsselrichtlinien oder zum Erstellen von Erteilungen verfügen, können den Zugriff auf KMS-Schlüssel steuern, wenn sie über die Berechtigung zum Verwalten von Aliassen verfügen.

    Zum Beispiel enthält die Standard-Schlüsselrichtlinie für Schlüsseladministratoren der Konsole die kms:CreateAlias- kms:DeleteAlias- und kms:UpdateAlias-Berechtigung. IAM-Richtlinien geben möglicherweise dem Alias Berechtigungen für alle KMS-Schlüssel in Ihrem AWS-Konto. Die von AWSKeyManagementServicePowerUser verwaltete Richtlinie erlaubt es beispielsweise Prinzipalen, Aliase für alle KMS-Schlüssel zu erstellen, zu löschen und aufzulisten, sie jedoch nicht zu aktualisieren.

  • Bevor Sie eine Richtlinie festlegen, die von einem Alias abhängt, überprüfen Sie die Aliasse auf den KMS-Schlüsseln in Ihrem AWS-Konto. Stellen Sie sicher, dass Ihre Richtlinie nur für die Aliase gilt, die Sie einschließen möchten. Verwenden Sie CloudTrail Protokolle und CloudWatch Alarme, um Sie auf Aliasänderungen aufmerksam zu machen, die sich auf den Zugriff auf Ihre KMS-Schlüssel auswirken könnten. Außerdem enthält die ListAliases Antwort das Erstellungsdatum und das Datum der letzten Aktualisierung für jeden Alias.

  • Die Alias-Richtlinienbedingungen verwenden Musterabgleich; sie sind nicht an eine bestimmte Instance eines Aliasses gebunden. Eine Richtlinie, die Alias-basierte Bedingungsschlüssel verwendet, wirkt sich auf alle neuen und vorhandenen Aliasse aus, die dem Muster entsprechen. Wenn Sie einen Alias löschen und neu erstellen, der einer Richtlinienbedingung entspricht, gilt die Bedingung für den neuen Alias, genau wie für den alten Alias.

Der kms:RequestAlias-Bedingungsschlüssel basiert auf dem Alias, der explizit in einer Operations-Anforderung angegeben ist. Der kms:ResourceAliases-Bedingungsschlüssel hängt von den Aliassen ab, die einem KMS-Schlüssel zugeordnet sind, auch wenn sie nicht in der Anforderung angezeigt werden.

kms:RequestAlias

Erlauben oder verweigern Sie den Zugriff auf einen KMS-Schlüssel basierend auf dem Alias, der den KMS-Schlüssel in einer Anforderung identifiziert. Sie können den Bedingungsschlüssel kms:RequestAlias in einer Schlüsselrichtlinie oder IAM-Richtlinie verwenden. Sie gilt für Operationen, die einen Alias verwenden, um einen KMS-Schlüssel in einer Anforderung zu identifizieren, nämlich kryptografische Operationen , DescribeKeyund GetPublicKey. Sie ist nicht für Alias-Operationen wie CreateAlias oder gültigDeleteAlias.

Geben Sie im Bedingungsschlüssel einen Aliasnamen oder ein Aliasnamen-Muster an. Sie können keinen Alias-ARN angeben.

Die folgende Schlüsselrichtlinienanweisung erlaubt es beispielsweise Prinzipalen, die angegebenen Operationen auf dem KMS-Schlüssel zu verwenden. Die Berechtigung ist nur wirksam, wenn die Anforderung einen Alias verwendet, der alpha enthält, um den KMS-Schlüssel zu identifizieren.

{ "Sid": "Key policy using a request alias condition", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/alpha-developer" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:RequestAlias": "alias/*alpha*" } } }

Die folgende Beispielanforderung von einem autorisierten Prinzipal würde die Bedingung erfüllen. Eine Anforderung, die eine Schlüssel-ID, einen Schüssel-ARN oder einen anderen Alias verwendet, würde die Bedingung nicht erfüllen, selbst wenn diese Werte denselben KMS-Schlüssel identifizieren.

$ aws kms describe-key --key-id "arn:aws:kms:us-west-2:111122223333:alias/project-alpha"

kms:ResourceAliases

Erlauben oder verweigern Sie den Zugriff auf einen KMS-Schlüssel anhand der Aliasse, die dem KMS-Schlüssel zugeordnet sind, selbst wenn der Alias nicht in einer Anforderung verwendet wird. Mit dem kms:ResourceAliases-Bedingungsschlüssel können Sie einen Alias oder ein Aliasmuster angeben, z. B. alias/test*, sodass Sie ihn in einer IAM-Richtlinie verwenden können, um den Zugriff auf mehrere KMS-Schlüssel in derselben Region zu steuern. Er ist für jede AWS KMS-Operation gültig, die einen KMS-Schlüssel verwendet.

Mit der folgenden IAM-Richtlinie können die Prinzipale beispielsweise die automatische Schlüsseldrehung auf den KMS-Schlüsseln in zwei AWS-Konten verwalten. Die Berechtigung gilt jedoch nur für KMS-Schlüssel, die Aliassen zugeordnet sind, die mit restricted beginnen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:EnableKeyRotation", "kms:DisableKeyRotation", "kms:GetKeyRotationStatus" ], "Resource": [ "arn:aws:kms:*:111122223333:key/*", "arn:aws:kms:*:444455556666:key/*" ], "Condition": { "ForAnyValue:StringLike": { "kms:ResourceAliases": "alias/restricted*" } } } ] }

Die kms:ResourceAliases-Bedingung ist eine Bedingung der Ressource, nicht die Anforderung. Daher kann eine Anforderung, die den Alias nicht angibt, weiterhin die Bedingung erfüllen.

Die folgende Beispielanforderung, die einen übereinstimmenden Alias angibt, erfüllt die Bedingung.

$ aws kms enable-key-rotation --key-id "alias/restricted-project"

Die folgende Beispielanforderung erfüllt jedoch auch die Bedingung, vorausgesetzt, dass der angegebene KMS-Schlüssel über einen Alias verfügt, der mit restricted beginnt, auch wenn dieser Alias nicht in der Anforderung verwendet wird.

$ aws kms enable-key-rotation --key-id "1234abcd-12ab-34cd-56ef-1234567890ab"