Steuern des Zugriffs auf Ihren externen Schlüsselspeicher - 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.

Steuern des Zugriffs auf Ihren externen Schlüsselspeicher

Alle AWS KMS-Zugriffskontrollfunktionen – Schlüsselrichtlinien, IAM-Richtlinien und Erteilungen –, die Sie mit Standard-KMS-Schlüsseln verwenden, funktionieren auf die gleiche Weise für KMS-Schlüssel in einem externen Schlüsselspeicher. Sie können IAM-Richtlinien verwenden, um den Zugriff auf die API-Operationen zur Erstellung und Verwaltung externer Schlüsselspeicher zu steuern. Sie verwenden IAM-Richtlinien und Schlüsselrichtlinien, um den Zugriff auf die AWS KMS keys in Ihrem externen Schlüsselspeicher zu steuern. Sie können auch Service-Kontrollrichtlinien für Ihre AWS-Organisation und VPC-Endpunktrichtlinien verwenden, um den Zugriff auf KMS-Schlüssel in Ihrem externen Schlüsselspeicher zu kontrollieren.

Sie sollten Benutzern und Rollen ausschließlich die Berechtigungen gewähren, die sie für die Aufgaben benötigen, die sie voraussichtlich ausführen werden.

Autorisierung externer Schlüsselspeichermanager

Prinzipale, die einen externen Schlüsselspeicher erstellen und verwalten, benötigen Berechtigungen für die benutzerdefinierten Schlüsselspeicheroperationen. Die folgende Liste beschreibt die Mindestberechtigungen, die Manager externer Schlüsselspeicher benötigen. Da es sich bei einem benutzerdefinierten Schlüsselspeicher nicht um eine AWS-Ressource handelt, können Sie einem externen Schlüsselspeicher keine Berechtigungen für Prinzipale in anderen AWS-Konten geben.

  • kms:CreateCustomKeyStore

  • kms:DescribeCustomKeyStores

  • kms:ConnectCustomKeyStore

  • kms:DisconnectCustomKeyStore

  • kms:UpdateCustomKeyStore

  • kms:DeleteCustomKeyStore

Prinzipale, die einen externen Schlüsselspeicher erstellen, benötigen die Berechtigung, die externen Schlüsselspeicherkomponenten zu erstellen und zu konfigurieren. Prinzipale können externe Schlüsselspeicher nur in ihren eigenen Konten erstellen. Um einen externen Schlüsselspeicher mit der Konnektivität eines VPC-Endpunkt-Services zu erstellen, müssen die Prinzipale über die Berechtigung verfügen, die folgenden Komponenten zu erstellen:

  • Eine Amazon VPC

  • Öffentliche und private Subnetze

  • Einen Network Load Balancer und eine Zielgruppe

  • Einen VPC-Endpunkt-Service von Amazon

Einzelheiten finden Sie unter Identity and Access Management für Amazon VPC, Identity and Access Management für VPC-Endpunkte und VPC-Endpunktservices und Elastic Load Balancing-API-Berechtigungen.

Autorisierung von Benutzern von KMS-Schlüsseln in externen Schlüsselspeichern

Prinzipale, die AWS KMS keys in Ihrem externen Schlüsselspeicher erstellen und verwalten, benötigen die gleichen Berechtigungen wie Prinzipale, die KMS-Schlüssel in AWS KMS erstellen und verwalten. Die Standard-Schlüsselrichtlinie für KMS-Schlüssel in einem externen Schlüsselspeicher ist identisch mit der Standard-Schlüsselrichtlinie für KMS-Schlüssel in AWS KMS. Attributbasierte Zugriffskontrolle (ABAC), das Tags und Aliasse verwendet, um den Zugriff auf KMS-Schlüssel zu steuern, ist auch für KMS-Schlüssel in externen Schlüsselspeichern wirksam.

