Tous les produits
Search
Centre de documentation

Key Management Service:FAQ : Accès aux applications

Dernière mise à jour :Sep 21, 2026

Cette rubrique décrit les problèmes courants rencontrés lorsqu'une application utilise un SDK pour accéder à une instance Key Management Service (KMS).

Liste des problèmes

Erreur « no such host » ou « not known »

Problème

  • Lorsqu'une application utilise le SDK KMS Instance pour Go afin d'accéder à une instance KMS, l'erreur suivante s'affiche : kst-xxx.cryptoservice.kms.aliyuncs.com: no such host.

  • Lorsqu'une application utilise le SDK KMS Instance pour Java afin d'accéder à une instance KMS, l'erreur suivante s'affiche : kst-xxx.cryptoservice.kms.aliyuncs.com: nodename nor servname provided, or not known.

Cause

Une instance KMS est un service dédié de gestion des clés et des secrets auquel vous ne pouvez accéder que depuis un Virtual Private Cloud (VPC) associé.

Solution

Erreur « Forbidden.NoPermission » lors de l'utilisation d'un AAP

Problème

Lorsque vous accédez à une instance KMS, la description de l'erreur ou le message d'exception du SDK contient les éléments suivants : Forbidden.NoPermission : This operation is forbidden by permission system.

Solution

Cette erreur survient car la stratégie d'autorisations du point d'accès applicatif (AAP) n'accorde pas les autorisations requises pour les clés ou les secrets sous RBAC Permissions et Accessible Resources. Pour plus d'informations, consultez la section Créer un point d'accès applicatif.

Erreur « ...forbidden by permission system » lors de la récupération d'un secret

Problème

Lorsque vous récupérez une valeur de secret, la description de l'erreur ou le message d'exception du SDK renvoyé par KMS contient les éléments suivants : This operation for key-xxxxxx is forbidden by permission system.

Le code suivant fournit un exemple de message d'exception du SDK KMS Instance pour Java :

Connected to the target VM, address: '127.0.xxx', transport: 'socket'
Exception in thread "main" com.aliyun.tea.TeaException Create breakpoint : This operation for key-hzz6xxx xxx is forbidden by permission system.
    at com.aliyun.dkms.gcs.openapi.Client.doRequest(Client.java:159)
    at com.aliyun.dkms.gcs.sdk.Client.getSecretValueWithOptions(Client.java:190)
    at com.aliyun.dkms.gcs.sdk.Client.getSecretValue(Client.java:213)
    at com.yqn.center.user.config.RdsSecretSampleCode.main(RdsSecretSampleCode.java:209)
Disconnected from the target VM, address: '127.0.xxx', transport: 'socket'
Process finished with exit code 1

Cause

Votre application ne dispose pas de l'autorisation nécessaire pour utiliser la clé afin de déchiffrer les données.

Lorsque vous créez un secret, vous sélectionnez une clé au sein de la même instance KMS pour le chiffrement. Pour récupérer le secret, votre application doit non seulement disposer d'une autorisation d'accès au secret, mais aussi de l'autorisation d'utiliser la clé correspondante pour le déchiffrement.

Solution

  • Scénario 1 : Accès à KMS via un point d'accès applicatif (AAP) à l'aide d'une ClientKey

    Modifiez la stratégie d'autorisations de l'AAP pour accorder à l'application l'autorisation d'utiliser la clé afin de déchiffrer les données.

    1. Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Application Access > Access Control (Formerly Access Point) .

    2. Cliquez sur le nom de l'AAP cible pour accéder à la page Details.

    3. Dans la colonne Actions de la stratégie d'autorisations, cliquez sur Modify. Configurez les paramètres suivants et cliquez sur Update.

      • RBAC Permissions : Sélectionnez CryptoServiceKeyUser.

      • Accessible Resources : Dans la section Available Resources, sélectionnez la clé et cliquez sur l'icône image.png. Vous pouvez également cliquer sur l'icône 加号 située à côté de Selected Resources pour ajouter une clé au format key/key_id. Exemple : key/key-hzz6xxxxxx.

  • Scénario 2 : Accès à KMS à l'aide de la paire AccessKey d'un utilisateur RAM ou en endossant un rôle RAM

    Modifiez la stratégie d'autorisations RAM pour accorder à l'application l'autorisation d'utiliser la clé afin de déchiffrer les données.

    1. Connectez-vous à la console RAM.

    2. Dans le volet de navigation de gauche, choisissez Permissions > Policies.

    3. Recherchez la stratégie d'autorisations attachée à votre utilisateur RAM ou à votre rôle RAM et cliquez sur le nom de la stratégie.

    4. Sous l'onglet Policy Document, cliquez sur Modify Policy Document. Ajoutez le script suivant à la section Statement et cliquez sur Continue to edit basic information.

              {
                  "Effect": "Allow",
                  "Action": "kms:Decrypt",
                  "Resource": "acs:kms:${region}:${account}:key/keyId-example"
              }

      Pour plus d'informations sur les stratégies d'autorisations, consultez la section Stratégies d'autorisations personnalisées pour Key Management Service.

