Dieser Vorgang ist im gegebenen Kontext nicht zulässig

Sie können in den Schlüsselrichtlinien und AWS Identity and Access Management-Richtlinien (IAM-Richtlinien) die Bedingungen angeben, die den Zugriff auf AWS KMS-Ressourcen steuern. Die Richtlinienanweisung ist nur wirksam, wenn diese Bedingungen erfüllt sind. Beispielsweise kann festgelegt werden, dass eine Richtlinienanweisung erst ab einem bestimmten Datum gilt. Sie können auch festlegen, dass eine Richtlinienanweisung den Zugriff nur steuert, wenn in einer API-Anforderung ein bestimmter Wert vorhanden ist.

Verwenden Sie Bedingungsschlüssel im

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
7-Element einer Richtlinienanweisung mit IAM-Bedingungs-Operatoren, um Bedingungen festzulegen. Dieselben Bedingungsschlüssel gelten in der Regel auch für AWS, einige sind jedoch auf AWS KMS beschränkt.

Bedingungsschlüsselwerte müssen die Zeichen- und Kodierungsregeln für AWS KMS-Schlüsselrichtlinien und IAM-Richtlinien befolgen. Weitere Informationen zu wichtigen Dokumentenregeln für Schlüsselrichtlinien finden Sie unter Schlüsselrichtlinienformat. Weitere Informationen zu Regeln für IAM-Richtliniendokumente finden Sie unter Anforderungen für den IAM-Namen im IAM-Benutzerhandbuch.

AWS Globale Bedingungsschlüssel

AWS definiert globale Bedingungsschlüssel, eine Reihe von Richtlinien-Bedingungsschlüsseln für alle AWS-Services, die IAM zur Zugriffskontrolle verwenden. AWS KMS unterstützt alle globalen Bedingungsschlüssel. Sie können sie in AWS KMS-Schlüsselrichtlinien und IAM-Richtlinien verwenden.

Sie können beispielsweise den globalen Bedingungsschlüssel aws:PrincipalArn verwenden, um den Zugriff auf einen AWS KMS key (KMS-Schlüssel) nur dann zu gewähren, wenn der Prinzipal in der Anforderung durch den Amazon-Ressourcennamen (ARN) im Bedingungsschlüsselwert dargestellt wird. Zur Unterstützung von attributbasierter Zugriffskontrolle (ABAC) in AWS KMS können Sie den globalen Bedingungsschlüssel aws:ResourceTag/tag-key in einer IAM-Richtlinie verwenden, um den Zugriff auf KMS-Schlüssel mit einem bestimmten Tag zu erlauben.

Um zu verhindern, dass ein AWS-Service als verwirrter Stellvertreter in einer Richtlinie verwendet wird, in der der Prinzipal ein AWS-Serviceprinzipal ist, können Sie die globalen Bedingungsschlüssel aws:SourceArn oder aws:SourceAccount verwenden. Details hierzu finden Sie unter Verwenden der Bedingungsschlüssel aws:SourceArn oder aws:SourceAccount.

Informationen zu globalen AWS-Bedingungsschlüsseln, einschließlich der Arten von Anforderungen, in denen sie verfügbar sind, finden Sie unter Globale AWS-Bedingungskontextschlüssel im IAM-Benutzerhandbuch. Beispiele für die Verwendung globaler Bedingungsschlüssel in IAM-Richtlinien finden Sie unter Steuern des Zugriffs auf Anforderungen und Steuern von Tag-Schlüsseln im IAM-Benutzerhandbuch.

Die folgenden Themen bieten spezielle Anleitungen für die Verwendung von Bedingungsschlüsseln basierend auf IP-Adressen und VPC-Endpunkten.

Verwenden der IP-Adressbedingung in Richtlinien mit AWS KMS-Berechtigungen

Sie können AWS KMS zum Schutz Ihrer Daten in einem integrierten AWS-Service verwenden. Bei Angabe der Bedingungsoperatoren für IP-Adressen oder des

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
8-Bedingungsschlüssels in derselben Richtlinienanweisung, die den Zugriff auf AWS KMS zulässt oder verweigert, ist jedoch Vorsicht geboten. Die Richtlinie in AWS: Verweigert den Zugriff auf AWS anhand der Quell-IP beschränkt beispielsweise AWS-Aktionen auf Anforderungen von dem angegebenen IP-Bereich.

Betrachten Sie folgendes Szenario:

  1. Sie fügen einem IAM-Benutzer eine Richtlinie ähnlich derjenigen an, die unter AWS: Verweigert den Zugriff auf AWS anhand der Quell-IP dargestellt wird. Sie legen als Wert für den

    {
      "Sid": "AllowOnlySymmetricAlgorithm",
      "Effect": "Deny",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
      "Condition": {
        "StringNotEquals": {
          "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
        }
      }
    }
    8-Bedingungsschlüssel den IP-Adressbereich für das Unternehmen des Benutzers fest. Diesem IAM-Benutzer wurden andere Richtlinien angefügt, die es ihm erlauben, Amazon EBS, Amazon EC2 und AWS KMS zu verwenden.

  2. Der Benutzer versucht, ein verschlüsseltes EBS-Volumen an eine EC2-Instanz anzufügen. Diese Aktion schlägt aufgrund eines Autorisierungsfehlers fehl, obwohl der Benutzer zur Verwendung aller relevanten Services berechtigt ist.

Schritt 2 schlägt fehl, da die Anforderung an AWS KMS, den verschlüsselten Datenschlüssel des Datenträgers zu entschlüsseln, von einer IP-Adresse stammt, die der Amazon-EC2-Infrastruktur zugeordnet ist. Dieser Schritt wird nur erfolgreich durchgeführt, wenn die Anforderung von der IP-Adresse des ursprünglichen Benutzers stammt. Da die Richtlinie in Schritt 1 explizit alle Anforderungen von anderen als den angegebenen IP-Adressen ablehnt, wird die Berechtigung für Amazon EC2 zum Entschlüsseln des verschlüsselten Datenschlüssels des EBS-Datenträgers abgelehnt.

Weiterhin ist der Bedingungsschlüssel

"kms:EncryptionContext:context-key": "context-value"
0 nicht wirksam, wenn die Anforderung von einem Amazon-VPC-Endpunkt kommt. Um Anforderungen an einen VPC-Endpunkt, einschließlich eines AWS KMS-VPC-Endpunkts zu beschränken, verwenden Sie die
"kms:EncryptionContext:context-key": "context-value"
1- oder
"kms:EncryptionContext:context-key": "context-value"
2-Bedingungsschlüssel. Weitere Informationen finden Sie unter VPC-Endpunkte – Steuern der Nutzung von Endpunkten im Amazon VPC-Benutzerhandbuch.

Verwenden von VPC-Endpunkt-Bedingungen in Richtlinien mit AWS KMS-Berechtigungen

AWS KMS unterstützt jetzt Amazon-Virtual-Private-Cloud-Endpunkte (Amazon VPC), die von AWS-PrivateLink bereitgestellt werden. Sie können die folgenden globalen Bedingungsschlüssel in Schlüsselrichtlinien und IAM-Richtlinien zur Steuerung des Zugriffs auf AWS KMS-Ressourcen verwenden, wenn die Anforderung von einer VPC stammt oder einen VPC-Endpunkt verwendet. Details hierzu finden Sie unter Verwenden eines VPC-Endpunkts in einer Richtlinienanweisung.

  • "kms:EncryptionContext:context-key": "context-value"
    3 beschränkt den Zugriff auf Anforderungen von der angegebenen VPC.

  • "kms:EncryptionContext:context-key": "context-value"
    4 beschränkt den Zugriff auf Anforderungen vom angegebenen VPC-Endpunkt.

Wenn Sie diese Bedingungsschlüssel verwenden, um den Zugriff auf KMS-Schlüssel zu kontrollieren, verweigern Sie möglicherweise versehentlich den Zugriff auf AWS-Services, die AWS KMS in Ihrem Auftrag verwendet.

Seien Sie sorgsam darum bemüht, eine Situation wie das IP-Adressen-Bedingungsschlüssel Beispiel zu vermeiden. Wenn Sie die Anforderungen für einen KMS-Schlüssel an eine VPC oder einen VPC-Endpunkt beschränken, schlagen Aufrufe an AWS KMS von einem integrierten Service wie z. B. Simple Storage Service (Amazon S3) oder Amazon EBS möglicherweise fehl. Dies kann auch dann vorkommen, wenn die Quell-Anforderung letztendlich von der VPC oder dem VPC-Endpunkt stammt.

AWS KMS-Bedingungsschlüssel

AWS KMS bietet einen Satz von Bedingungsschlüsseln, die Sie in Schlüsselrichtlinien und IAM-Richtlinien verwenden können. Diese Bedingungsschlüssel gelten nur für AWS KMS. Sie können beispielsweise den Bedingungsschlüssel

"kms:EncryptionContext:context-key": "context-value"
5 verwenden, damit ein bestimmter Verschlüsselungskontext bei der Steuerung des Zugriffs auf einen KMS-Schlüssel zur symmetrischen Verschlüsselung erforderlich ist.

Bedingungen für die Anforderung einer API-Produktion

Viele der AWS KMS-Bedingungsschlüssel steuern den Zugriff auf einen KMS-Schlüssel anhand dem Wert eines Parameters in der Anforderung für eine AWS KMS-Produktion. Beispielsweise können Sie den Bedingungsschlüssel kms:KeySpec in einer IAM-Richtlinie verwenden, um die Verwendung der CreateKey-Produktion nur zu erlauben, wenn der Wert des

"kms:EncryptionContext:context-key": "context-value"
6-Parameters in der
"kms:EncryptionContext:context-key": "context-value"
7-Anforderung
"kms:EncryptionContext:context-key": "context-value"
8 lautet.

Dieser Bedingungstyp funktioniert sogar dann, wenn der Parameter nicht in der Anforderung angezeigt wird, z. B. wenn Sie den Standardwert des Parameters verwenden. Beispielsweise können Sie mit dem Bedingungsschlüssel kms:KeySpec Benutzern die Verwendung der

"kms:EncryptionContext:context-key": "context-value"
7-Produktion nur dann erlauben, wenn der Wert des
"kms:EncryptionContext:context-key": "context-value"
6-Parameters
"kms:EncryptionContext:AppName": "ExampleApp"
1 lautet, was dem Standardwert entspricht. Diese Bedingung gewährt Anforderungen mit dem Parameter
"kms:EncryptionContext:context-key": "context-value"
6 und dem Wert
"kms:EncryptionContext:AppName": "ExampleApp"
1 sowie Anforderungen ohne den Parameter
"kms:EncryptionContext:context-key": "context-value"
6.

Bedingungen für KMS-Schlüssel, die in API-Operationen verwendet werden

Einige AWS KMS-Bedingungsschlüssel steuern den Zugriff auf Operationen anhand einer Eigenschaft des KMS-Schlüssels, die in der Produktion verwendet wird. Beispielsweise können Sie mit der Bedingung kms:KeyOrigin Prinzipalen den Aufruf von GenerateDataKey für einen KMS-Schlüssel nur erlauben, wenn der

"kms:EncryptionContext:AppName": "ExampleApp"
5 des KMS-Schlüssel
"kms:EncryptionContext:AppName": "ExampleApp"
6 lautet. Um herauszufinden, ob ein Bedingungsschlüssel auf diese Weise verwendet werden kann, lesen Sie die Beschreibung des Bedingungsschlüssels.

Bei der Produktion muss es sich um eine KMS-Schlüsselressourcen-Produktion handeln, das heißt, eine Produktion, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle Actions and Resources (Aktionen und Ressourcen) Sie nach dem Wert von

"kms:EncryptionContext:AppName": "ExampleApp"
7 in der
"kms:EncryptionContext:AppName": "ExampleApp"
8-Spalte für die Produktion. Wenn Sie diesen Typ von Bedingungsschlüssel bei einer Produktion verwenden, die für eine bestimmte KMS-Schlüssel-Ressource nicht autorisiert ist, wie ListKeys, ist die Berechtigung nicht wirksam, da die Bedingung nie erfüllt werden kann. Es ist keine KMS-Schlüssel-Ressource an der Autorisierung der Produktion
"kms:EncryptionContext:AppName": "ExampleApp"
9 beteiligt und keine
"kms:EncryptionContext:context-key": "context-value"
6-Eigenschaft.

