Utilisez le SDK Alibaba Cloud pour connecter votre application au service Key Management Service (KMS). La procédure d'initialisation varie selon le type de passerelle : une passerelle partagée nécessite uniquement un endpoint, tandis qu'une passerelle dédiée requiert également un certificat CA pour authentifier la connexion SSL/TLS de l'instance KMS.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un compte Alibaba Cloud avec le service KMS activé
Des identifiants AccessKey stockés sous forme de variables d'environnement (
ALIBABA_CLOUD_ACCESS_KEY_IDetALIBABA_CLOUD_ACCESS_KEY_SECRET)(Passerelle dédiée uniquement) Une instance KMS. Consultez la rubrique Gérer les identifiants d'accès pour connaître les méthodes d'authentification prises en charge.
Les passerelles partagées et dédiées prennent en charge les mêmes méthodes d'authentification basées sur RAM : AccessKey (AK), jeton Security Token Service (STS), RamRoleArn et rôle RAM d'instance ECS. Pour les charges de travail de production, privilégiez les jetons STS plutôt que les identifiants AccessKey à longue durée de vie. Les exemples ci-dessous utilisent AccessKey par souci de simplicité.
Comparaison des passerelles
| Passerelle partagée | Passerelle dédiée | |
|---|---|---|
| Format de l'endpoint | kms.<REGION_ID>.aliyuncs.com (réseau public) ou kms-vpc.<REGION_ID>.aliyuncs.com (VPC) |
<KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com |
| Certificat CA | Non requis | Requis pour le SDK V2.0 ; le SDK V1.0 doit définir HTTPSInsecure sur true à la place |
Initialiser le client via une passerelle partagée
public static com.aliyun.kms20160120.Client createClient() throws Exception {
// Avoid hardcoding credentials. Use STS tokens for higher security:
// https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// Required. Set ALIBABA_CLOUD_ACCESS_KEY_ID in your runtime environment.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Required. Set ALIBABA_CLOUD_ACCESS_KEY_SECRET in your runtime environment.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Shared gateway endpoint format: kms.<REGION_ID>.aliyuncs.com
// For VPC access: kms-vpc.<REGION_ID>.aliyuncs.com
// Example uses Singapore (ap-southeast-1).
config.endpoint = "kms.ap-southeast-1.aliyuncs.com";
return new com.aliyun.kms20160120.Client(config);
}
Endpoint
Définissez config.endpoint en utilisant l'un des formats d'endpoint de passerelle partagée :
Réseau public :
kms.<REGION_ID>.aliyuncs.comVPC :
kms-vpc.<REGION_ID>.aliyuncs.com
Remplacez <REGION_ID> par l'ID de la région où se trouvent vos ressources KMS, par exemple cn-hangzhou ou ap-southeast-1.
Initialiser le client via une passerelle dédiée
public static com.aliyun.kms20160120.Client createClient() throws Exception {
// Avoid hardcoding credentials. Use STS tokens for higher security:
// https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// Required. Set ALIBABA_CLOUD_ACCESS_KEY_ID in your runtime environment.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Required. Set ALIBABA_CLOUD_ACCESS_KEY_SECRET in your runtime environment.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Dedicated gateway endpoint format: <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com
// Find your instance ID on the Instances page (see "Endpoint" below).
config.endpoint = "kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com";
// CA certificate content for the KMS instance.
// Download it from the instance details page (see "CA certificate" below).
config.ca = "<INSTANCE_CA_CERTIFICATE>";
return new com.aliyun.kms20160120.Client(config);
}
Endpoint
L'endpoint de passerelle dédiée suit le format <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com. Pour trouver l'endpoint de votre instance :
Accédez à la page shared gateway et cliquez sur l'onglet Instances ou Software Key Management.
Cliquez sur l'instance KMS cible.
Dans la section Hardware Key Management, copiez la valeur du champ Basic Information.

Certificat CA
Le certificat CA authentifie la connexion SSL/TLS de l'instance KMS et est requis dans les environnements de production. Pour le télécharger :
Sur la page Instance VPC Endpoint, cliquez sur l'onglet Instances ou Software Key Management, puis cliquez sur l'instance cible.
Cliquez sur l'ID de l'instance ou sur Details dans la colonne Hardware Key Management.
Sur la page des détails, cliquez sur Actions à côté de Instance CA Certificate.
Le fichier téléchargé est nommé PrivateKmsCA_kst-******.pem par défaut.

Le paramètre ca est pris en charge uniquement par le SDK Alibaba Cloud V2.0. Si vous utilisez le SDK V1.0, omettez la ligne config.ca et définissez HTTPSInsecure sur true directement sur le client : client.SetHTTPSInsecure(true). Pour ignorer la vérification SSL/TLS dans les environnements hors production (tels que les tests hors ligne), utilisez également client.SetHTTPSInsecure(true).