Erreur « Forbidden.KeyNotFound »

Cause : Dans la plupart des cas, la région, l'ID de clé ou l'alias spécifié dans la requête ne correspond pas à celui utilisé pour le chiffrement.

Solution : Assurez-vous que la région, l'ID de clé ou l'alias utilisé pour le déchiffrement correspond à celui utilisé pour le chiffrement.

Erreur « UnsupportedOperation »

  • Configuration incorrecte de l'accès réseau

    • Cause : Votre application utilise un SDK Alibaba Cloud standard, et non un SDK spécifique à KMS, pour effectuer des opérations cryptographiques sur une clé issue d'une instance KMS.

    • Solution :

      1. Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Resources > Instances.

      2. Dans la liste des instances, cliquez sur l'ID de l'instance cible. Sur la page des détails, activez l'interrupteur Public Network Access dans la section RD Multi-Account.

        Remarque

        Si une instance KMS est partagée entre plusieurs comptes Alibaba Cloud, vous pouvez définir les autorisations d'accès au réseau public pour chaque compte.

      3. Sous l'onglet Basic Information de la page des détails de l'instance, recherchez le Public Endpoint. L'endpoint s'affiche après l'activation de l'accès au réseau public et présente un format similaire à kms.cn-hangzhou.aliyuncs.com.

  • Type de clé incorrect

    • Cause : Votre application utilise une clé de service lorsqu'elle appelle une opération API cryptographique, telle que Encrypt, Decrypt ou GenerateDataKey, via un SDK.

    • Solution : Pour les opérations cryptographiques, utilisez directement une customer master key (CMK), et non une clé de service gérée par un autre service cloud.

  • Incompatibilité entre l'algorithme de clé et l'API

    • Scénario 1 : Chiffrement, déchiffrement et génération de clés de données

      • Lorsque vous appelez l'opération GenerateDataKey, l'algorithme de la customer master key (CMK) est un algorithme asymétrique tel que RSA, ECC .

      • Solution : Assurez-vous que l'algorithme de la CMK est un algorithme symétrique tel qu'AES , et que l'utilisation de la clé est définie sur ENCRYPT/DECRYPT.

    • Scénario 2 : Signature et vérification

      • Lorsque vous appelez l'opération Sign ou Verify, l'algorithme de la customer master key (CMK) est un algorithme cryptographique symétrique tel qu'AES .

      • Solution : Assurez-vous que l'algorithme de la CMK est un algorithme asymétrique tel que RSA, ECC , et que l'utilisation de la clé est définie sur SIGN/VERIFY.

Erreur « Unable to find valid certification path »

Cause possible 1 : Vous avez sélectionné le certificat CA correspondant à la mauvaise instance KMS

  1. Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Resources > Instances.

  2. Sur la page Instances, cliquez sur Download dans la colonne Instance CA Certificate.

  3. Dans la boîte de dialogue Instance CA Certificate, sélectionnez l'ID de l'instance, cliquez sur Download, puis stockez le certificat dans un emplacement sécurisé.

    Par défaut, le certificat CA téléchargé est nommé PrivateKmsCA_kst-.pem. Vous pouvez intégrer ce certificat au SDK pour vérifier l'authenticité et la validité du certificat SSL du service d'instance KMS.

Cause possible 2 : Une version incorrecte du SDK est installée

Nous vous recommandons d'installer la dernière version du SDK. La liste suivante fournit les adresses des dépôts open source des SDK :

Impossible de résoudre le nom de domaine de l'instance KMS

Problème

Dans le VPC auquel appartient l'instance KMS ou dans un VPC associé, une application ne peut pas accéder au nom de domaine de l'instance KMS. Par exemple, la commande ping kst-hzz62****.cryptoservice.kms.aliyuncs.com échoue à résoudre le nom de domaine et le message renvoyé contient « cannot resolve ».

Solution

Vérifiez si la configuration DNS de votre serveur utilise les serveurs DNS Alibaba Cloud par défaut : 100.100.2.136 et 100.100.2.138. Pour plus d'informations, consultez la section Dois-je modifier la configuration DNS du serveur pour utiliser PrivateZone ?.