In den folgenden Themen werden alle AWS KMS-Bedingungsschlüssel beschrieben. Zudem erhalten Sie Beispiel-Richtlinienanweisungen, um die Syntax der Richtlinie aufzuzeigen.

Verwenden von Satz-Operatoren mit Bedingungsschlüssel

Wenn eine Richtlinienbedingung zwei Werte vergleicht, z. B. den Satz von Tags in einer Anforderung und den Satz von Tags in einer Richtlinie, müssen Sie AWS sagen, wie die Sätze verglichen werden sollen. IAM definiert für diesen Zweck zwei Satz-Operatoren,

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1 und
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2. Verwenden Sie Satz-Operatoren nur mit mehrwertigen Bedingungsschlüssel, die diese erfordern. Verwenden Sie keine Satz-Operatoren mit einzelwertigen Bedingungsschlüssel. Testen Sie Ihre Richtlinienanweisungen immer gründlich, bevor Sie sie in einer Operationsumgebung verwenden.

Bedingungsschlüssel sind einzelwertig oder mehrwertig. Um zu bestimmen, ob ein AWS KMS-Bedingungsschlüssel einzelwertig oder mehrwertig ist, sehen Sie in der Werttyp-Spalte in der Beschreibung des Bedingungsschlüssels.

  • Einzelwertige Bedingungsschlüssel haben höchstens einen Wert im Autorisierungskontext (die Anforderung oder Ressource). Zum Beispiel, weil jeder API-Aufruf von nur einem AWS-Konto ausgehen kann, ist kms:CallerAccount ein einzelwertiger Bedingungsschlüssel. Verwenden Sie keinen Satz-Operator mit einem einzelwertigen Bedingungsschlüssel.

  • Mehrwertige Bedingungsschlüssel haben mehrfache Wert im Autorisierungskontext (die Anforderung oder Ressource). Da z. B. jeder KMS-Schlüssel mehrere Aliase haben kann, kann kms:ResourceAlias über mehrere Werte verfügen. Mehrwertige Bedingungsschlüssel erfordern einen Satz-Operator.

Beachten Sie, dass der Unterschied zwischen einzelwertigen und mehrwertigen Bedingungsschlüsseln von der Anzahl der Werte im Autorisierungskontext abhängt, nicht von der Anzahl der Werte in der Richtlinienbedingung.

Wenn Sie einen Satz-Operator mit einem einzelwertigen Bedingungsschlüssel verwenden, können Sie eine Richtlinienanweisung erstellen, die übermäßig permissiv (oder zu restriktiv) ist. Verwenden Sie Satz-Operatoren nur mit mehrwertigen Bedingungsschlüssel, die diese erfordern.

Wenn Sie eine Richtlinie erstellen oder aktualisieren, die einen

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator mit dem kms:EncryptionContext:-Kontextschlüssel oder den
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
4-Bedingungsschlüsseln enthält, gibt AWS KMS die folgende Fehlermeldung zurück:

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
5

Ausführliche Informationen zu den

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1- und
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operatoren finden Sie unter Verwenden mehrerer Schlüssel und Werte im IAM-Benutzerhandbuch. Informationen zum Risiko der Verwendung des
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operators mit einer einzelwertigen Bedingung finden Sie unter Sicherheitswarnung – ForAllValues mit einzelwertigem Schlüssel im IAM-Benutzerhandbuch.

kms:BypassPolicyLockoutSafetyCheck

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
9

Boolesch

Einzelwertig

"kms:EncryptionContext:context-key": "context-value"
7

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
1

Nur IAM-Richtlinien

Schlüsselrichtlinien und IAM-Richtlinien

Der

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
9 Bedingungsschlüssel steuert den Zugriff auf die Operationen CreateKey und PutKeyPolicy basierend auf dem Wert des
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
3-Parameters in der Anforderung.

Die folgende Beispiel-IAM-Richtlinienanweisung verhindert, dass Benutzer die Richtliniensperre-Sicherheitsprüfung umgehen, indem Sie die Berechtigung zum Erstellen von KMS-Schlüssel ablehnen, wenn der Wert des Parameters

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
3 in der
"kms:EncryptionContext:context-key": "context-value"
7-Anforderung
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
6 lautet.

{
  "Effect": "Allow",
  "Action": [
    "kms:CreateKey",
    "kms:PutKeyPolicy"
  ],
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}

Außerdem können Sie den

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
9-Bedingungsschlüssel in einer IAM- oder Schlüsselrichtlinie verwenden, um den Zugriff auf die
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
1-Produktion zu steuern. Die folgende Beispiel-Richtlinienanweisung einer Schlüsselrichtlinie verhindert, dass Benutzer beim Ändern der Richtlinie eines KMS-Schlüssel die Richtliniensperre-Sicherheitsprüfung umgehen.

Statt eine explizite

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
9-Bedingung zu verwenden, nutzt diese Richtlinienanweisung
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
00 mit dem Null-bedingten Operator, um den Zugriff nur zu erlauben, wenn die Anforderung keinen
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
3-Parameter enthält. Wenn der Parameter nicht verwendet wird, lautet der Standardwert
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
02. Diese etwas schwächere Richtlinienanweisung kann überschrieben werden, wenn ein Bypass erforderlich ist. Dies ist allerdings selten der Fall.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}

Informationen finden Sie auch unter:

kms:CallerAccount

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
03

String

Einzelwertig

KMS-Schlüsselressourcen-Operationen

Benutzerdefinierter-Schlüsselspeicher-Operationen

Schlüsselrichtlinien und IAM-Richtlinien

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf alle Identitäten (IAM-Benutzer und -Rollen) in einem AWS-Konto zu gestatten oder verweigern. In Schlüsselrichtlinien verwenden Sie das Element

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
04, um die Identitäten festzulegen, für die die Richtlinieanweisung gilt. Die Syntax für das
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
04-Element bietet keine Möglichkeit, alle Identitäten in einem AWS-Konto festzulegen. Sie können diesen Effekt aber erzielen, indem Sie diesen Bedingungsschlüssel mit einem
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
04-Element kombinieren, das alle AWS-Identitäten festlegt.

Sie können es zum Steuern des Zugriffs auf jede KMS-Schlüsselressourcen-Produktion verwenden, das heißt, jede AWS KMS-Produktion, die einen bestimmten KMS-Schlüssel verwendet. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle Actions and Resources (Aktionen und Ressourcen) Sie nach dem Wert von

"kms:EncryptionContext:AppName": "ExampleApp"
7 in der
"kms:EncryptionContext:AppName": "ExampleApp"
8-Spalte für die Operation. Er ist auch gültig für Operationen, die benutzerdefinierte Schlüsselspeicher verwalten.

Die folgende Schlüsselrichtlinienanweisung veranschaulicht beispielsweise die Verwendung des Bedingungsschlüssels

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
03. Diese Richtlinienanweisung ist die Schlüsselrichtlinie für den Von AWS verwalteter Schlüssel für Amazon EBS. Sie kombiniert ein
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
04-Element, das alle AWS-Identitäten mit dem Bedingungsschlüssel
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
03 festlegt, um allen Identitäten im AWS-Konto 111122223333 effektiv den Zugriff zu erlauben. Sie enthält einen zusätzlichen AWS KMS-Bedingungsschlüssel (
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12), um die Berechtigungen weiter einzuschränken, indem nur Anforderungen über Amazon EBS zugelassen werden. Weitere Informationen finden Sie unter kms:ViaService.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}

kms:CustomerMasterKeySpec (veraltet)

Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
13 ist veraltet. Verwenden Sie stattdessen den Bedingungsschlüssel kms:KeySpec.

Die Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
13 und
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
15 funktionieren auf die gleiche Weise. Nur die Namen unterscheiden sich. Wir empfehlen Ihnen,
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
15 zu verwenden. Um jedoch Breaking Changes zu vermeiden, unterstützt AWS KMS beide Bedingungsschlüssel.

kms:CustomerMasterKeyUsage (veraltet)

Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
17 ist veraltet. Verwenden Sie stattdessen den Bedingungsschlüssel kms:keyUsage.

Die Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
17 und
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
19 funktionieren auf die gleiche Weise. Nur die Namen unterscheiden sich. Wir empfehlen Ihnen,
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
19 zu verwenden. Um jedoch Breaking Changes zu vermeiden, unterstützt AWS KMS beide Bedingungsschlüssel.

kms:DataKeyPairSpec

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
21

String

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
22

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
23

Schlüsselrichtlinien und IAM-Richtlinien

Mit diesem Bedingungsschlüssel können Sie den Zugriff auf die Operationen GenerateDataKeyPair und GenerateDataKeyPairWithoutPlaintext basierend auf dem Wert des

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
24-Parameters in der Anforderung steuern. Beispielsweise können Sie einem Benutzer erlauben, nur bestimmte Typen von Datenschlüsselpaaren zu generieren.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
21, um es einem Benutzer zu erlauben, mit dem KMS-Schlüssel nur RSA-Datenschlüsselpaare zu generieren.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}

Informationen finden Sie auch unter:

kms:EncryptionAlgorithm

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
26

String

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
27

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
28

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
29

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
22

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
23

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
32

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
33

Schlüsselrichtlinien und IAM-Richtlinien

Mit dem Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
26 können Sie den Zugriff auf kryptografische Operationen basierend auf dem in der Produktion verwendeten Verschlüsselungsalgorithmus kontrollieren. Für die Operationen Encrypt, Decrypt und ReEncrypt steuert er den Zugriff anhand des Werts des Parameters EncryptionAlgorithm in der Anforderung. Für Operationen, die Datenschlüssel und Datenschlüsselpaare generieren, steuert er den Zugriff basierend auf dem Verschlüsselungsalgorithmus, der zum Verschlüsseln des Datenschlüssels verwendet wird.

Dieser Bedingungsschlüssel hat keine Auswirkungen auf Operationen, die außerhalb von AWS KMS ausgeführt werden, z. B. die Verschlüsselung mit dem öffentlichen Schlüssel in einem asymmetrischen KMS-Schlüsselpaar außerhalb von AWS KMS.

EncryptionAlgorithm-Parameter in einer Anforderung

Damit Benutzer nur einen bestimmten Verschlüsselungsalgorithmus mit einem KMS-Schlüssel verwenden können, verwenden Sie eine Richtlinienanweisung mit dem Effekt

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
9 und dem Bedingungsoperator
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
36. Die folgende Schlüsselrichtlinienanweisung verhindert beispielsweise, dass Prinzipale, die die
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
37-Rolle annehmen können, diesen KMS-Schlüssel in den angegebenen kryptografischen Operationen verwenden, es sei denn, der Verschlüsselungsalgorithmus in der Anforderung ist
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
38 (ein asymmetrischer Verschlüsselungsalgorithmus, der mit RSA-KMS-Schlüsseln verwendet wird).

Im Gegensatz zu einer Richtlinienanweisung, die es einem Benutzer erlaubt, einen bestimmten Verschlüsselungsalgorithmus zu verwenden, hindert eine Richtlinienanweisung mit einem doppelten Negativwert wie diese andere Richtlinien und Erteilungen für diesen KMS-Schlüssel daran, dieser Rolle die Verwendung anderer Verschlüsselungsalgorithmen zu ermöglichen. Das

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
9 in dieser Schlüsselrichtlinienanweisung hat Vorrang vor allen Schlüsselrichtlinien oder IAM-Richtlinien mit
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
00-Wirkung, und es hat vor allen Erteilungen für diesen KMS-Schlüssel und seine Prinzipale Vorrang.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}

Der für die Produktion verwendete Verschlüsselungsalgorithmus

Sie können auch den

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
26-Bedingungsschlüssel verwenden, um den Zugriff auf Operationen basierend auf dem in der Produktion verwendeten Verschlüsselungsalgorithmus zu steuern, auch wenn der Algorithmus nicht in der Anforderung angegeben ist. Auf diese Weise können Sie den
"kms:EncryptionContext:AppName": "ExampleApp"
1-Algorithmus, der möglicherweise nicht in einer Anforderung angegeben wird, erfordern oder verbieten, da es sich um den Standardwert handelt.