Prinzipale, die die KMS-Schlüssel in Ihrem benutzerdefinierten Schlüsselspeicher für kryptografische Operationen verwenden, benötigen die Berechtigung zum Ausführen der kryptografischen Operation mit dem KMS-Schlüssel, z. B. kms:Decrypt. Sie können diese Berechtigungen in einer IAM-Richtlinie oder Schlüsselrichtlinie bereitstellen. Sie benötigen keine zusätzlichen Berechtigungen, um einen KMS-Schlüssel in einem benutzerdefinierten Schlüsselspeicher verwenden zu können.

Um eine Berechtigung festzulegen, die nur für KMS-Schlüssel in einem externen Schlüsselspeicher gilt, verwenden Sie die Richtlinienbedingung kms:KeyOrigin mit einem Wert von EXTERNAL_KEY_STORE. Sie können diese Bedingung verwenden, um die kms:CreateKey-Berechtigung oder jede Berechtigung einzuschränken, die für eine KMS-Schlüsselressource spezifisch ist. Die folgende IAM-Richtlinie erlaubt es beispielsweise der Identität, der sie zugeordnet ist, die angegebenen Operationen für alle KMS-Schlüssel des Kontos aufzurufen, vorausgesetzt, die KMS-Schlüssel befinden sich in einem externen Schlüsselspeicher. Beachten Sie, dass Sie die Berechtigung auf KMS-Schlüssel in einem externen Schlüsselspeicher und KMS-Schlüssel in einem AWS-Konto beschränken können, aber nicht auf einen bestimmten externen Schlüsselspeicher im Konto.

