Verwenden Sie VPC Endpunkte, um den Zugriff auf Ressourcen zu AWS KMS kontrollieren - AWS Key Management Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie VPC Endpunkte, um den Zugriff auf Ressourcen zu AWS KMS kontrollieren

Sie können den Zugriff auf AWS KMS Ressourcen und Vorgänge steuern, wenn die Anfrage von einem Endpunkt kommt VPC oder einen VPC Endpunkt verwendet. Verwenden Sie dazu einen der folgenden globalen Bedingungsschlüssel in einer wichtigen Richtlinie oder IAMRichtlinie.

  • Verwenden Sie den aws:sourceVpce Bedingungsschlüssel, um den Zugriff je nach VPC Endpunkt zu gewähren oder einzuschränken.

  • Verwenden Sie den aws:sourceVpc Bedingungsschlüssel, um den Zugriff auf der Grundlage des Hostings des VPC privaten Endpunkts zu gewähren oder einzuschränken.

Anmerkung

Seien Sie vorsichtig, wenn Sie wichtige Richtlinien und IAM Richtlinien auf der Grundlage Ihres VPC Endpunkts erstellen. Wenn eine Richtlinienerklärung verlangt, dass Anfragen von einem bestimmten VPC Endpunkt VPC oder einem bestimmten Endpunkt kommen, schlagen Anfragen von integrierten AWS Diensten, die eine AWS KMS Ressource in Ihrem Namen verwenden, möglicherweise fehl. Weitere Informationen dazu finden Sie unter Verwendung von VPC Endpunktbedingungen in Richtlinien mit Berechtigungen AWS KMS.

Außerdem ist der aws:sourceIP Bedingungsschlüssel nicht wirksam, wenn die Anfrage von einem VPCAmazon-Endpunkt kommt. Um Anfragen auf einen VPC Endpunkt zu beschränken, verwenden Sie die aws:sourceVpc Bedingungsschlüssel aws:sourceVpce oder. Weitere Informationen finden Sie im AWS PrivateLink Handbuch unter Identitäts- und Zugriffsmanagement für VPC VPC Endgeräte und Endpunktdienste.

Sie können diese globalen Bedingungsschlüssel verwenden, um den Zugriff auf AWS KMS keys (KMSSchlüssel), Aliase und solche Operationen zu kontrollieren, CreateKeydie nicht von einer bestimmten Ressource abhängen.

Das folgende Beispiel für eine Schlüsselrichtlinie ermöglicht es einem Benutzer beispielsweise, einige kryptografische Operationen mit einem KMS Schlüssel nur dann durchzuführen, wenn die Anforderung den angegebenen VPC Endpunkt verwendet. Wenn ein Benutzer eine Anfrage an stellt AWS KMS, wird die VPC Endpunkt-ID in der Anfrage mit dem Wert des aws:sourceVpce Bedingungsschlüssels in der Richtlinie verglichen. Wenn sie nicht übereinstimmen, wird die Anforderung abgelehnt.

Um eine Richtlinie wie diese zu verwenden, ersetzen Sie die AWS-Konto Platzhalter-ID und den VPC Endpunkt IDs durch gültige Werte für Ihr Konto.

{ "Id": "example-key-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM policies", "Effect": "Allow", "Principal": {"AWS":["111122223333"]}, "Action": ["kms:*"], "Resource": "*" }, { "Sid": "Restrict usage to my VPC endpoint", "Effect": "Deny", "Principal": "*", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1234abcdf5678c90a" } } } ] }

Sie können den aws:sourceVpc Bedingungsschlüssel auch verwenden, um den Zugriff auf Ihre KMS Schlüssel zu beschränken, je nachdem, VPC in welchem VPC Endpunkt sich der Endpunkt befindet.

Das folgende Beispiel für eine Schlüsselrichtlinie erlaubt Befehle, die den KMS Schlüssel verwalten, nur dann, wenn sie stammenvpc-12345678. Darüber hinaus sind Befehle, die den KMS Schlüssel für kryptografische Operationen verwenden, nur zulässig, wenn sie von vpc-2b2b2b2b Sie können eine Richtlinie wie diese verwenden, wenn eine Anwendung in einer Anwendung ausgeführt wirdVPC, aber Sie verwenden eine zweite, isolierte Richtlinie VPC für Verwaltungsfunktionen.

Um eine Richtlinie wie diese zu verwenden, ersetzen Sie die AWS-Konto Platzhalter-ID und den VPC Endpunkt IDs durch gültige Werte für Ihr Konto.

{ "Id": "example-key-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow administrative actions from vpc-12345678", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "kms:Create*","kms:Enable*","kms:Put*","kms:Update*", "kms:Revoke*","kms:Disable*","kms:Delete*", "kms:TagResource", "kms:UntagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-12345678" } } }, { "Sid": "Allow key usage from vpc-2b2b2b2b", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "kms:Encrypt","kms:Decrypt","kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-2b2b2b2b" } } }, { "Sid": "Allow read actions from everywhere", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "kms:Describe*","kms:List*","kms:Get*" ], "Resource": "*", } ] }