Sie können den

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
26-Bedingungsschlüssel auch verwenden, um den Zugriff auf die Operationen zu steuern, die Datenschlüssel und Datenschlüsselpaare generieren. Diese Operationen verwenden nur KMS-Schlüssel zur symmetrischen Verschlüsselung und den
"kms:EncryptionContext:AppName": "ExampleApp"
1-Algorithmus.

Beispielsweise beschränkt diese IAM-Richtlinie ihre Prinzipale auf symmetrische Verschlüsselung. Sie verweigert den Zugriff auf jeden KMS-Schlüssel im Beispielkonto für kryptografische Operationen, es sei denn, der in der Anforderung angegebene oder in der Produktion verwendete Verschlüsselungsalgorithmus ist SYMMETRIC_DEFAULT. Wenn

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
45 enthalten ist, werden GenerateDataKey, GenerateDataKeyWithoutPlaintext, GenerateDataKeyPair und GenerateDataKeyPairWithoutPlaintext zu den Berechtigungen hinzugefügt. Die Bedingung hat keine Auswirkungen auf diese Vorgänge, da sie immer einen symmetrischen Verschlüsselungsalgorithmus verwenden.

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}

Informationen finden Sie auch unter:

kms:EncryptionContext:-Kontext-Schlüssel

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

"kms:EncryptionContext:context-key": "context-value"
5

String

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
28

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
27

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
29

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
22

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
23

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
32

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
33

Schlüsselrichtlinien und IAM-Richtlinien

Mit dem

"kms:EncryptionContext:context-key": "context-value"
5-Bedingungsschlüssel können Sie den Zugriff auf einen KMS-Schlüssel zu symmetrischen Verschlüsselung anhand des Verschlüsselungskontexts in einer Anforderung für eine kryptografische Produktion steuern. Verwenden Sie diesen Bedingungsschlüssel, um sowohl den Schlüssel als auch den Wert im Verschlüsselungskontext-Paar auszuwerten. Um nur die Verschlüsselungskontext-Schlüssel auszuwerten oder einen Verschlüsselungskontext unabhängig von Schlüsseln oder Werten zu erfordern, verwenden Sie den kms:EncryptionContextKeys-Bedingungsschlüssel.

Dieser Bedingungsschlüssel ist in Schlüsselrichtlinien-Anweisungen und IAM-Richtlinienanweisungen gültig, obwohl er nicht in der IAM-Konsole oder in der IAM-Serviceautorisierungsreferenz vorkommt.

Bedingungsschlüsselwerte müssen die Zeichenregeln für Schlüsselrichtlinien und IAM-Richtlinien einhalten. Einige Zeichen, die in einem Verschlüsselungskontext gültig sind, sind in Richtlinien nicht gültig. Sie können diesen Bedingungsschlüssel möglicherweise nicht verwenden, um alle gültigen Verschlüsselungskontextwerte auszudrücken. Weitere Informationen zu wichtigen Dokumentenregeln für Schlüsselrichtlinien finden Sie unter Schlüsselrichtlinienformat. Weitere Informationen zu Regeln für IAM-Richtliniendokumente finden Sie unter Anforderungen für den IAM-Namen im IAM-Benutzerhandbuch.

Sie können mit einem asymmetrische KMS-Schlüssel oder einem HMAC-KMS-Schlüssel keinen Verschlüsselungskontext in einer kryptografischen Produktion angeben. Asymmetrische Algorithmen und MAC-Algorithmen unterstützen keinen Verschlüsselungskontext.

Um den kms:EncryptionContext:-Kontext-Schlüssel-Bedingungsschlüssel zu verwenden, ersetzen Sie den

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
56-Platzhalter mit dem Verschlüsselungskontext-Schlüssel. Ersetzen Sie den
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
57-Platzhalter durch den Verschlüsselungskontextwert der Verschlüsselung.

"kms:EncryptionContext:context-key": "context-value"

Der folgende Bedingungsschlüssel gibt beispielsweise einen Verschlüsselungskontext an, in dem der Schlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
58 und der Wert
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
59 (
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
60) ist.

"kms:EncryptionContext:AppName": "ExampleApp"

Dies ist ein einzelwertiger Bedingungsschlüssel. Der Schlüssel im Bedingungsschlüssel gibt einen bestimmten Verschlüsselungskontext-Schlüssel an (Kontext-Schlüssel). Obwohl Sie mehrere Verschlüsselungskontext-Paare in jede API-Anforderung einschließen können, kann das Verschlüsselungskontext-Paar mit dem angegebenen Kontext-Schlüssel nur einen Wert haben. Der

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
61-Bedingungsschlüssel gilt beispielsweise nur für Verschlüsselungskontext-Paare mit einem
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
62-Schlüssel, und jedes gegebene Verschlüsselungskontext-Paar mit dem
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
62-Schlüssel kann nur einen Wert haben.

Verwenden Sie keinen Satz-Operator mit dem

"kms:EncryptionContext:context-key": "context-value"
5-Bedingungsschlüssel. Wenn Sie eine Richtlinienanweisung mit einer
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
00-Aktion, dem
"kms:EncryptionContext:context-key": "context-value"
5-Bedingungsschlüssel und dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator erstellen, erlaubt die Bedingung Anforderungen ohne Verschlüsselungskontext und Anforderungen mit Verschlüsselungskontext-Paaren, die nicht in der Richtlinienbedingung angegeben sind.

Verwenden Sie keinen

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1- oder
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator mit diesem einzelwertigen Bedingungsschlüssel. Diese Satz-Operatoren können eine Richtlinienbedingung erstellen, die keine der von Ihnen gewünschten Werte erfordert und Werte erlaubt, die Sie verbieten möchten.

Wenn Sie eine Richtlinie erstellen oder aktualisieren, die einen

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator mit dem kms:EncryptionContext:-Kontextschlüssel enthält, gibt AWS KMS die folgende Fehlermeldung zurück:

OverlyPermissiveCondition:EncryptionContext: Using the

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2 set operator with a single-valued condition key matches requests without the specified encryption context or with an unspecified encryption context. To fix, remove ForAllValues.

Um ein bestimmtes Verschlüsselungskontext-Paar zu erfordern, verwenden Sie den

"kms:EncryptionContext:context-key": "context-value"
5-Bedingungsschlüssel mit dem
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
73-Operator.

Die folgende Beispiel-Schlüsselrichtlinienanweisung erlaubt es Prinzipalen, die die Rolle übernehmen können, den KMS-Schlüssel in einer

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
29-Anforderung zu verwenden, nur dann, wenn der Verschlüsselungskontext in der Anforderung das
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
75-Paar beinhält. Andere Verschlüsselungskontext-Paare sind zulässig.

Für den Schlüsselnamen muss die Groß-/Kleinschreibung nicht berücksichtigt werden. Die Berücksichtigung der Groß-/Kleinschreibung des Wertes wird durch den Bedingungsoperator (z. B.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
73) festgelegt. Details hierzu finden Sie unter Beachtung der Groß-/Kleinschreibung bei der Verschlüsselungskontextbedingung.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}

Um ein Verschlüsselungskontext-Paar zu erfordern und alle anderen Verschlüsselungskontext-Paare zu verbieten, verwenden Sie sowohl den kms:EncryptionContext:-Kontext-Schlüssel und kms:EncryptionContextKeys in der Richtlinienanweisung. Die folgende Schlüsselrichtlinienanweisung verwendet die

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
77-Bedingung, um das
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
78-Verschlüsselungskontext-Paar in der Anforderung zu erfordern. Sie verwendet auch einen
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79-Bedingungsschlüssel mit dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator, um nur den
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
58-Verschlüsselungskontext-Schlüssel zu erlauben.

Der

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator beschränkt Verschlüsselungskontext-Schlüssel in der Anforderung an
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
58. Wenn die
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79-Bedingung mit dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator alleine in einer Richtlinienanweisung verwendet würde, würde dieser Satz-Operator Anforderungen ohne Verschlüsselungskontext erlauben. Wenn die Anforderung jedoch keinen Verschlüsselungskontext hätte, würde die
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
77-Bedingung fehlschlagen. Ausführliche Informationen zu dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator finden Sie unter Verwenden mehrerer Schlüssel und Werte im IAM-Benutzerhandbuch.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  

Sie können diesen Bedingungsschlüssel auch verwenden, um den Zugriff auf einen KMS-Schlüssel für eine bestimmte Produktion zu verweigern. Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet eine

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
9-Wirkung, um dem Prinzipal die Verwendung des KMS-Schlüssels zu verbieten, wenn der Verschlüsselungskontext in der Anforderung ein
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
89-Verschlüsselungskontext-Paar enthält. Diese Bedingung ermöglicht eine Anforderung mit anderen Verschlüsselungskontext-Paaren, einschließlich Verschlüsselungskontext-Paaren mit dem
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
90-Schlüssel und andere Werte, wie
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
91.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
0

Verwenden mehrerer Verschlüsselungskontext-Paare

Sie können mehrere Verschlüsselungskontext-Paare erfordern oder verbieten. Sie können auch eines von mehreren Verschlüsselungskontext-Paaren erfordern. Ausführliche Informationen zur Logik, die zum Interpretieren dieser Bedingungen verwendet wird, finden Sie unter Erstellen einer Bedingung mit mehreren Schlüsseln oder Werten im IAM-Benutzerhandbuch.

In früheren Versionen dieses Themas wurden Richtlinienanweisungen angezeigt, die die

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1- und
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operatoren mit dem kms:EncryptionContext:-Kontext-Schlüssel-Bedingungsschlüssel verwendeten. Verwenden eines Set-Operators mit einem einzelwertigen Bedingungsschlüssel kann zu Richtlinien führen, die Anforderungen ohne Verschlüsselungskontext und mit nicht-spezifizierten Verschlüsselungskontext-Paaren erlauben.

Eine Richtlinienbedingung mit dem

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
00-Effekt, dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator und dem
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
96-Bedingungsschlüssel, beschränkt den Verschlüsselungskontext nicht auf das Paar „Department=IT“. Sie erlaubt Anforderungen ohne Verschlüsselungskontext und Anforderungen mit nicht spezifizierten Verschlüsselungskontext-Paaren, wie
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
89.

Bitte überprüfen Sie Ihre Richtlinien und eliminieren Sie den Satz-Operator aus jeder Bedingung mit dem kms:EncryptionContext:-Kontext-Schlüssel. Versuche, eine Richtlinie mit diesem Format zu erstellen oder zu aktualisieren, schlagen mit einer

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
98-Ausnahme fehl. Um den Fehler zu beheben, löschen Sie den Satz-Operator.

Um mehrere Verschlüsselungskontext-Paare zu erfordern, listen Sie die Paare in derselben Bedingung auf. Die folgende Beispiel-Schlüsselrichtlinienanweisung erfordert zwei Verschlüsselungskontext-Paare,

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
99 und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
00. Da die Bedingungen unterschiedliche Schlüssel haben (
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
61 und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
02), werden sie implizit durch einen AND-Operator verbunden. Andere Verschlüsselungskontext-Paare sind zulässig, aber nicht erforderlich.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
1

Um ein Verschlüsselungskontext-Paar OR ein anderes Paar zu erfordern, platzieren Sie jeden Bedingungsschlüssel in einer separaten Richtlinienanweisung. Das folgende Beispiel einer Schlüsselrichtlinie erfordert

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
99- oder
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
00-Paare oder beides. Andere Verschlüsselungskontext-Paare sind zulässig, aber nicht erforderlich.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
2

Um ein Verschlüsselungs-Paar zu erfordern und alle anderen Verschlüsselungskontext-Paare zu verbieten, verwenden Sie sowohl den kms:EncryptionContext:-Kontext-Schlüssel und kms:EncryptionContextKeys in der Richtlinienanweisung. Die folgende Schlüsselrichtlinienanweisung verwendet die kms:EncryptionContext:-Kontext-Schlüssel-Bedingung, um einen Verschlüsselungskontext mit

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
99- und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
00-Paaren zu erfordern. Sie verwendet einen
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79-Bedingungsschlüssel mit dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator, um nur die
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
62- und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
10-Verschlüsselungskontext-Schlüssel zu erlauben.