{ "Sid": "AllowKeysInExternalKeyStores", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL_KEY_STORE" } } }

Autorisierung von AWS KMS zur Kommunikation mit Ihrem externen Schlüsselspeicher-Proxy

AWS KMS kommuniziert mit Ihrem externen Schlüsselmanager nur über den von Ihnen bereitgestellten externen Schlüsselspeicher-Proxy. AWS KMS authentifiziert sich bei Ihrem Proxy, indem es seine Anforderungen unter Verwendung des Prozesses Signature Version 4 (SigV4) mit der von Ihnen angegebenen Anmeldeinformation für die Proxy-Authentifizierung des externen Schlüsselspeichers signiert. Wenn Sie eine Konnektivität eines öffentlichen Endpunkts für Ihren externen Schlüsselspeicher-Proxy verwenden, benötigt AWS KMS keine zusätzlichen Berechtigungen.

Wenn Sie jedoch die Konnektivität eines VPC-Endpunkt-Service verwenden, müssen Sie AWS KMS die Erlaubnis erteilen, einen Schnittstellenendpunkt zu Ihrem VPC-Endpunkt-Service von Amazon zu erstellen. Diese Berechtigung ist unabhängig davon erforderlich, ob sich der externe Schlüsselspeicher-Proxy in Ihrer VPC befindet oder ob der externe Schlüsselspeicher-Proxy sich an einem anderen Ort befindet, aber den VPC-Endpunkt-Service zur Kommunikation mit AWS KMS verwendet.

Um AWS KMS zu erlauben, einen Schnittstellenendpunkt zu erstellen, verwenden Sie die Amazon-VPC-Konsole oder die -ModifyVpcEndpointServicePermissionsOperation. Erlauben Sie Berechtigungen für den folgenden Prinzipal: cks.kms.<region>.amazonaws.com.

Mit dem folgenden AWS CLI-Befehl kann AWS KMS beispielsweise eine Verbindung mit dem angegebenen VPC-Endpunkt-Service in der Region USA West (Oregon) (us-west-2) herstellen. Ersetzen Sie vor der Verwendung dieses Befehls die Amazon-VPC-Service-ID und AWS-Region durch gültige Werte für Ihre Konfiguration.

modify-vpc-endpoint-service-permissions --service-id vpce-svc-12abc34567def0987 --add-allowed-principals '["cks.kms.us-west-2.amazonaws.com"]'

Um diese Berechtigung zu entfernen, verwenden Sie die Amazon-VPC-Konsole oder die ModifyVpcEndpointServicePermissions mit dem RemoveAllowedPrincipals Parameter .

Proxy-Autorisierung für externen Schlüsselspeicher (optional)

Einige externe Schlüsselspeicher-Proxys implementieren Autorisierungsanforderungen für die Verwendung ihrer externen Schlüssel. Ein externer Schlüsselspeicher-Proxy ist berechtigt, aber nicht verpflichtet, ein Autorisierungsschema zu entwerfen und zu implementieren, das es bestimmten Benutzern erlaubt, bestimmte Operationen nur unter bestimmten Bedingungen anzufordern. Beispielsweise könnte ein Proxy so konfiguriert sein, dass er Benutzer:in A die Verschlüsselung mit einem bestimmten externen Schlüssel erlaubt, aber nicht die Entschlüsselung mit diesem Schlüssel.

Die Proxy-Autorisierung ist unabhängig von der SigV4-basierten Proxy-Authentifizierung, die AWS KMS für alle externen Schlüsselspeicher-Proxys benötigt. Sie ist auch unabhängig von den Schlüsselrichtlinien, IAM-Richtlinien und Berechtigungen, die den Zugriff auf Operationen zulassen, die den externen Schlüsselspeicher oder seine KMS-Schlüssel betreffen.

AWS KMS nimmt Metadaten in jede Proxy-API-Anforderung auf, einschließlich des Aufrufers, des KMS-Schlüssels, der AWS KMS-Operation und des AWS-Service (falls vorhanden), um die Autorisierung durch den externen Schlüsselspeicher-Proxy zu ermöglichen. Die Anforderungsmetadaten für Version 1 (v1) der externen Schlüssel-Proxy-API lauten wie folgt.

"requestMetadata": { "awsPrincipalArn": string, "awsSourceVpc": string, // optional "awsSourceVpce": string, // optional "kmsKeyArn": string, "kmsOperation": string, "kmsRequestId": string, "kmsViaService": string // optional }

Sie können Ihren Proxy zum Beispiel so konfigurieren, dass er Anforderungen von einem bestimmten Prinzipal (awsPrincipalArn) zulässt, aber nur, wenn die Anforderung im Namen des Prinzipals von einem bestimmten AWS-Service (kmsViaService) gestellt wird.

Wenn die Proxy-Autorisierung fehlschlägt, scheitert der entsprechende AWS KMS-Vorgang mit einer Meldung, die den Fehler erklärt. Details hierzu finden Sie unter Probleme mit der Proxy-Autorisierung.

mTLS-Authentifizierung (optional)

Damit Ihr externer Schlüsselspeicher-Proxy Anforderungen von AWS KMS authentifizieren kann, signiert AWS KMS alle Anforderungen an Ihren externen Schlüsselspeicher-Proxy mit der Proxy-Authentifizierungsanmeldeinformation Signature V4 (SigV4) für Ihren externen Schlüsselspeicher.

Um zusätzlich sicherzustellen, dass Ihr externer Schlüsselspeicher-Proxy nur auf AWS KMS-Anforderungen antwortet, unterstützen einige externe Schlüsselspeicher-Proxys mTLS (mutual Transport Layer Security), bei der beide Parteien einer Transaktion Zertifikate zur gegenseitigen Authentifizierung verwenden. mTLS fügt der serverseitigen Authentifizierung, die Standard-TLS bietet, eine clientseitige Authentifizierung hinzu, bei der der externe Schlüsselspeicher-Proxy-Server den AWS KMS-Client authentifiziert. In dem seltenen Fall, dass Ihre Proxy-Authentifizierungsanmeldeinformation kompromittiert wird, verhindert mTLS, dass ein Dritter erfolgreiche API-Anforderungen an den externen Schlüsselspeicher-Proxy stellt.

Um mTLS zu implementieren, konfigurieren Sie Ihren externen Schlüsselspeicher-Proxy so, dass er nur clientseitige TLS-Zertifikate mit den folgenden Eigenschaften akzeptiert:

  • Der Subject Common Name auf dem TLS-Zertifikat muss cks.kms.<Region>.amazonaws.com lauten, zum Beispiel cks.kms.eu-west-3.amazonaws.com.

  • Das Zertifikat muss mit einer Zertifizierungsstelle verknüpft sein, die mit Amazon Trust Services verbunden ist.