

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.

# Créer une clé KMS HMAC
<a name="hmac-create-key"></a>

Vous pouvez créer des clés HMAC KMS dans la AWS KMS console, à l'aide de l'[https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)API ou du [AWS::KMS::Key CloudFormation modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html).

Lorsque vous créez une clé HMAC KMS, vous devez sélectionner une spécification de clé. AWS KMS prend en charge plusieurs [spécifications clés pour les clés HMAC KMS](symm-asymm-choose-key-spec.md#hmac-key-specs). La spécification de clé que vous sélectionnez pourrait être déterminée par des exigences réglementaires, de sécurité ou métier. En général, les clés plus longues résistent mieux aux attaques par force brute.

Pour obtenir plus d'informations sur les autorisations nécessaires pour créer des clés KMS, consultez [Autorisations de création de clés KMS](create-keys.md#create-key-permissions).

## Utilisation de la AWS KMS console
<a name="create-hmac-key-console"></a>

Vous pouvez utiliser le AWS Management Console pour créer des clés HMAC KMS. Les clés KMS HMAC sont des clés symétriques avec une utilisation de clé de **Generate and verify MAC** (Générer et vérifier le MAC). Vous pouvez également créer des clés HMAC multi-région. 

1. Connectez-vous à la console AWS Key Management Service (AWS KMS) AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/kms.](https://console.aws.amazon.com/kms)

1. Pour modifier le Région AWS, utilisez le sélecteur de région dans le coin supérieur droit de la page.

1. Dans le panneau de navigation, choisissez **Clés gérées par le client**.

1. Choisissez **Create key**.

1. Pour **Type de clé**, choisissez **Symétrique**.

   Les clés KMS HMAC sont symétriques. Vous utilisez la même clé pour générer et vérifier les balises HMAC.

1. Pour **Key usage** (Utilisation de la clé), choisissez **Generate and verify MAC** (Générer et vérifier le MAC).

   Générer et vérifier le MAC est la seule utilisation valide de clés KMS HMAC.
**Note**  
**Key usage** (Utilisation de la clé) est affiché pour les clés symétriques uniquement lorsque les clés KMS HMAC sont prises en charge dans votre région sélectionnée.

1. Sélectionnez une spécification (**Key spec** [Spécifications de clé]) pour votre clé KMS HMAC. 

   La spécification de clé que vous sélectionnez peut être déterminée par des exigences réglementaires, de sécurité ou métier. En général, les clés plus longues sont plus sécurisées.

1. Pour créer une clé HMAC *principale* [multi-région](multi-region-keys-overview.md), dans **Advanced options** (Options avancées), choisissez **Multi-Region key** (Clé multi-région). Les [propriétés partagées](multi-region-keys-overview.md#mrk-sync-properties) que vous définissez pour cette clé KMS, comme son type de clé et son utilisation de clé, seront partagés avec ses clés de réplica.

   Vous ne pouvez pas utiliser cette procédure pour créer une clé de réplica. Pour créer une clé HMAC de réplica *multi-région*, suivez les [instructions de création d'une clé de réplica](multi-region-keys-replicate.md).

1. Choisissez **Suivant**.

1. Saisissez un [alias](kms-alias.md) pour la clé KMS. Le nom d'alias ne peut pas commencer par **aws/**. Le préfixe **aws/** est réservé par Amazon Web Services pour représenter Clés gérées par AWS dans votre compte.

   Nous vous recommandons d'utiliser un alias qui identifie la clé KMS en tant que clé HMAC, comme `HMAC/test-key`. Cela vous permettra d'identifier plus facilement vos clés HMAC dans la AWS KMS console, où vous pourrez trier et filtrer les clés par balises et alias, mais pas par spécification ou utilisation des clés.

   Les alias sont requis lorsque vous créez une clé KMS dans la AWS Management Console. Vous ne pouvez pas spécifier d'alias lorsque vous utilisez l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération, mais vous pouvez utiliser la console ou l'[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)opération pour créer un alias pour une clé KMS existante. Pour en savoir plus, consultez [Alias dans AWS KMS](kms-alias.md).

1. (Facultatif) Saisissez une description pour la clé KMS.

   Saisissez une description qui explique le type de données que vous envisagez de protéger ou l'application que vous pensez utiliser avec la clé KMS.

   Vous pouvez ajouter une description maintenant ou la mettre à jour à tout moment, sauf si l'[état de la clé](key-state.md) est `Pending Deletion` ou `Pending Replica Deletion`. Pour ajouter, modifier ou supprimer la description d'une clé gérée par le client existante, modifiez la description sur la page de détails de la clé KMS AWS Management Console dans le AWS Management Console ou utilisez l'[UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html)opération.

1. (Facultatif) Saisissez une clé de balise et une valeur de balise facultative. Pour ajouter plus d'une balise à la clé KMS, sélectionnez **Add tag (Ajouter une balise)**.

   Envisagez d'ajouter une balise qui identifie la clé en tant que clé HMAC, comme `Type=HMAC`. Cela vous permettra d'identifier plus facilement vos clés HMAC dans la AWS KMS console, où vous pourrez trier et filtrer les clés par balises et alias, mais pas par spécification ou utilisation des clés.

   Lorsque vous ajoutez des balises à vos AWS ressources, AWS génère un rapport de répartition des coûts avec l'utilisation et les coûts agrégés par balises. Les balises peuvent également être utilisées pour contrôler l'accès à une clé KMS. Pour de plus amples informations sur l'étiquetage des clés KMS, veuillez consulter [Tags dans AWS KMS](tagging-keys.md) et [ABAC pour AWS KMS](abac.md). 

1. Choisissez **Suivant**.

1. Sélectionnez les utilisateurs et les rôles IAM qui peuvent administrer la clé KMS.
**Remarques**  
Cette politique clé donne le contrôle Compte AWS total de cette clé KMS. Il permet aux administrateurs de compte d'utiliser des politiques IAM pour autoriser d'autres principals à gérer la clé KMS. Pour en savoir plus, consultez [politique de clé par défaut](key-policy-default.md).  
Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.  
La AWS KMS console ajoute des administrateurs clés à la politique clé sous l'identifiant de l'instruction`"Allow access for Key Administrators"`. La modification de cet identifiant d'instruction peut avoir un impact sur la façon dont la console affiche les mises à jour que vous apportez à l'instruction.

1. (Facultatif) Pour empêcher les utilisateurs et les rôles IAM sélectionnés de supprimer cette clé KMS, dans la section **Key deletion (Suppression de la clé)** en bas de la page, décochez la case **Allow key administrators to delete this key (Autoriser les administrateurs de clé à supprimer cette clé)**.

1. Choisissez **Suivant**.

1. Sélectionnez les utilisateurs et les rôles IAM qui peuvent utiliser la clé KMS pour les [opérations crytographiques](kms-cryptography.md#cryptographic-operations).
**Remarques**  
Les bonnes pratiques IAM déconseillent d'avoir recours à des utilisateurs IAM dotés d'informations d'identification à long terme. Dans la mesure du possible, utilisez des rôles IAM, qui fournissent des informations d'identification temporaires. Pour plus d'informations, consultez [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (Bonnes pratiques de sécurité dans IAM) dans le *Guide de l'utilisateur IAM*.  
La AWS KMS console ajoute des utilisateurs clés à la politique clé sous les identificateurs de déclaration `"Allow use of the key"` et`"Allow attachment of persistent resources"`. La modification de ces identificateurs de déclaration peut avoir un impact sur la façon dont la console affiche les mises à jour que vous apportez à l'instruction.

1. (Facultatif) Vous pouvez autoriser d'autres Comptes AWS utilisateurs à utiliser cette clé KMS pour des opérations cryptographiques. Pour cela, dans la section **Autres Comptes AWS** en bas de la page, sélectionnez **Ajouter un autre Compte AWS** et saisissez le numéro d'identification Compte AWS d'un compte externe. Pour ajouter plusieurs comptes externes, répétez cette étape.
**Note**  
Pour autoriser les principaux des comptes externes à utiliser la clé KMS, les administrateurs du compte externe doivent créer des politiques IAM qui fournissent ces autorisations. Pour de plus amples informations, veuillez consulter [Autoriser des utilisateurs d'autres comptes à utiliser une clé KMS](key-policy-modifying-external-accounts.md).

1. Choisissez **Suivant**.

1. Passez en revue les principales déclarations de politique pour trouver la clé. Pour apporter des modifications à la politique clé, sélectionnez **Modifier**.

1. Choisissez **Suivant**.

1. Passez en revue les paramètres de clé que vous avez choisis. Vous pouvez toujours revenir en arrière et modifier tous les paramètres.

1. Choisissez **Finish** (Terminer) pour créer la clé KMS HMAC.

## Utilisation de l' AWS KMS API
<a name="create-keys-api"></a>

Vous pouvez utiliser cette [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)opération pour créer une clé HMAC KMS. Ces exemples utilisent l'[AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/), mais vous pouvez utiliser n'importe quel langage de programmation pris en charge. 

Lorsque vous créez une clé KMS HMAC, vous devez spécifier le paramètre `KeySpec`, qui détermine le type de clé KMS. Vous devez également spécifier une valeur `KeyUsage` de GENERATE\$1VERIFY\$1MAC, même s'il s'agit de la seule valeur d'utilisation de clé valide pour les clés HMAC. Pour créer une clé [multi-région](multi-region-keys-overview.md) KMS HMAC, ajoutez le paramètre `MultiRegion` avec la valeur `true`. Vous ne pouvez pas modifier ces propriétés après la création de la clé KMS. 

L'`CreateKey`opération ne vous permet pas de spécifier un alias, mais vous pouvez l'[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)utiliser pour créer un alias pour votre nouvelle clé KMS. Nous vous recommandons d'utiliser un alias qui identifie la clé KMS en tant que clé HMAC, comme `HMAC/test-key`. Cela vous permettra d'identifier plus facilement vos clés HMAC dans la AWS KMS console, où vous pourrez trier et filtrer les clés par alias, mais pas par spécification ou utilisation des clés.

Si vous essayez de créer une clé HMAC KMS dans un fichier Région AWS dans lequel les clés HMAC ne sont pas prises en charge, l'`CreateKey`opération renvoie un `UnsupportedOperationException`

L'exemple suivant utilise l'opération `CreateKey` pour créer une clé KMS HMAC de 512 bits.

```
$ aws kms create-key --key-spec HMAC_512 --key-usage GENERATE_VERIFY_MAC
{
    "KeyMetadata": {
        "KeyState": "Enabled",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "Description": "",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": 1669973196.214,
        "MultiRegion": false,
        "KeySpec": "HMAC_512",
        "CustomerMasterKeySpec": "HMAC_512",
        "KeyUsage": "GENERATE_VERIFY_MAC",
        "MacAlgorithms": [
            "HMAC_SHA_512"
        ],
        "AWSAccountId": "111122223333",
        "Origin": "AWS_KMS",
        "Enabled": true
    }
}
```