Der

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator beschränkt Verschlüsselungskontext-Schlüssel in der Anforderung an
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
62 und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
10. Wenn es alleine in einer Bedingung verwendet würde, würde dieser Satz-Operator Anforderungen ohne Verschlüsselungskontext erlauben, aber in dieser Konfiguration würde der kms:EncryptionContext:-Kontext-Schlüssel in dieser Bedingung fehlschlagen.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
3

Sie können auch mehrere Verschlüsselungskontext-Paare verbieten. Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet eine

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::712816755609:user/alice"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}  
9-Wirkung, um dem Prinzipal die Verwendung des KMS-Schlüssels zu verbieten, wenn der Verschlüsselungskontext in der Anforderung ein
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
89- oder
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
16-Paar enthält.

Mehrere Werte (

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
17 und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
18) für denselben Schlüssel (
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
19) sind implizit durch ein OR verbunden. Details dazu finden Sie unter Auswertungslogik für Bedingungen mit mehreren Schlüsseln oder Werten im IAM-Benutzerhandbuch.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
4

Beachtung der Groß-/Kleinschreibung bei der Verschlüsselungskontextbedingung

Der Verschlüsselungskontext, der in einem Entschlüsselungsvorgang angegeben wird, muss exakt mit dem Verschlüsselungskontext übereinstimmen, der in dem Verschlüsselungsvorgang angegeben wird (inklusive Groß-/Kleinschreibung). Nur die Reihenfolge, in der die Paare angegeben werden, spielt keine Rolle.

In den Richtlinienbedingungen wird die Groß-/Kleinschreibung für den Bedingungsschlüssel nicht berücksichtigt. Die Berücksichtigung der Groß-/Kleinschreibung des Bedingungswertes wird durch den von Ihnen verwendeten Richtlinienbedingungsoperator (z. B.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
73 oder
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
21) festgelegt.

Daher unterscheidet der Bedingungsschlüssel, der aus dem

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
22-Präfix und dem
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
23-Ersatz besteht, nicht zwischen Groß-/Kleinschreibung. Eine Richtlinie, die diese Bedingung verwendet, berücksichtigt die Groß-/Kleinschreibung bei beiden Elemente des Bedingungsschlüssels nicht. Die Berücksichtigung der Groß-/Kleinschreibung des Wertes (d. h. der
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
24-Ersatz) wird durch den Richtlinienbedingungsoperator festgelegt.

Die folgende Richtlinie erlaubt den Vorgang, wenn der Verschlüsselungskontext einen

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
25-Schlüssel enthält – unabhängig von der Groß-/Kleinschreibung. Die
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
73-Bedingung erfordert, dass
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
59 wie ursprünglich angegeben geschrieben wird.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
5

Um einen Kontextschlüssel mit Berücksichtigung der Groß-/Kleinschreibung vorzuschreiben, verwenden Sie die Richtlinienbedingung kms:EncryptionContextKeys mit einem Operator für die Groß-/Kleinschreibung (z. B.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
73). Da der Verschlüsselungskontext-Schlüssel in dieser Richtlinienbedingung der Wert der Richtlinienbedingung ist, wird die Groß-/Kleinschreibung durch den Bedingungsoperator berücksichtigt.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
6

Um eine Auswertung des Verschlüsselungskontext-Schlüssels und des Werts unter Berücksichtigung der Groß-/Kleinschreibung zu erfordern, verwenden Sie die Richtlinienbedingungen

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79 und den kms:EncryptionContext:-Kontext-Schlüssel zusammen in derselben Richtlinie. Der Bedingungsoperator (z. B.
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
73) gilt immer für den Wert der Bedingung. Der Verschlüsselungskontext-Schlüssel (z. B.
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
58) ist der Wert der
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79-Bedingung. Der Verschlüsselungskontext-Wert (z. B.
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
59) ist der Wert der kms:EncryptionContext:-Kontext-Schlüssel-Bedingung.

In der folgenden Beispiel-Schlüsselrichtlinienanweisung wird, nachdem der

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
73-Operator die Groß-/Kleinschreibung berücksichtigt, sowohl im Schlüssel als auch im Wert des Verschlüsselungskontextes die Groß-/Kleinschreibung berücksichtigt.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
7

Verwenden von Variablen in einer Verschlüsselungskontextbedingung

Der Schlüssel und der Wert in einem Verschlüsselungskontextpaar müssen einfache Literalzeichenfolgen sein. Sie dürfen keine Ganzzahlen oder Objekte oder Typen, die nicht vollständig aufgelöst sind, sein. Wenn Sie einen anderen Typ verwenden, z. B. eine Ganzzahl oder Gleitkommazahl, interpretiert AWS KMS diesen Typ als Literalzeichenfolge.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
8

Der Wert im

"kms:EncryptionContext:context-key": "context-value"
5-Bedingungsschlüsselpaar kann jedoch eine IAM-Richtlinien-Variable sein. Diese Richtlinien-Variablen werden zur Laufzeit basierend auf Werten in der Anforderung aufgelöst. Beispielsweise wird
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
36 zum Zeitpunkt der Anforderung und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
37 zum Anzeigenamen des Aufrufers aufgelöst.

Sie können diese Richtlinien-Variablen verwenden, um eine Richtlinienanweisung mit einer Bedingung zu erstellen, die sehr spezifische Informationen in einem Verschlüsselungskontext erfordert, z. B. den Benutzernamen des Aufrufers. Da sie eine Variable enthält, können Sie dieselbe Richtlinienanweisung für alle Benutzer verwenden, die die Rolle übernehmen können. Sie müssen nicht für jeden Benutzer eine separate Richtlinienanweisung schreiben.

Angenommen, Sie möchten, dass alle Benutzer, die eine Rolle annehmen können, denselben KMS-Schlüssel verwenden, um ihre Daten zu verschlüsseln und zu entschlüsseln. Sie möchten ihnen jedoch nur erlauben, die Daten zu entschlüsseln, die sie verschlüsselt haben. Beginnen Sie damit vorzuschreiben, dass jede Anforderung an AWS KMS einen Verschlüsselungskontext enthält, in dem der Schlüssel

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
38 und der Wert der AWS-Benutzername des Aufrufers ist, z. B. der folgende.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
9

Um diese Anforderung zu erzwingen, können Sie dann eine Richtlinienanweisung wie die im folgenden Beispiel verwenden. Diese Richtlinienanweisung erteilt der

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
39-Rolle die Berechtigung zum Verschlüsseln und Entschlüsseln von Daten mit dem KMS-Schlüssel. Die Berechtigung ist jedoch nur gültig, wenn der Verschlüsselungskontext in der Anforderung ein
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
40"-Paar enthält. Um den Benutzernamen darzustellen, verwendet die Bedingung die
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
37-Richtlinien-Variable.

Wenn die Anforderung ausgewertet wird, ersetzt der Benutzername des Aufrufers die Variable in der Bedingung. So erfordert die Bedingung einen Verschlüsselungskontext von

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
42 für "bob" und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
43 für "alice".

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
0

Sie können eine IAM-Richtlinien-Variable nur im Wert des Bedingungsschlüssels

"kms:EncryptionContext:context-key": "context-value"
5 verwenden. Sie können keine Variable im Schlüssel verwenden.

Sie können auch anbieterspezifische Kontextschlüssel in Variablen verwenden. Diese Kontextschlüssel identifizieren Benutzer eindeutig, die sich über den Web-Identitätsverbund bei AWS angemeldet haben.

Wie alle Variablen können diese Variablen nur in der

"kms:EncryptionContext:context-key": "context-value"
5-Richtlinienbedingung und nicht im eigentlichen Verschlüsselungskontext verwendet werden. Und sie können nur im Wert der Bedingung verwendet werden, nicht im Schlüssel.

Die folgende Schlüsselrichtlinienanweisung ähnelt beispielsweise der vorherigen. Die Bedingung erfordert jedoch einen Verschlüsselungskontext, in dem der Schlüssel

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
46 ist und der Wert einen Benutzer eindeutig identifiziert, der in einem Amazon-Cognito-Benutzerpool angemeldet ist. Weitere Informationen zum Identifizieren von Benutzern und Rollen in Amazon Cognito finden Sie unter IAM-Rollen im Amazon-Cognito-Entwicklerhandbuch.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
1

Informationen finden Sie auch unter:

kms:EncryptionContextKeys

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79

Zeichenfolge (Liste)

Mehrwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
27

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
28

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
29

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
22

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
23

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
32

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
33

Schlüsselrichtlinien und IAM-Richtlinien

Mit dem Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79 können Sie den Zugriff auf einen KMS-Schlüssel zu symmetrischen Verschlüsselung anhand des Verschlüsselungskontexts in einer Anforderung für eine kryptografische Produktion steuern. Verwenden Sie diesen Bedingungsschlüssel, um nur den Wert in den einzelnen Verschlüsselungskontext-Paaren auszuwerten. Verwenden Sie den Bedingungsschlüssel
"kms:EncryptionContext:context-key": "context-value"
5, um sowohl den Schlüssel als auch den Wert im Verschlüsselungskontext auszuwerten.

Sie können mit einem asymmetrische KMS-Schlüssel oder einem HMAC-KMS-Schlüssel keinen Verschlüsselungskontext in einer kryptografischen Produktion angeben. Asymmetrische Algorithmen und MAC-Algorithmen unterstützen keinen Verschlüsselungskontext.

Bedingungsschlüsselwerte, einschließlich eines Verschlüsselungskontextschlüssels, müssen die Zeichen- und Kodierungsregeln für AWS KMS-Schlüsselrichtlinien einhalten. Sie können diesen Bedingungsschlüssel möglicherweise nicht verwenden, um alle gültigen Verschlüsselungskontextschlüssel auszudrücken. Weitere Informationen zu wichtigen Dokumentenregeln für Schlüsselrichtlinien finden Sie unter Schlüsselrichtlinienformat. Weitere Informationen zu Regeln für IAM-Richtliniendokumente finden Sie unter Anforderungen für den IAM-Namen im IAM-Benutzerhandbuch.

Dies ist ein mehrwertiger Bedingungsschlüssel. Sie können mehrere Verschlüsselungskontext-Paare in jeder API-Anforderung angeben.

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79 vergleicht die Verschlüsselungskontext-Schlüssel in der Anforderung mit dem Satz von Verschlüsselungskontext-Schlüsseln in der Richtlinie. Um zu bestimmen, wie diese Sätze verglichen werden, müssen Sie einen
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1 oder
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator in der Richtlinienbedingung angeben. Ausführliche Informationen zu den Satz-Operatoren finden Sie unter Verwenden mehrerer Schlüssel und Werte im IAM-Benutzerhandbuch.

  • {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:AppName": "ExampleApp"
        }
      }
    }
    1: Mindestens ein Verschlüsselungskontext-Schlüssel in der Anforderung muss mit einem Verschlüsselungskontext-Schlüssel in der Richtlinienbedingung übereinstimmen. Andere Verschlüsselungskontext-Schlüssel sind zulässig. Wenn die Anforderung keinen Verschlüsselungskontext aufweist, ist die Bedingung nicht erfüllt.

  • {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:AppName": "ExampleApp"
        }
      }
    }
    2: Mindestens ein Verschlüsselungskontext-Schlüssel in der Anforderung muss mit einem Verschlüsselungskontext-Schlüssel in der Richtlinienbedingung übereinstimmen. Dieser Satz-Operator beschränkt die Verschlüsselungskontext-Schlüssel auf diejenigen in der Richtlinienbedingung. Er erfordert keine Verschlüsselungskontext-Schlüssel, aber er verbietet nicht spezifizierte Verschlüsselungskontext-Schlüssel.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79-Bedingungsschlüssel mit dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1-Operator. Diese Richtlinienanweisung erlaubt die Verwendung eines KMS-Schlüssels für die angegebenen Operationen nur, wenn mindestens eines der Verschlüsselungskontext-Paare in der Anforderung den
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
58-Schlüssel enthält, unabhängig von dessen Wert.

Diese Schlüsselrichtlinienanweisung erlaubt beispielsweise eine

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
29-Anforderung mit zwei Verschlüsselungskontext-Paaren,
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
67 und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
00, da das erste Verschlüsselungskontext-Paar die Bedingung erfüllt. Eine Anforderung mit nur
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
00 oder ohne Verschlüsselungskontext würde fehlschlagen.

