Comment AWS Systems Manager Parameter Store utilise AWS KMS - 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.

Comment AWS Systems Manager Parameter Store utilise AWS KMS

Avec AWS Systems Manager Parameter Store, vous pouvez créer des paramètres de chaîne sécurisée, qui sont des paramètres dont le nom est en texte brut et la valeur est chiffrée. Parameter Store utilise AWS KMS pour chiffrer et déchiffrer les valeurs des paramètres de chaîne sécurisée.

Avec Parameter Store, vous pouvez créer, stocker et gérer des données sous forme de paramètres assortis de valeurs. Vous pouvez créer un paramètre dans Parameter Store et l'utiliser dans plusieurs applications et services soumis aux stratégies et aux autorisations que vous concevez. Lorsque vous avez besoin de modifier une valeur de paramètre, au lieu de gérer une modification sujette à erreurs dans diverses sources, vous modifiez une seule instance. Sachant que Parameter Store peut prendre en charge une structure hiérarchique de noms de paramètres, vous pouvez limiter un paramètre à des utilisations spécifiques.

Pour gérer des données sensibles, vous pouvez créer des paramètres de chaîne sécurisée. Parameter Store se sert de AWS KMS keys pour chiffrer les valeurs de paramètres de chaîne sécurisés au moment où vous les créez ou les modifiez. Il utilise également des clés KMS pour déchiffrer les valeurs de paramètres au moment où vous y accédez. Vous pouvez utiliser la Clé gérée par AWS créée par Parameter Store pour votre compte ou spécifier votre propre clé gérée par le client.

Important

Le Parameter Store prend uniquement en charge les clés KMS symétriques. Vous ne pouvez pas utiliser une clé KMS asymétrique pour chiffrer vos paramètres. Pour obtenir de l'aide sur la détermination de la symétrie ou de l'asymétrie d'une clé KMS, veuillez consulter Identification des clés KMS asymétriques.

Parameter Store prend en charge deux niveaux de paramètres de chaîne sécurisée : Standard et Avancé. Les paramètres standard, qui ne peuvent pas dépasser 4 096 octets, sont chiffrés et déchiffrés directement sous la clé KMS que vous spécifiez. Pour chiffrer et déchiffrer les paramètres de chaîne sécurisée avancés, Parameter Store utilise le chiffrement d'enveloppe avec le kit AWS Encryption SDK. Vous pouvez convertir un paramètre de chaîne sécurisée standard en un paramètre avancé, mais vous ne pouvez pas convertir un paramètre avancé en paramètre standard. Pour plus d'informations sur la différence entre les paramètres de chaîne sécurisée standard et avancés, veuillez consulter À propos des paramètres avancés de Systems Manager dans le Guide de l'utilisateur AWS Systems Manager.

Protection des paramètres standard de chaîne sécurisée

Parameter Store n'assure aucune opération cryptographique. Au lieu de cela, il s'appuie sur AWS KMS pour chiffrer et déchiffrer les valeurs de paramètres de chaîne sécurisée. Lorsque vous créez ou modifiez une valeur de paramètre de chaîne sécurisée standard, Parameter Store appelle l'opération AWS KMS Encrypt. Cette opération utilise directement une clé KMS de chiffrement symétrique pour chiffrer la valeur de paramètre au lieu d'utiliser la clé KMS pour générer une clé de données.

Vous pouvez sélectionner la clé KMS dont se sert Parameter Store pour chiffrer la valeur de paramètre. Si vous ne spécifiez pas de clé KMS, Parameter Store utilise la Clé gérée par AWS que Systems Manager crée automatiquement dans votre compte. Cette clé KMS possède l'alias aws/ssm.

Pour afficher la clé aws/ssm KMS par défaut de votre compte, utilisez l'DescribeKeyopération dans l'AWS KMSAPI. Dans l'exemple suivant, la commande describe-key de l'AWS Command Line Interface (AWS CLI) est utilisée avec le nom d'alias aws/ssm.

aws kms describe-key --key-id alias/aws/ssm