Erreur « Incorrect ClientKey password »

Problème

  • Lorsque vous utilisez le SDK KMS Instance pour Java afin d'accéder à une instance KMS, l'erreur suivante s'affiche : java.io.IOException: keystore password was incorrect.

  • Lorsque vous utilisez le SDK KMS Instance pour PHP afin d'accéder à une instance KMS, l'erreur suivante s'affiche : Could not decrypt the privateKey of clientKey, the password is incorrect,or it is not a valid pkcs12.

  • Lorsque vous utilisez le SDK KMS Instance pour Go afin d'accéder à une instance KMS, l'erreur suivante s'affiche : panic: pkcs12: decryption password incorrect.

  • Lorsque vous utilisez le SDK KMS Instance pour Python afin d'accéder à une instance KMS, l'erreur suivante s'affiche : OpenSSL.crypto.Error: [('PKCS12 routines', '', 'mac verify failure')].

Cause

Le mot de passe spécifié pour la ClientKey est incorrect.

Solution

  • Vérifiez si le mot de passe de la ClientKey respecte les exigences de format. Si ce n'est pas le cas, créez une nouvelle ClientKey. Pour plus d'informations, consultez la section Créer une ClientKey.

    Un mot de passe de ClientKey doit comporter entre 8 et 64 caractères et contenir au moins deux des types de caractères suivants : chiffres (0-9), lettres minuscules (a-z), lettres majuscules (A-Z) et caractères spéciaux (~!@#$%^&*?_-).

  • Si vous lisez le mot de passe de la ClientKey à partir d'un fichier, assurez-vous que le fichier est un fichier texte brut contenant uniquement une seule ligne correspondant au mot de passe. Le fichier ne doit pas contenir de caractères superflus tels que des sauts de ligne ou des tabulations.

Code d'état HTTP 413

Le corps de la requête, après encodage avec Protocol Buffers, ne doit pas dépasser 3 Mo. Les requêtes dépassant cette limite sont rejetées avec un code d'état HTTP 413.

  • Chiffrement et déchiffrement : Nous vous recommandons de ne pas dépasser 6 Ko de données par opération pour les clés symétriques ou 1 Ko pour les clés asymétriques. Pour des volumes de données plus importants, utilisez le chiffrement par enveloppe.

  • Signature et vérification : Si un message à signer est volumineux, nous vous recommandons de générer localement un condensé du message dans votre application, puis d'appeler l'opération Sign ou Verify pour signer ou vérifier le condensé.

Erreur « UnknownHostException »

Problème

Lorsque votre application utilise le SDK KMS Instance pour Java afin d'accéder à une instance KMS, l'erreur suivante s'affiche : Caused by: java.net.UnknownHostException: kst-hzz664da459rvtjtd****.cryptoservice.kms.aliyuncs.com.

Solution

  1. Vérifiez que l'environnement de votre application dispose d'une connectivité réseau vers le VPC de l'instance KMS.

    Si le VPC de votre application et l'instance KMS se trouvent dans la même région, associez le VPC à l'instance KMS. Pour plus d'informations, consultez la section Accéder à une instance KMS depuis plusieurs VPC dans la même région. Pour les autres scénarios, consultez les solutions suivantes.

    • Cross-VPC interconnection solutions

      Vous pouvez utiliser Cloud Enterprise Network (CEN), VPN Gateway, une connexion d'appairage VPC ou PrivateLink pour permettre la communication privée entre les VPC. Pour obtenir des informations sur les fonctionnalités et la configuration de ces solutions, consultez la section Interconnexion VPC.

    • Connecting a VPC to the internet

      Vous pouvez utiliser une adresse IP publique statique d'une instance ECS, une Elastic IP Address, une passerelle NAT ou Server Load Balancer (SLB) pour permettre aux ressources cloud d'un VPC d'accéder à Internet ou d'être accessibles depuis Internet. Pour plus d'informations, consultez la section Accès au réseau public.

    • Connecting a VPC to an on-premises data center

      Vous pouvez utiliser une passerelle VPN, un circuit Express Connect ou Smart Access Gateway pour connecter votre centre de données sur site à un VPC dans le cloud et construire un cloud hybride. Pour plus d'informations, consultez la section Connecter un VPC à un centre de données sur site ou à un autre cloud.

  2. Assurez-vous que la résolution des noms de domaine du VPC KMS est correctement configurée. Pour obtenir des informations sur les paramètres de résolution DNS, consultez la section Présentation de la résolution DNS interne.

La gestion des secrets KMS est-elle prise en charge sur Android ?

Non, la fonctionnalité de gestion des secrets n'est actuellement pas prise en charge sur Android.

L'endpoint KMS est inaccessible

Ce problème survient généralement parce que le protocole HTTPS n'est pas activé lorsque vous utilisez un SDK pour accéder à KMS.

Afin de garantir la sécurité des données, les endpoints KMS prennent uniquement en charge le protocole HTTPS. Lorsque vous utilisez un SDK pour accéder à un endpoint KMS, exécutez le code suivant pour vous assurer que HTTPS est activé pour KMS.

req.setProtocol(ProtocolType.HTTPS);

Un centre de données sur site ne peut pas accéder à une instance KMS

Problème

Un centre de données sur site est connecté à un VPC Alibaba Cloud. Sans configuration supplémentaire, le centre de données sur site ne peut pas accéder à une instance KMS en utilisant le nom de domaine kms.aliyuncs.com configuré dans PrivateZone.

Solution

  1. Sur le routeur Express Connect, autorisez les segments de route 100.100.2.136 et 100.100.2.138 afin de garantir que le centre de données sur site puisse effectuer un ping vers 100.100.2.136 et 100.100.2.138. Pour toute question relative à la configuration du routeur Express Connect, consultez votre architecte de solutions réseau ou reportez-vous aux documents suivants : Interconnexion réseau cloud-vers-sur site, Connecter un centre de données sur site à un VPC via un circuit Express Connect, Ajouter et gérer des entrées de routage et Traiter les messages d'un centre de données sur site à l'aide de Message Queue for Apache RocketMQ via un circuit Express Connect.

    Important

    Si votre centre de données sur site n'est pas connecté via Alibaba Cloud CEN ou un circuit Express Connect, contactez votre fournisseur de réseau pour la configuration du routeur.

  2. Modifiez le fichier de configuration principal local named.conf du DNS pour transférer les requêtes DNS concernant le nom de domaine KMS (kms.aliyuncs.com) vers le DNS Alibaba Cloud afin qu'elles soient résolues. Le code suivant fournit un exemple de configuration :

    zone "kms.aliyuncs.com" { 
            type forward; 
            forwarders { 100.100.2.136;100.100.2.138;}; 
    };
    Remarque

    La configuration du transfert de routage varie en fonction du logiciel DNS utilisé. Pour plus d'informations, reportez-vous à la documentation de votre logiciel DNS.

Erreur « QPS Limit Exceeded » lors de la synchronisation des secrets par ACK

Cause

La synchronisation d'un grand nombre de secrets KMS peut déclencher la politique de limitation de débit du service, ce qui entraîne l'échec de la synchronisation.

Solution

Ce problème est résolu dans la version 0.5.2 d'ack-secret-manager. Mettez à niveau vers la version 0.5.2 ou une version ultérieure.

Erreur « MissingParameter » sur une passerelle dédiée

Problème

Lorsque vous utilisez un SDK Alibaba Cloud pour appeler une opération OpenAPI destinée aux opérations cryptographiques via une passerelle dédiée, l'erreur suivante s'affiche : MissingParamter AParamter x-kms-acccesskeyid does not exist in http header or body "$430c76cd-******.

Cause

La version de l'image de l'instance KMS est antérieure à la version 3.0.0. Pour utiliser une passerelle dédiée afin d'appeler des opérations OpenAPI destinées aux opérations cryptographiques, la version de l'image de l'instance KMS doit être la version 3.0.0 ou ultérieure.

Solution

Sur la page Instances, vérifiez la version de l'image dans les détails de l'instance. Cliquez sur Upgrade pour mettre à niveau la version de l'image de l'instance KMS. Pour plus d'informations, consultez la section Mettre à niveau la version de l'image d'une instance KMS.

Problèmes de validation de certificat pour les ISV tiers

L'activation de l'accès public permet à l'ISV tiers de se connecter via la passerelle partagée, qui utilise un certificat signé par une autorité de certification (CA) de confiance.

  1. Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Resources > Instances.

  2. Dans la liste des instances, cliquez sur l'ID de l'instance cible. Sur la page des détails, activez l'interrupteur Public Network Access dans la section RD Multi-Account.

    Remarque

    Si une instance KMS est partagée entre plusieurs comptes Alibaba Cloud, vous pouvez définir les autorisations d'accès au réseau public pour chaque compte.

  3. Sous l'onglet Basic Information de la page des détails de l'instance, recherchez le Public Endpoint. L'endpoint s'affiche après l'activation de l'accès au réseau public et présente un format similaire à kms.cn-hangzhou.aliyuncs.com.