Da die Bedingungsoperation StringEquals zwischen Groß-/Kleinschreibung unterscheidet, erfordert diese Richtlinienanweisung die passende Schreibweise des Verschlüsselungskontext-Schlüssels. Sie können aber einen Bedingungsoperator verwenden, der die Groß-/Kleinschreibung des Schlüssels ignoriert – z. B.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
21.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
2

Sie können den

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79-Bedingungsschlüssel auch verwenden, um einen (beliebigen) Verschlüsselungskontext in kryptografischen Operationen, die den KMS-Schlüssel verwenden, zu erfordern.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
79 mit dem Null-bedingten Operator, um den Zugriff auf einen KMS-Schlüssel nur zu erlauben, wenn der Verschlüsselungskontext in der API-Anforderung nicht Null ist. Diese Bedingung überprüft nicht die Schlüssel oder Werte des der Verschlüsselungskontexts. Sie überprüft nur, ob der Verschlüsselungskontext vorhanden ist.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
3

Informationen finden Sie auch unter:

kms:ExpirationModel

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
73

String

Einzelwertig

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
74

Schlüsselrichtlinien und IAM-Richtlinien

Der

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
73-Bedingungsschlüssel steuert den Zugriff auf die Produktion ImportKeyMaterial basierend auf dem Wert des ExpirationModel-Parameters in der Anforderung.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
76 ist ein optionaler Parameter, der festlegt, ob das importierte Schlüsselmaterial abgelaufen ist. Gültige Werte sind
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
77 und
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
78. Der Standardwert ist
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
77.

Das Ablaufdatum und die Uhrzeit werden durch den Wert des ValidTo-Parameters bestimmt. Der

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
80-Parameter ist erforderlich, es sei denn der Wert des
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
76-Parameters lautet
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
78. Sie können den kms:ValidTo-Bedingungsschlüssel verwenden, um ein bestimmtes Ablaufdatum als Bedingung für den Zugriff zu erfordern.

Das folgende Richtlinienanweisungsbeispiel verwendet den

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
73-Bedingungsschlüssel, um einem Benutzer das Importieren von Schlüsselmaterial in einen KMS-Schlüssel nur dann zu erlauben, wenn die Anforderung den
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
76-Parameter enthält und der entsprechende Wert
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
78 lautet.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
4

Sie können auch den

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
73-Bedingungsschlüssel verwenden, um einem Benutzer das Importieren von Schlüsselmaterial nur dann zu erlauben, wenn das Schlüsselmaterial abgelaufen ist, ohne ein Ablaufdatum in der Bedingung anzugeben. Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
73-Bedingungsschlüssel mit dem Null-bedingten Operator, um einem Benutzer das Importieren von Schlüsselmaterial nur dann zu erlauben, wenn die Anforderung keinen
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
76-Parameter enthält. Der Standardwert für ExpirationModel ist
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
77.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
5

Informationen finden Sie auch unter:

kms:GrantConstraintType

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
90

String

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47

Schlüsselrichtlinien und IAM-Richtlinien

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die Produktion CreateGrant basierend auf dem Typ der Erteilungseinschränkung der Anforderung zu kontrollieren.

Wenn Sie eine Erteilung erstellen, können Sie optional eine Erteilungseinschränkung festlegen, damit die Operationen nur dann Zugriff gewähren, wenn ein bestimmter Verschlüsselungskontext vorhanden ist. Die Erteilungseinschränkung kann einem der folgenden beiden Typen vorliegen:

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
92 oder
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
93. Sie können diesen Bedingungsschlüssel verwenden, um zu überprüfen, ob die Anforderung den einen oder den anderen Typen enthält.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
90, um einem Benutzer nur dann das Erstellen von Erteilungen zu gestatten, wenn die Anforderung die Erteilungseinschränkung
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
92 enthält. Das Beispiel zeigt eine Richtlinienanweisung in einer Schlüsselrichtlinie.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
6

Informationen finden Sie auch unter:

kms:GrantIsForAWSResource

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
96

Boolesch

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
98

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
99

Schlüsselrichtlinien und IAM-Richtlinien

Erlaubt oder verweigert die Berechtigung für die Operationen CreateGrant, ListGrants oder RevokeGrant nur dann, wenn einer der mit AWS KMS integrierten AWS-Servicesdie Produktion im Namen des Benutzers aufruft. Diese Richtlinienbedingung erlaubt es dem Benutzer nicht, diese Erteilungs-Operationen direkt aufzurufen.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
96. Sie erlaubt es AWS-Services, die in AWS KMS integriert sind, z. B. Amazon EBS, auf diesem KMS-Schlüssel im Namen des angegebenen Prinzipals Erteilungen zu erstellen.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
7

Informationen finden Sie auch unter:

kms:GrantProduktions

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
01

String

Mehrwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47

Schlüsselrichtlinien und IAM-Richtlinien

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die Produktion CreateGrant anhand der Erteilungs-Operationen der Anforderung zu steuern. Sie können beispielsweise einen Benutzer berechtigen, Erteilungen zu erstellen, mit den die Berechtigung zum Verschlüsseln, aber nicht zum Entschlüsseln gewährt wird. Weitere Informationen zu Erteilungen finden Sie unter Verwenden von Erteilungen.

Dies ist ein mehrwertiger Bedingungsschlüssel.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
01 vergleicht den Satz von Erteilungs-Operationen in der
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47-Anforderung an den Satz der Erteilungs-Operationen in der Richtlinie. Um zu bestimmen, wie diese Sätze verglichen werden, müssen Sie einen
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1 oder
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator in der Richtlinienbedingung angeben. Ausführliche Informationen zu den Satz-Operatoren finden Sie unter Verwenden mehrerer Schlüssel und Werte im IAM-Benutzerhandbuch.

  • {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:AppName": "ExampleApp"
        }
      }
    }
    1: Mindestens eine Erteilungs-Operation in der Anforderung muss mit einem der Erteilungs-Operationen in der Richtlinienbedingung übereinstimmen. Andere Erteilungs-Operationen sind zulässig.

  • ForAllValues: Jede Erteilungs-Produktion in der Anforderung muss mit einer Erteilungs-Produktion in der Richtlinienbedingung übereinstimmen. Dieser Satz-Operator beschränkt die Erteilungs-Operationen auf die in der Richtlinienbedingung angegebenen Operationen. Er erfordert keine Erteilungs-Operationen, aber er verbietet nicht-spezifizierte Erteilungs-Operationen.

    ForAllValues gibt auch true zurück, wenn keine Erteilungs-Operationen in der Anforderung vorhanden sind, aber

    {
      "Effect": "Allow",
      "Action": "kms:PutKeyPolicy",
      "Resource": "*",
      "Condition": {
        "Null": {
          "kms:BypassPolicyLockoutSafetyCheck": true
        }
      }
    }
    47 erlaubt es nicht. Wenn das
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
      },
      "Action": [
        "kms:GenerateDataKeyPair",
        "kms:GenerateDataKeyPairWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:DataKeyPairSpec": "RSA*"
        }
      }
    }
    09-Symbol fehlt oder einen Nullwert hat, schlägt die
    {
      "Effect": "Allow",
      "Action": "kms:PutKeyPolicy",
      "Resource": "*",
      "Condition": {
        "Null": {
          "kms:BypassPolicyLockoutSafetyCheck": true
        }
      }
    }
    47-Anforderung fehl.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
01, um einem Benutzer nur dann das Erstellen von Erteilungen zu erlauben, wenn die Erteilungs-Operationen
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
28,
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
13 oder beides sind. Wenn die Erteilung andere Operationen umfasst, schlägt die
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47-Anforderung fehl.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
8

Wenn Sie den Satz-Operator in der Richtlinienbedingung auf

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1 ändern, würde die Richtlinienanweisung erfordern, dass mindestens eine der Erteilungs-Operationen in der Erteilung
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
28 oder
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
13 ist, aber es würde andere Erteilungs-Operationen wie
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
27 oder
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
19 erlauben.

Informationen finden Sie auch unter:

kms:GranteePrincipal

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
20

String

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47

IAM- und Schlüsselrichtlinien

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die Produktion CreateGrant basierend auf dem Wert des Parameters GranteePrincipal in der Anforderung zu steuern. Sie können beispielsweise einem Benutzer das Erstellen von Erteilungen zur Verwendung eines KMS-Schlüssels nur erlauben, wenn der erteilungsempfangende Prinzipal in der

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47-Anforderung dem in der Bedingungsanweisung angegebenen Prinzipal entspricht.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
20, um einem Benutzer nur dann das Erstellen von Erteilungen für einen KMS-Schlüssel zu erlauben, wenn der erteilungsempfangende Prinzipal in der Erteilung die
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
24 ist.

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
9

Informationen finden Sie auch unter:

kms:KeyOrigin

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
25

String

Einzelwertig

"kms:EncryptionContext:context-key": "context-value"
7

KMS-Schlüsselressourcen-Operationen

IAM-Richtlinien

Schlüsselrichtlinien und IAM-Richtlinien

Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
25 steuert den Zugriff auf Vorgänge anhand des Wertes der
"kms:EncryptionContext:AppName": "ExampleApp"
5-Eigenschaft des KMS-Schlüssels, der von der Produktion erstellt oder verwendet wird. Er funktioniert als Ressourcenbedingung oder als Anforderungsbedingung.

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die Produktion CreateKey basierend auf dem Wert des Parameters Origin in der Anforderung zu steuern. Gültige Werte für

"kms:EncryptionContext:AppName": "ExampleApp"
5 sind
"kms:EncryptionContext:AppName": "ExampleApp"
6,
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
31 und
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
32.

Beispielsweise können Sie einem Benutzer das Erstellen eines KMS-Schlüssels nur erlauben, wenn das Schlüsselmaterial AWS KMS (

"kms:EncryptionContext:AppName": "ExampleApp"
6) generiert wird, wenn das Schlüsselmaterial in einem AWS CloudHSM-Cluster generiert wird, der einem benutzerdefinierten Schlüsselspeicher zugeordnet ist (
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
31), oder wenn das Schlüsselmaterial aus einer externen Quelle importiert wird (
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
32).

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
25, um einem Benutzer nur dann das Erstellen eines KMS-Schlüssels zu gestatten, wenn AWS KMS das Schlüsselmaterial erstellt.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
0

Sie können mit dem Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
25 auch den Zugriff auf Operationen steuern, die einen KMS-Schlüssel verwenden oder verwalten, basierend auf der
"kms:EncryptionContext:AppName": "ExampleApp"
5-Eigenschaft des KMS-Schlüssels, der für die Produktion verwendet wird. Bei der Operation muss es sich um eine KMS-Schlüsselressourcen-Operation handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle Actions and Resources (Aktionen und Ressourcen) Sie nach dem Wert von
"kms:EncryptionContext:AppName": "ExampleApp"
7 in der
"kms:EncryptionContext:AppName": "ExampleApp"
8-Spalte für die Operation.

Die folgende IAM-Richtlinie erlaubt es beispielsweise Prinzipalen, die angegebenen KMS-Schlüsselressourcen-Operationen auszuführen, jedoch nur mit KMS-Schlüssel in dem Konto, die in einem benutzerdefinierten Schlüsselspeicher erstellt wurde.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
1

Informationen finden Sie auch unter:

kms:KeySpec

AWS KMS-BedingungsschlüsselBedingungstypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
15

String

"kms:EncryptionContext:context-key": "context-value"
7

KMS-Schlüsselressourcen-Operationen

IAM-Richtlinien

Schlüsselrichtlinien und IAM-Richtlinien

Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
15 steuert den Zugriff auf Operationen anhand des Wertes der
"kms:EncryptionContext:context-key": "context-value"
6-Eigenschaft des KMS-Schlüssels, der von der Produktion erstellt oder verwendet wird.

Sie können mit diesem Bedingungsschlüssel in einer IAM-Richtlinie den Zugriff auf die CreateKey-Produktion anhand des Wertes des CustomerMasterKeySpec-Parameters in einer

"kms:EncryptionContext:context-key": "context-value"
7-Anforderung zu steuern. Beispielsweise können Sie es mit dieser Bedingung Benutzern erlauben, nur KMS-Schlüssel für symmetrische Verschlüsselung oder nur HMAC-KMS-Schlüssel zu erstellen.