Pour créer un paramètre de chaîne sécurisé standard, utilisez l'PutParameteropération de l'API Systems Manager. Omettez le paramètre Tier ou spécifiez une valeur Standard, qui est la valeur par défaut. Incluez un paramètre Type avec la valeur SecureString. Pour spécifier une clé KMS, utilisez le paramètre KeyId. La valeur par défaut est la Clé gérée par AWS pour votre compte, aws/ssm.

Parameter Store appelle alors l'opération Encrypt AWS KMS avec la clé KMS et la valeur du paramètre en texte brut. AWS KMS renvoie la valeur chiffrée du paramètre, que Parameter Store stocke avec le nom du paramètre.

Dans l'exemple suivant, la commande Systems Manager put-parameter et son paramètre --type sont utilisés dans l'AWS CLI pour créer un paramètre de chaîne sécurisée. Comme la commande omet les paramètres facultatifs --tier et --key-id, Parameter Store crée un paramètre de chaîne sécurisée standard et le chiffre conformément à la Clé gérée par AWS.

aws ssm put-parameter --name MyParameter --value "secret_value" --type SecureString

Dans l'exemple similaire suivant, le paramètre --key-id est utilisé pour spécifier une clé gérée par le client. Cet exemple utilise un ID de clé KMS pour identifier la clé KMS, mais vous pouvez utiliser n'importe quel identifiant de clé KMS valide. Comme la commande omet le paramètre Tier (--tier), Parameter Store crée un paramètre de chaîne sécurisée standard, et non un paramètre avancé.

aws ssm put-parameter --name param1 --value "secret" --type SecureString --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

Lorsque vous obtenez un paramètre de chaîne sécurisée à partir de Parameter Store, sa valeur est chiffrée. Pour obtenir un paramètre, utilisez l'GetParameter opération dans l'API Systems Manager.

Dans l'exemple suivant, la commande Systems Manager get-parameter est utilisée dans l'AWS CLI pour obtenir le paramètre MyParameter à partir de Parameter Store sans déchiffrer sa valeur.

