Contrôler l'accès à votre magasin de clés externe - AWS Key Management Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Contrôler l'accès à votre magasin de clés externe

Toutes les fonctionnalités de contrôle d'accès AWS KMS (politiques de clés, politiques IAM et octrois) que vous utilisez avec des clés KMS standard fonctionnent de la même manière pour les clés KMS d'un magasin de clés externe. Vous pouvez utiliser les politiques IAM pour contrôler l'accès aux opérations d'API qui créent et gèrent des magasins de clés externes. Vous pouvez utiliser les politiques IAM et les politiques de clés pour contrôler l'accès aux AWS KMS keys de votre magasin de clés externe. Vous pouvez également utiliser des politiques de contrôle des services pour votre organisation AWS et des politiques de point de terminaison d'un VPC pour contrôler l'accès aux clés KMS dans votre magasin de clés externe.

Nous vous recommandons de ne fournir aux utilisateurs et aux rôles que les autorisations dont ils ont besoin pour les tâches qu'ils sont susceptibles d'effectuer.

Autoriser des gestionnaires de magasins de clés externes

Les principaux qui créent et gèrent un magasin de clés externe doivent être autorisés pour les opérations de magasin de clés personnalisé. La liste suivante décrit les autorisations minimales requises pour les gestionnaires de magasin de clés externe. Étant donné qu'un magasin de clés personnalisé n'est pas une ressource AWS, vous ne pouvez pas autoriser l'accès à un magasin de clés externe aux principaux d'autres Comptes AWS.

  • kms:CreateCustomKeyStore

  • kms:DescribeCustomKeyStores

  • kms:ConnectCustomKeyStore

  • kms:DisconnectCustomKeyStore

  • kms:UpdateCustomKeyStore

  • kms:DeleteCustomKeyStore

Les principaux qui créent un magasin de clés externe doivent être autorisés à créer et à configurer les composants du magasin de clés externe. Les principaux ne peuvent créer des magasins de clés externes que sur leurs propres comptes. Pour créer un magasin de clés externe doté d'une connectivité au service de point de terminaison d'un VPC, les gestionnaires doivent être autorisés à créer les composants suivants :

  • Un Amazon VPC

  • Sous-réseaux publics et privés

  • Un équilibreur de charge réseau et un groupe cible

  • Un service de point de terminaison d'un Amazon VPC

Pour plus de détails, veuillez consulter les rubriques Identity and Access Management pour Amazon VPC, Identity and Access Management pour les points de terminaison de VPC et les services de points de terminaison de VPC et Elastic Load Balancing API permissions (Autorisations de l'API Elastic Load Balancing).

Autoriser les utilisateurs de clés KMS dans des magasins de clés externes

Les principaux qui créent et gèrent les AWS KMS keys de votre magasin de clés externe nécessitent les mêmes autorisations que ceux qui créent et gèrent les clés KMS dans AWS KMS. La politique de clé par défaut pour les clés KMS d'un magasin de clés externe est identique à la politique de clé par défaut pour les clés KMS dans AWS KMS. Le contrôle d'accès par attributs (ABAC), qui utilise des balises et des alias pour contrôler l'accès aux clés KMS, fonctionne également sur les clés KMS dans les magasins de clés externes.

Les principaux qui utilisent les clés KMS dans votre magasin de clés personnalisé pour les opérations de chiffrement ont besoin des autorisations pour effectuer les opérations de chiffrement avec la clé KMS, telle que kms:Decrypt. Vous pouvez fournir ces autorisations dans une politique IAM ou une politique de clé. Cependant, les principaux n'ont pas besoin d'autorisations supplémentaires pour utiliser une clé KMS dans un magasin de clés personnalisé.

Pour définir une autorisation qui s'applique uniquement aux clés KMS d'un magasin de clés externe, utilisez la condition de politique kms:KeyOrigin avec la valeur de EXTERNAL_KEY_STORE. Vous pouvez utiliser cette condition pour limiter l'CreateKeyautorisation kms : ou toute autorisation spécifique à une ressource clé KMS. Par exemple, la politique IAM suivante permet à l'identité à laquelle elle est associée d'appeler les opérations spécifiées sur toutes les clés KMS du compte, à condition que les clés KMS se trouvent dans un magasin de clés externe. Notez que vous pouvez limiter l'autorisation aux clés KMS dans un magasin de clés externe et aux clés KMS sur un Compte AWS, mais pas à un magasin de clés externe particulier sur le compte.

{ "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" } } }

Autoriser AWS KMS à communiquer avec le proxy de votre magasin de clés externe