Die folgende Beispiel-IAM-Richtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
15, um den Prinzipalen nur dann das Erstellen eines asymmetrischen RSA-KMS-Schlüssels zu erlauben. Die Berechtigung ist nur gültig, wenn der
"kms:EncryptionContext:context-key": "context-value"
6 in der Anfrage mit
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
48 beginnt.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
2

Sie können mit dem Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
15 auch den Zugriff auf Operationen steuern, die einen KMS-Schlüssel verwenden oder verwalten, basierend auf der
"kms:EncryptionContext:context-key": "context-value"
6-Eigenschaft des KMS-Schlüssels, der für die Produktion verwendet wird. Bei der Operation muss es sich um eine KMS-Schlüsselressourcen-Operation handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle Actions and Resources (Aktionen und Ressourcen) Sie nach dem Wert von
"kms:EncryptionContext:AppName": "ExampleApp"
7 in der
"kms:EncryptionContext:AppName": "ExampleApp"
8-Spalte für die Produktion.

Die folgende IAM-Richtlinie erlaubt es beispielsweise Prinzipalen, die angegebenen KMS-Schlüsselressourcen-Operationen auszuführen, jedoch nur mit KMS-Schlüsseln zur symmetrischen Verschlüsselung im Konto.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
3

Informationen finden Sie auch unter:

kms:KeyUsage

AWS KMS-BedingungsschlüsselBedingungstypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
19

String

"kms:EncryptionContext:context-key": "context-value"
7

KMS-Schlüsselressourcen-Operationen

IAM-Richtlinien

Schlüsselrichtlinien und IAM-Richtlinien

Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
19 steuert den Zugriff auf Operationen anhand des Wertes der
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
56-Eigenchaft des KMS-Schlüssels, der von der Produktion erstellt oder verwendet wird.

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die Produktion CreateKey basierend auf dem Wert des Parameters KeyUsage in der Anforderung zu steuern. Gültige Werte für

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
56 sind
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
58,
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
59 und
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
60.

Beispielsweise können Sie es einem Benutzer erlauben, einen KMS-Schlüssel nur dann zu erstellen, wenn

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
56 auf
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
58 eingestellt ist, oder einem Benutzer die Berechtigung verweigert, wenn
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
56 auf
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
59 eingestellt ist.

Die folgende Beispiel-IAM-Richtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
19, damit ein Benutzer nur dann einen KMS-Schlüssel erstellen kann, wenn
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
56 auf
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
58 eingestellt ist.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
4

Sie können mit dem Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
19 auch den Zugriff auf Operationen steuern, die einen KMS-Schlüssel verwenden oder verwalten, basierend auf der
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
56-Eigenschaft des KMS-Schlüssels, der für die Produktion verwendet wird. Bei der Operation muss es sich um eine KMS-Schlüsselressourcen-Operation handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle Actions and Resources (Aktionen und Ressourcen) Sie nach dem Wert von
"kms:EncryptionContext:AppName": "ExampleApp"
7 in der
"kms:EncryptionContext:AppName": "ExampleApp"
8-Spalte für die Operation.

Die folgende IAM-Richtlinie erlaubt es beispielsweise Prinzipalen, die angegebenen KMS-Schlüsselressourcen-Operationen auszuführen, jedoch nur mit KMS-Schlüsseln im Konto, die für Signatur und Verifizierung verwendet werden.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
5

Informationen finden Sie auch unter:

kms:MacAlgorithm

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
72

String

Einzelwertig

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
73

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
74

Schlüsselrichtlinien und IAM-Richtlinien

Sie können mit dem Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
72 den Zugriff auf die Operationen GenerateMac und VerifyMac anhand des Werts des Parameters
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
76 in der Anforderung steuern.

Die folgende Beispiel-Schlüsselrichtlinie ermöglicht Benutzern, die zur Verwendung des HMAC-KMS-Schlüssels zum Generieren und Verifizieren von HMAC-Tags nur dann, wenn der MAC-Algorithmus in der Anforderung

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
77 oder
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
78 ist, die Rolle
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
79 annehmen können. Diese Richtlinie verwendet zwei separate Richtlinienaussagen mit jeweils einer eigenen Bedingung. Wenn Sie mehr als einen MAC-Algorithmus in einer einzigen Bedingungsanweisung angeben, erfordert die Bedingung beide Algorithmen anstelle des einen oder anderen.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
6

Informationen finden Sie auch unter:

kms:MessageType

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
80

String

Einzelwertig

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
81

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
82

Schlüsselrichtlinien und IAM-Richtlinien

Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
80 steuert den Zugriff auf die Operationen Sign und Verify basierend auf dem Wert des
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
84-Parameters in der Anforderung. Gültige Werte für
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
84 sind
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
86 und
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
87.

Die folgende Schlüsselrichtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
80, um es einem Benutzer zu erlauben, einen asymmetrischen KMS-Schlüssel zum Signieren einer Nachricht zu verwenden, jedoch keinen Nachrichten-Digest.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
7

Informationen finden Sie auch unter:

kms:MultiRegion

AWS KMS-BedingungsschlüsselBedingungstypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
89

Boolesch

"kms:EncryptionContext:context-key": "context-value"
7

KMS-Schlüsselressourcen-Operationen

Schlüsselrichtlinien und IAM-Richtlinien

Sie können diesen Bedingungsschlüssel verwenden, um Operationen entweder nur für einzelregionale Schlüssel oder nur für multiregionale Schlüssel zu erlauben. Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
89 steuert den Zugriff auf AWS KMS-Operationen auf KMS-Schlüsseln und auf die CreateKey-Produktion anhand des Wertes der
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
92-Eigenschaft des KMS-Schlüssels. Gültige Werte sind
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
93 (multiregionaler Schlüssel) oder
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
02 (einzelregionaler Schlüssel). Alle KMS-Schlüssel verfügen über eine
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
92-Eigenschaft.

Das folgende Beispiel einer IAM-Richtlinienanweisung verwendet den

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
89-Bedingungsschlüssel, um den Prinzipalen nur dann das Erstellen von einzelregionalen Schlüsseln zu gestatten.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
8

kms:MultiRegionKeyType

AWS KMS-BedingungsschlüsselBedingungstypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
97

String

"kms:EncryptionContext:context-key": "context-value"
7

KMS-Schlüsselressourcen-Operationen

Schlüsselrichtlinien und IAM-Richtlinien

Sie können diesen Bedingungsschlüssel verwenden, um Operationen entweder nur für multiregionale Primärschlüssel oder nur für multiregionale Replikatschlüssel zu erlauben. Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
97 steuert den Zugriff auf AWS KMS-Operationen auf KMS-Schlüsseln und auf die CreateKey-Produktion anhand der
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
00-Eigenschaft des KMS-Schlüssels. Die gültigen Werte sind
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
01 und
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
02. Nur multiregionale Schlüssel verfügen über eine
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
00-Eigenschaft.

In der Regel verwenden Sie den

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
97-Bedingungsschlüssel in einer IAM-Richtlinie, um den Zugriff auf mehrere KMS-Schlüssel zu kontrollieren. Da ein bestimmter multiregionaler Schlüssel jedoch zu Primär- oder Replikat wechseln kann, sollten Sie diese Bedingung in einer Schlüsselrichtlinie verwenden, um eine Produktion nur dann zu erlauben, wenn der bestimmte multiregionale Schlüssel ein Primär- oder Replikatschlüssel ist.

In diesem Beispiel verwendet die IAM-Richtlinienanweisung den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
97, um Prinzipalen das Planen und Abbrechen einer Schlüssellöschung nur für multiregionale Replikatschlüssel im angegebenen AWS-Konto zu erlauben.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
9

Um den Zugriff auf alle multiregionale Schlüssel zu erlauben oder zu verweigern, können Sie beide Werte oder einen Nullwert mit

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
97 verwenden. Allerdings wird der Bedingungsschlüssel kms:MultiRegion zu diesem Zweck empfohlen.

kms:PrimaryRegion

AWS KMS-BedingungsschlüsselBedingungstypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
07

Zeichenfolge (Liste)

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
08

Schlüsselrichtlinien und IAM-Richtlinien

Sie können diesen Bedingungsschlüssel verwenden, um die Zielregionen in eine UpdatePrimaryRegion-Produktion einzuschränken. Dies sind AWS-Regionen, die Ihre multiregionalen Primärschlüssel hosten können.

Der Bedingungsschlüssel

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
07 steuert den Zugriff auf die UpdatePrimaryRegion-Produktion anhand von dem Wert des
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
10-Parameters. Der
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
10-Parameter gibt die AWS-Region des multiregionalen Replikatschlüssels an, der zum Primärschlüssel heraufgestuft wird. Der Wert der Bedingung entspricht einem oder mehreren AWS-Region-Namen, wie
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
12 oder
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
13 oder Regionsnamenmuster, wie
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
14

Die folgende Schlüsselrichtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
07, um es Prinzipalen zu erlauben, die primäre Region eines multiregionalen Schlüssels auf eine der vier angegebenen Regionen zu aktualisieren.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
0

kms:ReEncryptOnSameKey

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
16

Boolesch

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
33

Schlüsselrichtlinien und IAM-Richtlinien

Mit diesem Bedingungsschlüssel können Sie den Zugriff auf die ReEncrypt-Produktion basierend darauf kontrollieren, ob die Anforderung den gleichen Ziel-KMS-Schlüssel angibt, der auch für die ursprüngliche Verschlüsselung verwendet wurde.

Die folgende Richtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
16, um es einem Benutzer zu erlauben, nur dann eine erneute Verschlüsselung vorzunehmen, wenn der verwendete Ziel-KMS-Schlüssel mit dem der ursprünglichen Verschlüsselung übereinstimmt.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
1

kms:RequestAlias

Sie können diesen Bedingungsschlüssel verwenden, um eine Produktion nur dann zu erlauben, wenn die Anforderung einen bestimmten Alias zum Identifizieren des KMS-Schlüssels verwendet. Der Bedingungsschlüssel

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
19 steuert den Zugriff auf einen KMS-Schlüssel, der in einer kryptografischen Produktion verwendet wird,
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
20, oder
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
21, basierend auf dem Alias, der diesen KMS-Schlüssel in der Anforderung identifiziert. (Diese Richtlinienbedingung hat keine Auswirkung auf die GenerateRandom-Produktion, da die Produktion keinen KMS-Schlüssel oder Alias verwendet.)

Diese Bedingung unterstützt attributbasierte Zugriffssteuerung (ABAC) in AWS KMS, mit dem Sie den Zugriff auf KMS-Schlüssel anhand der Tags und Aliasen eines KMS-Schlüssels steuern können. Sie können Tags und Aliase verwenden, um den Zugriff auf einen KMS-Schlüssel zu erlauben oder zu verweigern, ohne Richtlinien oder Erteilungen zu ändern. Details hierzu finden Sie unter ABAC für AWS KMS.

Um den Alias in dieser Richtlinienbedingung anzugeben, verwenden Sie einen Aliasnamen, wie

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
22, oder ein Alias-Namensmuster, wie
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
23. Sie können keinen Alias-ARN im Wert dieses Bedingungsschlüssels angeben.

Um diese Bedingung zu erfüllen, muss der Wert des

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
24-Parameters in der Anforderung ein übereinstimmender Aliasname oder Alias-ARN sein. Wenn die Anforderung einen anderen Schlüsselbezeichner verwendet, erfüllt er die Bedingung nicht, selbst wenn er denselben KMS-Schlüssel identifiziert.

Die folgende Schlüsselrichtlinienanweisung erlaubt es beispielsweise dem Prinzipal, die GenerateDataKey-Produktion auf dem KMS-Schlüssel aufzurufen. Dies ist jedoch nur zulässig, wenn der Wert des

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
24-Parameters in der Anforderung
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
26 ist oder ein Alias-ARN mit diesem Aliasnamen, z. B.
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
27.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
2

Sie können diesen Bedingungsschlüssel nicht verwenden, um den Zugriff auf Alias-Operationen zu steuern, z. B. CreateAlias oder DeleteAlias. Weitere Hinweise zum Steuern des Zugriffs auf Alias-Operationen finden Sie unter Steuern des Zugriffs auf Aliasse.

kms:ResourceAliases

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
28

Zeichenfolge (Liste)

MehrwertigKMS-Schlüsselressourcen-Operationen

Nur IAM-Richtlinien