$ aws ssm get-parameter --name MyParameter { "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "AQECAHgnOkMROh5LaLXkA4j0+vYi6tmM17Lg/9E464VRo68cvwAAAG8wbQYJKoZIhvcNAQcGoGAwXgIBADBZBgkqhkiG9w0BBwEwHgYJYZZIAWUDBAEuMBEEDImYOw44gna0Jm00hAIBEIAsjgr7mum1EnnXzE3xM8bGle0oKYcfVCHtBkfjIeZGTgL6Hg0fSDnpMHdcSXY=" } }

Pour déchiffrer la valeur du paramètre avant de la renvoyer, définissez le paramètre WithDecryption de GetParameter sur true. Lorsque vous utilisez WithDecryption, Parameter Store appelle l'opération AWS KMS Decrypt en votre nom pour déchiffrer la valeur du paramètre. En conséquence, la demande GetParameter renvoie le paramètre avec une valeur de paramètre en texte brut, comme le montre l'exemple suivant.

$ aws ssm get-parameter --name MyParameter --with-decryption { "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "secret_value" } }

Le flux de travail suivant montre comment le stockage des paramètres utilise une clé KMS pour chiffrer et déchiffrer un paramètre de chaîne sécurisée standard.

Chiffrer un paramètre standard

  1. Lorsque vous utilisez PutParameter pour créer un paramètre de chaîne sécurisée, Parameter Store envoie une demande Encrypt à AWS KMS. Cette demande inclut la valeur du paramètre en texte brut, la clé KMS que vous avez choisie et le contexte de chiffrement Parameter Store. Pendant la transmission à AWS KMS, la valeur en texte brut du paramètre de chaîne sécurisée est protégée par le protocole TLS (Transport Layer Security).

  2. AWS KMS chiffre la valeur du paramètre avec la clé KMS spécifiée et le contexte de chiffrement. Il renvoie le texte chiffré à Parameter Store, qui stocke le nom du paramètre et sa valeur chiffrée.

    
              Chiffrement d'une valeur de paramètre de chaîne sécurisée standard

Déchiffrer un paramètre standard

  1. Lorsque vous incluez le paramètre WithDecryption dans une demande GetParameter, Parameter Store envoie une demande Decrypt à AWS KMS avec la valeur chiffrée du paramètre de chaîne sécurisée et le contexte de chiffrement Parameter Store.

  2. AWS KMS utilise la même clé KMS et le contexte de chiffrement fourni pour déchiffrer la valeur chiffrée. Il renvoie la valeur du paramètre (déchiffrée) en texte brut à Parameter Store. Pendant la transmission, les données en texte brut sont protégées par TLS.

  3. Parameter Store vous renvoie la valeur du paramètre en texte brut dans la réponse GetParameter.

Protection avancée des paramètres de chaîne sécurisée

Lorsque vous utilisez PutParameter pour créer un paramètre de chaîne sécurisée avancé, Parameter Store utilise l'enveloppe de chiffrement avec le kit AWS Encryption SDK et une AWS KMS key de chiffrement symétrique pour protéger la valeur du paramètre. Chaque valeur de paramètre avancé est chiffrée sous une clé de données unique, et la clé de données est chiffrée sous une clé KMS. Vous pouvez utiliser la Clé gérée par AWS pour le compte (aws/ssm) ou n'importe quelle clé gérée par le client.

La bibliothèque AWS Encryption SDK est une bibliothèque côté client et open source qui vous permet de chiffrer et de déchiffrer les données à l'aide des normes et des bonnes pratiques. Elle est prise en charge sur plusieurs plateformes et dans plusieurs langages de programmation, y compris une interface de ligne de commande. Vous pouvez consulter le code source et contribuer à son développement dans GitHub.

Pour chaque valeur de paramètre de chaîne sécurisée, Parameter Store appelle le AWS Encryption SDK pour chiffrer la valeur du paramètre à l'aide d'une clé de données unique qui AWS KMS génère (GenerateDataKey). Le kit AWS Encryption SDK renvoie à Parameter Store un message chiffré qui inclut la valeur du paramètre chiffrée et une copie chiffrée de la clé de données unique. Parameter Store stocke l'intégralité du message chiffré dans la valeur du paramètre de chaîne sécurisée. Ensuite, lorsque vous obtenez une valeur de paramètre de chaîne sécurisée avancé, Parameter Store utilise le kit AWS Encryption SDK pour déchiffrer la valeur du paramètre. Ceci nécessite un appel à AWS KMS pour déchiffrer la clé de données chiffrée.

Pour créer un paramètre de chaîne sécurisé avancé, utilisez l'PutParameteropération de l'API Systems Manager. Définissez la valeur du paramètre Tier sur Advanced. Incluez un paramètre Type avec la valeur SecureString. Pour spécifier une clé KMS, utilisez le paramètre KeyId. La valeur par défaut est la Clé gérée par AWS pour votre compte, aws/ssm.

aws ssm put-parameter --name MyParameter --value "secret_value" --type SecureString --tier Advanced

Dans l'exemple similaire suivant, le paramètre --key-id est utilisé pour spécifier une clé gérée par le client. Cet exemple utilise l'Amazon Resource Name (ARN) de la clé KMS, mais vous pouvez utiliser tout identifiant de clé KMS valide.

aws ssm put-parameter --name MyParameter --value "secret_value" --type SecureString --tier Advanced --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Lorsque vous obtenez un paramètre de chaîne sécurisée à partir de Parameter Store, sa valeur est le message chiffré que le kit AWS Encryption SDK a renvoyé. Pour obtenir un paramètre, utilisez l'GetParameter opération dans l'API Systems Manager.

L'exemple suivant utilise l'opération GetParameter Systems Manager pour obtenir le paramètre MyParameter à partir de Parameter Store sans déchiffrement de sa valeur.

$ aws ssm get-parameter --name MyParameter { "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "AQECAHgnOkMROh5LaLXkA4j0+vYi6tmM17Lg/9E464VRo68cvwAAAG8wbQYJKoZIhvcNAQcGoGAwXgIBADBZBgkqhkiG9w0BBwEwHgYJYZZIAWUDBAEuMBEEDImYOw44gna0Jm00hAIBEIAsjgr7mum1EnnXzE3xM8bGle0oKYcfVCHtBkfjIeZGTgL6Hg0fSDnpMHdcSXY=" } }

Pour déchiffrer la valeur du paramètre avant de la renvoyer, définissez le paramètre WithDecryption de GetParameter sur true. Lorsque vous utilisez WithDecryption, Parameter Store appelle l'opération AWS KMS Decrypt en votre nom pour déchiffrer la valeur du paramètre. En conséquence, la demande GetParameter renvoie le paramètre avec une valeur de paramètre en texte brut, comme le montre l'exemple suivant.

$ aws ssm get-parameter --name MyParameter --with-decryption { "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "secret_value" } }

Vous ne pouvez pas convertir un paramètre de chaîne sécurisée avancé en un paramètre standard, mais vous pouvez convertir un paramètre de chaîne sécurisée standard en paramètre avancé. Pour convertir un paramètre de chaîne sécurisée standard en chaîne sécurisée avancée, utilisez l'opération PutParameter avec le paramètre Overwrite. Le Type doit être SecureString et la valeur Tier doit être Advanced. Le paramètre KeyId, qui identifie une clé gérée par le client, est facultatif. Si vous l'omettez, Parameter Store utilise la Clé gérée par AWS pour le compte. Vous pouvez spécifier n'importe quelle clé KMS que le principal est autorisé à utiliser, même si vous avez utilisé une autre clé KMS pour chiffrer le paramètre standard.

Lorsque vous utilisez le paramètre Overwrite, Parameter Store utilise le kit AWS Encryption SDK pour chiffrer la valeur du paramètre. Ensuite, il stocke le nouveau message chiffré dans Parameter Store.

$ aws ssm put-parameter --name myStdParameter --value "secret_value" --type SecureString --tier Advanced --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --overwrite

Le flux de travail suivant montre comment Parameter Store utilise une clé KMS pour chiffrer et déchiffrer un paramètre de chaîne sécurisée avancé.

Chiffrer un paramètre avancé

  1. Lorsque vous utilisez PutParameter pour créer un paramètre de chaîne sécurisée avancé, Parameter Store utilise le kit AWS Encryption SDK et AWS KMS pour chiffrer la valeur du paramètre. Parameter Store appelle le kit AWS Encryption SDK avec la valeur du paramètre, la clé KMS que vous avez spécifiée et le contexte de chiffrement Parameter Store.

  2. AWS Encryption SDKEnvoie une GenerateDataKeydemande AWS KMS avec l'identifiant de la clé KMS que vous avez spécifiée et le contexte de chiffrement du Parameter Store. AWS KMSrenvoie deux copies de la clé de données unique : l'une en texte brut et l'autre cryptée sous la clé KMS. (Le contexte de chiffrement est utilisé lors du chiffrement de la clé de données.)

  3. Le kit AWS Encryption SDK utilise la clé de données en texte brut pour chiffrer les données. Elle renvoie un message chiffré qui inclut la valeur du paramètre chiffré, la clé de données chiffrée, et d'autres données, y compris le contexte de chiffrement Parameter Store.

  4. Parameter Store stocke le message chiffré en tant que valeur de paramètre.

    
              Chiffrement d'une valeur de paramètre de chaîne sécurisée avancé

Déchiffrer un paramètre avancé

  1. Vous pouvez inclure le paramètre WithDecryption dans une demande GetParameter pour obtenir un paramètre de chaîne sécurisée avancé. Lorsque vous le faites, Parameter Store transmet le message chiffré de la valeur de paramètre à une méthode de déchiffrement du kit AWS Encryption SDK.

  2. Le kit AWS Encryption SDK appelle l'opération AWS KMS Decrypt. Il transmet la clé de données chiffrée et le contexte de chiffrement Parameter Store depuis le message chiffré.

  3. AWS KMS utilise la clé KMS et le contexte de chiffrement Parameter Store pour déchiffrer la clé de données chiffrée. Ensuite, il renvoie la clé de données en texte brut (déchiffrée) au kit AWS Encryption SDK.

  4. Le kit AWS Encryption SDK utilise la clé de données en texte brut pour déchiffrer la valeur du paramètre. Il renvoie la valeur du paramètre en texte brut à Parameter Store.

  5. Parameter Store vérifie le contexte de chiffrement et renvoie la valeur du paramètre en texte brut dans la réponse GetParameter.

Définition d'autorisations de chiffrement et de déchiffrement des valeurs de paramètres

Pour chiffrer une valeur de paramètre de chaîne sécurisée standard, l'utilisateur a besoin d'une autorisation kms:Encrypt. Pour chiffrer une valeur de paramètre de chaîne sécurisée avancée, l'utilisateur a besoin d'une autorisation kms:GenerateDataKey. Pour déchiffrer n'importe quel type de valeur de paramètre de chaîne sécurisée, l'utilisateur a besoin d'une autorisation kms:Decrypt.

Vous pouvez utiliser des stratégies IAM pour accorder ou refuser l'autorisation à un utilisateur d'appeler les opérations Systems Manager PutParameter et GetParameter.

De plus, si vous utilisez les clés gérées par le client pour chiffrer les valeurs de vos paramètres de chaîne sécurisée, vous pouvez utiliser des stratégies IAM et des stratégies de clé pour gérer les autorisations de chiffrement et de déchiffrement. Cependant, vous ne pouvez pas établir de stratégies de contrôle d'accès pour la clé KMS aws/ssm par défaut. Pour en savoir plus sur le contrôle d'accès aux clés gérées par le client, veuillez consulter Authentification et contrôle d'accès pour AWS KMS.

L'exemple suivant montre une stratégie IAM conçue pour les paramètres de chaîne de sécurité standard. Elle permet à l'utilisateur d'appeler l'opération PutParameter Systems Manager sur tous les paramètres du chemin FinancialParameters. Cette stratégie permet également à l'utilisateur d'appeler l'opération AWS KMS Encrypt sur la clé d'exemple gérée par le client.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/FinancialParameters/*" }, { "Effect": "Allow", "Action": [ "kms:Encrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }

L'exemple suivant illustre une stratégie IAM conçue pour les paramètres de chaîne de sécurité avancés. Elle permet à l'utilisateur d'appeler l'opération PutParameter Systems Manager sur tous les paramètres du chemin ReservedParameters. Cette stratégie permet également à l'utilisateur d'appeler l'opération AWS KMS GenerateDataKey sur la clé d'exemple gérée par le client.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/ReservedParameters/*" }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }

Le dernier exemple montre également une stratégie IAM qui peut être utilisée pour les paramètres de chaîne de sécurité avancés ou standard. Elle permet à l'utilisateur d'appeler les opérations GetParameter Systems Manager (et les opérations associées) sur tous les paramètres du chemin ITParameters. Cette stratégie permet également à l'utilisateur d'appeler l'opération AWS KMS Decrypt sur la clé d'exemple gérée par le client.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/ITParameters/*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }

Contexte de chiffrement Parameter Store

Un contexte de chiffrement est un ensemble de paires clé-valeur qui contiennent des données non secrètes arbitraires. Lorsque vous incluez un contexte de chiffrement dans une demande de chiffrement de données, AWS KMS lie de manière chiffrée le contexte de chiffrement aux données chiffrées. Pour déchiffrer les données, vous devez transmettre le même contexte de chiffrement.

Vous pouvez également utiliser le contexte de chiffrement pour identifier une opération de chiffrement dans des enregistrements d'audit et des journaux. Le contexte de chiffrement s'affiche en texte brut dans les journaux, tels que les journaux AWS CloudTrail.

Le kit AWS Encryption SDK accepte aussi un contexte de chiffrement, même s'il peut le gérer différemment. Parameter Store fournit le contexte de chiffrement à la méthode de chiffrement. Le kit AWS Encryption SDK lie cryptographiquement le contexte de chiffrement aux données chiffrées. Il inclut aussi le contexte de chiffrement en texte brut dans l'en-tête du message chiffré qu'il renvoie. Toutefois, contrairement à AWS KMS, les méthodes de déchiffrement AWS Encryption SDK ne prennent pas un contexte de chiffrement comme entrée. Au lieu de cela, lorsqu'il déchiffre des données, le kit AWS Encryption SDK obtient le contexte de chiffrement à partir du message chiffré. Parameter Store vérifie que le contexte de chiffrement inclut la valeur qu'il attend avant de vous renvoyer la valeur du paramètre en texte brut.

Parameter Store utilise le contexte de chiffrement suivant dans ses opérations cryptographiques :

  • Clé : PARAMETER_ARN

  • Valeur : Amazon Resource Name (ARN) du paramètre chiffré.

Le format du contexte de chiffrement est le suivant :

"PARAMETER_ARN":"arn:aws:ssm:<REGION_NAME>:<ACCOUNT_ID>:parameter/<parameter-name>"

Par exemple, Parameter Store inclut ce contexte de chiffrement dans les appels à chiffrer et déchiffrer le paramètre MyParameter dans un exemple de compte et de région Compte AWS.

"PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter"

Si le paramètre se trouve dans le chemin hiérarchique de Parameter Store, le chemin et le nom sont inclus dans le contexte de chiffrement. Par exemple, ce contexte de chiffrement est utilisé lors du chiffrement et du déchiffrement du paramètre MyParameter dans le chemin /ReadableParameters d'un exemple de compte et de région Compte AWS.

"PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/ReadableParameters/MyParameter"

Vous pouvez déchiffrer une valeur chiffrée de paramètre de chaîne sécurisée en appelant l'opération AWS KMS Decrypt avec le contexte de chiffrement adéquat et la valeur chiffrée du paramètre renvoyée par l'opération Systems Manager GetParameter. Cependant, nous vous encourageons à déchiffrer les valeurs de paramètre Parameter Store à l'aide de l'opération GetParameter avec le paramètre WithDecryption.

Vous pouvez également inclure le contexte de chiffrement dans une stratégie IAM. Par exemple, vous pouvez autoriser un utilisateur à déchiffrer la valeur d'un seul et même paramètre ou les valeurs d'un ensemble de paramètres.

L'exemple suivant d'instruction de stratégie IAM permet à l'utilisateur d'obtenir la valeur du paramètre MyParameter et de déchiffrer sa valeur à l'aide de la clé KMS spécifiée. Toutefois, les autorisations s'appliquent uniquement lorsque le contexte de chiffrement correspond à la chaîne spécifiée. Ces autorisations ne s'appliquent à aucun autre paramètre ou à aucune autre clé KMS, et l'appel de GetParameter échoue si le contexte de chiffrement ne correspond pas à la chaîne.

Avant d'utiliser une déclaration de stratégie comme celle-ci, remplacez les exemples d'ARN avec des valeurs valides.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "kms:EncryptionContext:PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter" } } } ] }

Résolution des problèmes de clés KMS dans Parameter Store

Pour effectuer une opération sur un paramètre de chaîne sécurisée, Parameter Store doit pouvoir utiliser la clé KMS AWS KMS que vous spécifiez pour l'opération en question. La plupart des échecs de Parameter Store liés aux clés KMS sont imputables aux problèmes suivants :

  • Les informations d'identification utilisées par une application ne disposent pas des autorisations nécessaires pour effectuer l'action spécifiée sur la clé KMS.

    Pour corriger cette erreur, exécutez l'application avec d'autres informations d'identification ou corrigez la politique IAM ou la politique de clé qui empêche l'opération. Pour obtenir de l'aide concernant les stratégies IAM et de clé AWS KMS, consultez Authentification et contrôle d'accès pour AWS KMS.

  • La clé KMS est introuvable.

    Cela se produit généralement lorsque vous utilisez un identificateur incorrect pour la clé KMS. Procurez-vous les identificateurs corrects pour la clé KMS et tentez à nouveau la commande.

  • La clé KMS n'est pas activée. Dans ce cas, Parameter Store renvoie une InvalidKeyIdexception avec un message d'erreur détaillé provenant deAWS KMS. Si la clé KMS est à l'état Disabled, activez-la. Si l'état est Pending Import, suivez la procédure d'importation. Si la clé est à l'état Pending Deletion, annulez la suppression de la clé ou utilisez une autre clé KMS.

    Pour obtenir l'état de la clé d'une clé KMS dans la console AWS KMS, sur la page Clés gérées par le client ou Clés gérées par AWS, veuillez consulter la colonne Status (Statut). Pour utiliser l'AWS KMSAPI afin de connaître l'état d'une clé KMS, utilisez l'DescribeKeyopération.