AWS KMS communique avec votre gestionnaire de clés externe uniquement via le proxy de magasin de clés externe que vous fournissez. AWS KMS s'authentifie auprès de votre proxy en signant ses requêtes à l'aide du processus Signature Version 4 (SigV4) en utilisant les informations d'identification pour l'authentification du proxy de magasin de clés externe que vous spécifiez. Si vous utilisez la connectivité au point de terminaison public pour votre proxy de magasin de clés externe, AWS KMS ne requiert aucune autorisation supplémentaire.

Toutefois, si vous utilisez la connectivité au service de point de terminaison d'un VPC, vous devez autoriser AWS KMS à créer un point de terminaison d'interface pour votre service de point de terminaison d'un Amazon VPC. Cette autorisation est requise, indépendamment du fait que le proxy de magasin de clés externe soit dans votre VPC ou qu'il soit situé ailleurs, mais qu'il utilise le service de point de terminaison d'un VPC pour communiquer avec AWS KMS.

AWS KMSPour autoriser la création d'un point de terminaison d'interface, utilisez la console Amazon VPC ou l'ModifyVpcEndpointServicePermissionsopération. Accordez des autorisations au principal suivant : cks.kms.<region>.amazonaws.com.

Par exemple, la commande AWS CLI suivante permet à AWS KMS de se connecter au service de point de terminaison d'un VPC spécifié dans la région USA Ouest (Oregon) (us-west-2). Avant d'utiliser cette commande, remplacez l'ID de service d'Amazon VPC et l'Région AWS par des valeurs valides pour votre configuration.

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

Pour supprimer cette autorisation, utilisez la console Amazon VPC ou ModifyVpcEndpointServicePermissionsavec le RemoveAllowedPrincipals paramètre.

Autorisation par proxy de magasin de clés externe (facultatif)

Certains proxys de magasin de clés externe mettent en œuvre des exigences d'autorisation pour l'utilisation de leurs clés externes. Un proxy de magasin de clés externe est autorisé, mais pas tenu, de concevoir et d'implémenter un schéma d'autorisation qui permet à des utilisateurs particuliers de demander des opérations particulières uniquement sous certaines conditions. Par exemple, un proxy peut être configuré pour permettre à l'utilisateur A de chiffrer avec une clé externe particulière, mais pas de déchiffrer à l'aide de cette clé.

L'autorisation par proxy est indépendante de l'authentification du proxy basée sur SigV4 qu'AWS KMS exige pour tous les proxys de magasin de clés externe. Elle est également indépendante des politiques de clés, des politiques IAM et des octrois qui accordent l'accès aux opérations affectant le magasin de clés externe ou ses clés KMS.

Pour activer l'autorisation par le proxy de magasin de clés externe, AWS KMS inclut des métadonnées dans chaque requête d'API de proxy, notamment l'appelant, la clé KMS, l'opération AWS KMS, l'Service AWS (le cas échéant). Les métadonnées de la requête pour la version 1 (v1) de l'API de proxy de clé externe se présentent comme suit.

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

Par exemple, vous pouvez configurer votre proxy pour autoriser les requêtes provenant d'un principal (awsPrincipalArn) particulier, mais uniquement lorsque la requête est faite au nom du principal par un Service AWS particulier (kmsViaService).

Si l'autorisation par proxy échoue, l'opération AWS KMS correspondante échoue avec un message expliquant l'erreur. Pour plus de détails, veuillez consulter la rubrique Problèmes d'autorisation du proxy.

Authentification mTLS (facultatif)

Pour permettre à votre proxy de magasin de clés externe d'authentifier les requêtes provenant de AWS KMS, AWS KMS signe toutes les requêtes adressées à votre proxy de magasin de clés externe à l'aide des informations d'identification pour l'authentification du proxy Signature V4 (SigV4) pour votre magasin de clés externe.

Pour garantir davantage que votre proxy de magasin de clés externe ne réponde qu'aux requêtes AWS KMS, certains proxys de clé externes prennent en charge le protocole Transport Layer Security mutuel (mTLS), dans lequel les deux parties d'une transaction utilisent des certificats pour s'authentifier mutuellement. mTLS ajoute l'authentification côté client, dans laquelle le serveur proxy de magasin de clés externe authentifie le client AWS KMS, à l'authentification côté serveur fournie par le protocole TLS standard. Dans les rares cas où les informations d'identification d'authentification de votre proxy sont compromises, mTLS empêche une tierce partie d'effectuer des requêtes d'API au proxy de magasin de clés externe.

Pour implémenter le protocole mTLS, configurez votre proxy de magasin de clés externe de manière à n'accepter que les certificats TLS côté client présentant les propriétés suivantes :

  • Le nom commun du sujet sur le certificat TLS doit être cks.kms.<Region>.amazonaws.com, par exemple, cks.kms.eu-west-3.amazonaws.com.

  • Le certificat doit être lié à une autorité de certification associée à Amazon Trust Services.