Verwenden Sie diesen Bedingungsschlüssel, um den Zugriff auf einen KMS-Schlüssel basierend auf den Aliasen, die dem KMS-Schlüssel zugeordnet sind. Bei der Operation muss es sich um eine KMS-Schlüsselressourcen-Operation handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle Actions and Resources (Aktionen und Ressourcen) Sie nach dem Wert von

"kms:EncryptionContext:AppName": "ExampleApp"
7 in der
"kms:EncryptionContext:AppName": "ExampleApp"
8-Spalte für die Operation.

Diese Bedingung unterstützt attributbasierte Zugriffssteuerung (ABAC) in AWS KMS. Mit ABAC können Sie den Zugriff auf KMS-Schlüssel anhand der Tags steuern, die einem KMS-Schlüssel zugewiesen sind, und den Aliasen, die einem KMS-Schlüssel zugeordnet sind. Sie können Tags und Aliasse verwenden, um den Zugriff auf einen KMS-Schlüssel zu erlauben oder zu verweigern, ohne Richtlinien oder Erteilungen zu ändern. Details hierzu finden Sie unter ABAC für AWS KMS.

Ein Alias muss in einem AWS-Konto und einer Region eindeutig sein, aber diese Bedingung ermöglicht es Ihnen, den Zugriff auf mehrere KMS-Schlüssel in derselben Region zu steuern (mit dem

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
31-Vergleichsoperator) oder auf mehrere KMS-Schlüssel in verschiedenen AWS-Regionen eines jeden Kontos.

Die kms:ResourceAliases-Bedingung ist nur wirksam, wenn der KMS-Schlüssel dem Aliase-pro-KMS-Schlüssel-Kontingent entspricht. Wenn ein KMS-Schlüssel dieses Kontingent überschreitet, wird auch Prinzipalen, die berechtigt sind, den KMS-Schlüssel zu nutzen, durch die Bedingung

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
28 der Zugriff auf den KMS-Schlüssel verweigert.

Um den Alias in dieser Richtlinienbedingung anzugeben, verwenden Sie einen Aliasnamen, wie

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
22, oder ein Alias-Namensmuster, wie
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
23. Sie können keinen Alias-ARN im Wert dieses Bedingungsschlüssels angeben. Um die Bedingung zu erfüllen, muss der in der Produktion verwendete KMS-Schlüssel über den angegebenen Alias verfügen. Es spielt keine Rolle, ob oder wie der KMS-Schlüssel in der Anforderung für die Produktion identifiziert wird.

Dies ist ein mehrwertiger Bedingungsschlüssel, der den Satz von Aliasen, die einem KMS-Schlüssel zugeordnet sind, mit dem Satz von Aliasen in der Richtlinie vergleicht. Um zu bestimmen, wie diese Sätze verglichen werden, müssen Sie einen

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1 oder
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator in der Richtlinienbedingung angeben. Ausführliche Informationen zu den Satz-Operatoren finden Sie unter Verwenden mehrerer Schlüssel und Werte im IAM-Benutzerhandbuch.

  • ForAnyValue: Mindestens ein Alias, der dem KMS-Schlüssel zugeordnet ist, muss mit einem Alias in der Richtlinienbedingung übereinstimmen. Andere Aliase sind zulässig. Wenn der KMS-Schlüssel keine Aliase aufweist, ist die Bedingung nicht erfüllt.

  • ForAllValues: Jeder Alias, der dem KMS-Schlüssel zugeordnet ist, muss mit einem Alias in der Richtlinie übereinstimmen. Dieser Satz-Operator beschränkt die Aliase, die dem KMS-Schlüssel zugeordnet sind, auf diejenigen in der Richtlinienbedingung. Er erfordert keine Aliase, aber er verbietet nicht-spezifizierte Aliase.

Die folgende IAM-Richtlinienanweisung erlaubt es beispielsweise dem Prinzipal, die Produktion GenerateDataKey für einen beliebigen KMS-Schlüssel im angegebenen AWS-Konto aufzurufen, das dem

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
37-Alias zugeordnet ist. (Die Schlüsselrichtlinien der betroffenen KMS-Schlüssel müssen es auch dem Konto des Prinzipals erlauben, sie für diese Produktion zu verwenden.) Um anzuzeigen, dass die Bedingung erfüllt ist, wenn einer der vielen Aliase, die dem KMS-Schlüssel zugeordnet werden könnten,
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
26 ist, verwendet die Bedingung den
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1-Satz-Operator.

Da die

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
28-Bedingung auf der Ressource und nicht auf der Anforderung basiert, ist ein Aufruf an
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
29 für jeden KMS-Schlüssel erfolgreich, der dem
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
37-Alias zugeordnet ist, auch wenn die Anforderung eine Schlüssel-ID oder einen Schüssel-ARN verwendet, um den KMS-Schlüssel zu identifizieren.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
3

Die folgende Beispiel-IAM-Richtlinienanweisung erlaubt es dem Prinzipal, KMS-Schlüssel zu aktivieren und zu deaktivieren, aber nur, wenn alle Aliase den KMS-Schlüssel "

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
43" enthalten. Diese Richtlinienanweisung verwendet zwei Bedingungen. Die Bedingung mit dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
2-Satz-Operator erfordert, dass alle Aliase, die dem KMS-Schlüssel zugeordnet sind, "Test" enthalten. Die Bedingung mit dem
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1-Satz-Operator erfordert, dass der KMS-Schlüssel mindestens einen Alias mit "Test" enthält. Ohne die
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
1-Bedingung, hätte diese Richtlinienanweisung es dem Prinzipal erlaubt, KMS-Schlüssel zu verwenden, die keine Aliase hatten.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
4

kms:ReplicaRegion

AWS KMS-BedingungsschlüsselBedingungstypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
47

Zeichenfolge (Liste)

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
48

Schlüsselrichtlinien und IAM-Richtlinien

Sie können diesen Bedingungsschlüssel verwenden, um die AWS-Regionen einzuschränken, in denen ein Prinzipal einen multiregionalen Schlüssel replizieren kann. Der Bedingungsschlüssel

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
47 steuert den Zugriff auf die ReplicateKey-Produktion anhand von dem Wert des ReplicaRegion-Parameters in der Anforderung. Dieser Parameter gibt die AWS-Region für den neuen Replikatschlüssel an.

Der Wert der Bedingung entspricht einem oder mehreren AWS-Region-Namen, wie

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
12 oder
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
13 oder Regionsnamenmuster, wie
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
14. Eine Liste der Namen von AWS-Regionen, die AWS KMS unterstützt, finden Sie unter AWS Key Management Service-Endpunkte und -Kontingente in der Allgemeinen AWS-Referenz.

Die folgende Schlüsselrichtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
47, um Prinzipalen den Aufruf der ReplicateKey-Produktion nur dann zu erlauben, wenn der Wert des
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
54-Parameters eine der angegebenen Regionen ist.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
5

Dieser Bedingungsschlüssel steuert nur den Zugriff auf die ReplicateKey-Produktion. Um den Zugriff auf die UpdatePrimaryRegion-Produktion zu steuern, verwenden Sie den Bedingungsschlüssel kms:PrimaryRegion.

kms:RetiringPrincipal

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
55

Zeichenfolge (Liste)

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47

Schlüsselrichtlinien und IAM-Richtlinien

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die Produktion CreateGrant basierend auf dem Wert des Parameters RetiringPrincipal in der Anforderung zu steuern. Sie können beispielsweise einem Benutzer das Erstellen von Erteilungen zur Verwendung eines KMS-Schlüssels nur erlauben, wenn der

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
57 in der
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47-Anforderung dem in der Bedingungsanweisung angegebenen
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
57 entspricht.

Die folgende Beispiel-Schlüsselrichtlinienanweisung erlaubt es einem Benutzer, Erteilungen für den KMS-Schlüssel zu erstellen. Der Bedingungsschlüssel

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
55 beschränkt die Berechtigung auf
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
47-Anforderungen, wenn der ausscheidende Prinzipal in der Erteilung entweder der
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
24 oder der
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
63-Benutzer ist.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
6

Informationen finden Sie auch unter:

kms:SigningAlgorithm

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
64

String

Einzelwertig

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
81

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
82

Schlüsselrichtlinien und IAM-Richtlinien

Sie können mit dem Bedingungsschlüssel

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
64 den Zugriff auf die Operationen Sign und Verify anhand des Werts des Parameters SigningAlgorithm in der Anforderung steuern. Dieser Bedingungsschlüssel hat keine Auswirkungen auf Operationen, die außerhalb von AWS KMS ausgeführt werden, z. B. das Überprüfen von Signaturen mit dem öffentlichen Schlüssel in einem asymmetrischen KMS-Schlüsselpaar außerhalb von AWS KMS.

Die folgende Beispiel-Schlüsselrichtlinie erlaubt es Benutzern, die die

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/ExampleUser"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
79-Rolle annehmen können, den KMS-Schlüssel zum Signieren von Nachrichten nur dann zu verwenden, wenn der für die Anforderung verwendete Signaturalgorithmus ein RSASSA_PSS-Algorithmus ist, z. B
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
69.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
7

Informationen finden Sie auch unter:

kms:ValidTo

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
70

Zeitstempel

Einzelwertig

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
74

Schlüsselrichtlinien und IAM-Richtlinien

Der

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
70-Bedingungsschlüssel steuert den Zugriff auf die ImportKeyMaterial-Produktion basierend auf dem Wert des ValidTo-Parameters in der Anforderung, der bestimmt, wann das importierte Schlüsselmaterial abgelaufen ist. Der Wert wird im Unix-Zeitformatangegeben.

Standardmäßig ist der

{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
80-Parameter in einer
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
74-Anforderung erforderlich. Wenn jedoch der Wert des ExpirationModel-Parameters
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
78 lautet, ist der
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
80-Parameter ungültig. Sie können auch den kms:ExpirationModel-Bedingungsschlüssel verwenden, um den
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
76-Parameter oder einen bestimmten Parameterwert zu erfordern.

Die folgende Beispiel-Richtlinienanweisung erlaubt es einem Benutzer, Schlüsselmaterial in einen KMS-Schlüssel zu importieren. Der

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
70-Bedingungsschlüssel beschränkt die Berechtigung für
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
74-Anforderungen, bei denen der
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
80-Wert kleiner oder gleich
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
81 ist (31. Dezember 2018 23:59:59).

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
8

Informationen finden Sie auch unter:

kms:ViaService

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12

String

Einzelwertig

KMS-Schlüsselressourcen-Operationen

Schlüsselrichtlinien und IAM-Richtlinien

Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12 schränkt die Verwendung eines AWS KMS AWS KMS key (KMS-Schlüssel) auf Anforderungen von bestimmten AWS-Services ein. In jedem
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12-Bedingungsschlüssel können Sie einen oder mehrere Services angeben. Bei der Operation muss es sich um eine KMS-Schlüsselressourcen-Operation handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle Actions and Resources (Aktionen und Ressourcen) Sie nach dem Wert von
"kms:EncryptionContext:AppName": "ExampleApp"
7 in der
"kms:EncryptionContext:AppName": "ExampleApp"
8-Spalte für die Operation.

Die folgende Schlüsselrichtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12, um die Verwendung eines kundenverwalteten KMS-Schlüssels nur für die angegebenen Aktionen zu erlauben, wenn die Anforderung im Auftrag von Amazon EC2 oder Amazon RDS in der Region USA West (Oregon) im Namen von
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
88 ausgegeben wurde.

{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
9

Außerdem können Sie mit dem Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12 die Berechtigung zur Verwendung eines KMS-Schlüssels verweigern, wenn die Anforderung von bestimmten Services stammt. Die folgende Richtlinienanweisung einer Schlüsselrichtlinie verwendet beispielsweise einen
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12-Bedingungsschlüssel, um zu verhindern, dass ein kundenverwalteter KMS-Schlüssel für
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
28-Operationen verwendet wird, wenn die Anforderung im Namen von
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
88 von AWS Lambda ausgegeben wird.

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
0

Wenn Sie den Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12 verwenden, gibt der Service die Anforderung im Namen eines Prinzipals im AWS-Konto aus. Diese Prinzipale müssen über die folgenden Berechtigungen verfügen:

  • Berechtigung zur Verwendung des KMS-Schlüssels Der Prinzipal muss dem integrierten Service diese Berechtigungen erteilen, sodass der Service den kundenverwalteten Schlüssel im Auftrag des Prinzipals verwenden kann. Weitere Informationen finden Sie unter Verwendung von AWS KMS durch AWS-Service.

  • Berechtigung zur Verwendung des integrierten Service. Weitere Informationen zur Gewährung den Benutzerzugriffs auf einen AWS-Service, der mit AWS KMS integriert ist, finden Sie in der Dokumentation zum integrierten Service.

Alle Von AWS verwaltete Schlüssel verwenden einen

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12-Bedingungsschlüssel in ihrem Schlüsselrichtliniendokument. Diese Bedingung erlaubt es dem KMS-Schlüssel, nur für Anforderungen verwendet zu werden, die von dem Service stammen, der den KMS-Schlüssel erstellt hat. Um die Schlüsselrichtlinie für einen Von AWS verwalteter Schlüssel anzuzeigen, verwenden Sie die GetKeyPolicy-Produktion.

Der Bedingungsschlüssel

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12 ist in IAM- und Schlüsselrichtlinienanweisungen gültig. Die von Ihnen angegebenen Services müssen inin AWS KMS integriert seinund den Bedingungsschlüssel
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12 unterstützen.

Services, die den Bedingungsschlüssel
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12 unterstützen

Die folgende Tabelle enthält AWS-Services, die in AWS KMS integriert sind und die Verwendung des

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
12-Bedingungsschlüssels in kundenverwalteten Schlüsseln Die Services in dieser Tabelle sind möglicherweise nicht in allen Regionen verfügbar. Verwenden der
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
99-Suffix des AWS KMS-ViaService-Namens in allen AWS-Partitionen.

Möglicherweise müssen Sie horizontal oder vertikal Scrollen, um alle Daten in dieser Tabelle anzuzeigen.

Service-NameAWS KMS-ViaService-NameAWS App Runner

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
00.amazonaws.comAmazon AppFlow
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
01.amazonaws.comAmazon Application Migration Service
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
02.amazonaws.comAmazon Athena
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
03.amazonaws.comAWS Audit Manager
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
04.amazonaws.comAmazon Aurora
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
05.amazonaws.comAWS Backup
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
06.amazonaws.comAWS Backup-Gateway
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
07.amazonaws.comAWS CodeArtifact
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
08.amazonaws.comAmazon CodeGuru Reviewer
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
09.amazonaws.comAmazon Comprehend
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
10.amazonaws.comAmazon Connect
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
11.amazonaws.comAmazon Connect Customer Profiles
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
12.amazonaws.comAmazon Connect Wisdom
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
13.amazonaws.comAWS Database Migration Service (AWS DMS)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
14.amazonaws.comAWS Directory Service
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
15.amazonaws.comAmazon DynamoDB
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
16.amazonaws.comAmazon EC2 Systems Manager (SSM)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
17.amazonaws.comAmazon Elastic Block Store (Amazon EBS)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
18.amazonaws.com (Nur EBS)Amazon Elastic Container Registry (Amazon ECR)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
19.amazonaws.comAmazon Elastic File System (Amazon EFS)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
20.amazonaws.comAmazon Elastic Kubernetes Service (Amazon EKS)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
21.amazonaws.comAmazon ElastiCache

Fügen Sie beide ViaService-Namen in den Wert des Bedingungsschlüssels ein:

  • {
      "Sid": "AllowOnlySymmetricAlgorithm",
      "Effect": "Deny",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
      "Condition": {
        "StringNotEquals": {
          "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
        }
      }
    }
    22.amazonaws.com

  • {
      "Sid": "AllowOnlySymmetricAlgorithm",
      "Effect": "Deny",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
      "Condition": {
        "StringNotEquals": {
          "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
        }
      }
    }
    23.amazonaws.com

Amazon OpenSearch Service (OpenSearch Service)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
24.amazonaws.comAWS Elemental MediaTailor
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
25.amazonaws.comAmazon FinSpace
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
26.amazonaws.comAmazon Forecast
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
27.amazonaws.comAmazon FSx
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
28.amazonaws.comAmazon GuardDuty
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
29.amazonaws.comAWS Glue
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
30.amazonaws.comAmazon HealthLake
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
31.amazonaws.comAWS IoT SiteWise
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
32.amazonaws.comAmazon Kendra
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
33.amazonaws.comAmazon Keyspaces (für Apache Cassandra)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
34.amazonaws.comAmazon Kinesis
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
35.amazonaws.comAmazon Kinesis Data Firehose
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
36.amazonaws.comAmazon Kinesis Video Streams
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
37.amazonaws.comAWS Lambda
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
38.amazonaws.comAmazon Lex
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
39.amazonaws.comAWS License Manager
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
40.amazonaws.comAmazon Location Service
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
41.amazonaws.comAmazon Lookout for Equipment
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
42.amazonaws.comAmazon Lookout für Metrics
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
43.amazonaws.comAmazon Lookout für Vision
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
44.amazonaws.comAmazon Macie
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
45.amazonaws.comAmazon Managed Blockchain
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
46.amazonaws.comAmazon Managed Streaming for Apache Kafka (Amazon MSK)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
47.amazonaws.comAmazon Managed Workflows for Apache Airflow (MWAA)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
48.amazonaws.comAmazon MemoryDB
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
49.amazonaws.comAmazon Monitron
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
50.amazonaws.comAmazon MQ
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
51.amazonaws.comAmazon Neptune
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
05.amazonaws.comAmazon Nimble Studio
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
53.amazonaws.comAWS Proton
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
54.amazonaws.comAmazon Quantum Ledger Database (Amazon QLDB)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
55.amazonaws.comAmazon RDS Performance Insights
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
05.amazonaws.comAmazon Redshift
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
57.amazonaws.comAbfrage-Editor V2 von Amazon Redshift
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
58.amazonaws.comAmazon Redshift Serverless
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
59.amazonaws.comAmazon Rekognition
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
60.amazonaws.comAmazon Relational Database Service (Amazon RDS)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
05.amazonaws.comAWS Secrets Manager
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
62.amazonaws.comAmazon Simple Email Service (Amazon SES)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
63.amazonaws.comAmazon Simple Notification Service (Amazon SNS)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
64.amazonaws.comAmazon Simple Queue Service (Amazon SQS)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
65.amazonaws.comAmazon Simple Storage Service (Amazon S3)
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
66.amazonaws.comAWS Snowball
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
67.amazonaws.comAWS Storage Gateway
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
68.amazonaws.comAWS Systems Manager Incident Manager
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
69.amazonaws.comAWS Systems Manager Incident Manager-Kontakte
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
70.amazonaws.comAmazon Timestream
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
71.amazonaws.comAmazon Translate
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
72.amazonaws.comAmazon WorkMail
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
73.amazonaws.comAmazon WorkSpaces
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
74.amazonaws.comAmazon WorkSpaces Web
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
75.amazonaws.comAWS X-Ray
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
76.amazonaws.com

kms:WrappingAlgorithm

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
77

String

Einzelwertig

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
78

Schlüsselrichtlinien und IAM-Richtlinien

Dieser Bedingungsschlüssel steuert den Zugriff auf die Produktion GetParametersForImport basierend auf dem Wert des WrappingAlgorithm-Parameters in der Anforderung. Sie können diese Bedingung verwenden, damit die Prinzipale während des Importvorgangs einen bestimmten Algorithmus zur Verschlüsselung von Schlüsselmaterial verwenden müssen. Anforderungen für den erforderlichen öffentlichen Schlüssel und Import-Token schlagen fehl, wenn sie einen anderen Wrapping-Algorithmus angeben.

Die folgende Beispiel-Richtlinienanweisung verwendet den Bedingungsschlüssel

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
77, um dem Beispielbenutzer die Berechtigung zum Aufrufen der Produktion
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
78 zu geben, wobei jedoch die Verwendung des Verpackungsalgorithmus
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
81 verhindert wird. Wenn der
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
82 in der
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
78-Anforderung
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
81 lautet, schlägt die Produktion fehl.

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
1

Informationen finden Sie auch unter:

kms:WrappingKeySpec

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
85

String

Einzelwertig

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
78

Schlüsselrichtlinien und IAM-Richtlinien

Dieser Bedingungsschlüssel steuert den Zugriff auf die Produktion GetParametersForImport basierend auf dem Wert des WrappingKeySpec-Parameters in der Anforderung. Sie können diese Bedingung verwenden, um von den Prinzipalen zu verlangen, dass sie während des Importvorgangs einen bestimmten Typ eines öffentlichen Schlüssels verwenden. Wenn die Anforderung einen anderen Schlüsseltyp angibt, schlägt sie fehl.

Da der einzige gültige Wert für den

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
87-Parameter
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
88 lautet, werden die Benutzer durch Verweigern dieses Werts effektiv an der Nutzung der
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
78-Produktion gehindert.

Das folgende Richtlinienanweisungsbeispiel verwendet den

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
77-Bedingungsschlüssel, um zu erfordern, dass der Wert für
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
87 in der Anforderung
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
88 lautet.

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
2

Informationen finden Sie auch unter:

AWS KMS-Bedingungsschlüssel für AWS Nitro Enclaves

AWS Nitro Enclaves ist eine Amazon-EC2-Funktion, mit der Sie isolierte Computing-Umgebungen namens Enklaven erstellen können, um hochsensible Daten zu schützen und zu verarbeiten. AWS KMS bietet Bedingungsschlüssel zur Unterstützung von AWS Nitro Enclaves. Diese Bedingungsschlüssel funktionieren nur, wenn eine Anforderung für eineAWS KMS-Produktion aus einer Enklave stammt.

Wenn Sie die

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
93-,
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
94- oder
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
95-AWS Nitro Enclaves SDK-APIs aus einer Enklave aufrufen, rufen diese APIs die entsprechende AWS KMS-Produktion mit einem Parameter auf, der ein signiertes Bescheinigungsdokument aus der Enklave enthält. Das signierte Bescheinigungsdokument beweist AWS KMS die Identität der Enklave.

Mit den folgenden Bedingungsschlüsseln können Sie die Berechtigungen für diese Operationen anhand des Inhalts des signierten Bescheinigungsdokuments einschränken. Bevor Sie eine Produktion erlauben, vergleicht AWS KMS das Bescheinigungsdokument aus der Enklave mit den Werten in diesen AWS KMS-Bedingungsschlüsseln.

kms:RecipientAttestation:ImageSha384

AWS KMS-BedingungsschlüsselBedingungstypWerttypAPI-OperationenRichtlinientyp

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
96

String

Einzelwertig

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
27

{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
29

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
99

Schlüsselrichtlinien und IAM-Richtlinien

Der Bedingungsschlüssel

{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
96 erlaubt
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
93-,
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
94-, und
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
95-Anforderungen aus einer Enklave nur dann, wenn der Image-Hash aus dem signierten Bescheinigungsdokument in der Anforderung mit dem Wert im Bedingungsschlüssel übereinstimmt. Der
"kms:EncryptionContext:context-key": "context-value"
04-Wert entspricht PCR [0] im Bescheinigungsdokument. Dieser Bedingungsschlüssel ist nur wirksam, wenn Sie die AWS-Nitro-Enclaves-SDK-APIs aus einer Enklave aufrufen.

Dieser Bedingungsschlüssel ist in Schlüsselrichtlinien-Anweisungen und IAM-Richtlinienanweisungen gültig, obwohl er nicht in der IAM-Konsole oder in der IAM-Serviceautorisierungsreferenz vorkommt.

Die folgende Schlüsselrichtlinienanweisung erlaubt es beispielsweise der

"kms:EncryptionContext:context-key": "context-value"
05-Rolle, den KMS-Schlüssel für die Operationen
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
93 (Decrypt),
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
94 (GenerateDataKey) und
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
95 (GenerateRandom) zu verwenden. Der Bedingungsschlüssel
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
96 erlaubt die Operationen nur, wenn der Image-Hashwert (PCR [0]) des Bescheinigungsdokuments in der Anforderung mit dem Bild-Hashwert in der Bedingung übereinstimmt.

Wenn die Anforderung kein Bescheinigungsdokument enthält, wird die Berechtigung verweigert, da diese Bedingung nicht erfüllt ist.