L'identité d'une instance, qui comprend un document d'identité et une signature d'identité, permet d'identifier de manière sécurisée une instance ECS. Elle sert de base de confiance pour le contrôle d'accès aux applications et l'activation des logiciels. Cette rubrique décrit l'identité d'instance, ses cas d'utilisation, ainsi que les méthodes pour la récupérer et l'utiliser.
Identité de l'instance
Une identité d'instance se compose d'un document d'identité d'instance (document) généré dynamiquement et d'une signature d'identité d'instance (signature).
-
Document d'identité d'instance
Le document d'identité d'instance fournit des informations d'identification sur l'instance, telles que son ID d'instance et son adresse IP. Le tableau suivant décrit les propriétés contenues dans le document.
Paramètre
Description
owner-account-id
ID du compte Alibaba Cloud propriétaire de l'instance.
instance-id
ID de l'instance.
mac
Adresse MAC de l'interface réseau principale de l'instance.
region-id
ID de la région à laquelle appartient l'instance.
serial-number
Numéro de série de l'instance.
zone-id
ID de la zone à laquelle appartient l'instance.
instance-type
Type d'instance.
image-id
ID de l'image utilisée par l'instance.
private-ipv4
Adresse IPv4 privée de l'instance.
-
Signature d'identité d'instance
La signature d'identité d'instance vérifie l'authenticité et l'intégrité du document d'identité d'instance. La signature est signée numériquement au format PKCS#7 afin de garantir la sécurité et la fiabilité.
Les signatures d'identité d'instance prennent en charge un paramètre
audiencepersonnalisé, utilisé pour l'authentification afin d'éviter toute utilisation abusive de la signature. Le paramètreaudiencepeut être une chaîne aléatoire, un horodatage, des informations changeant régulièrement ou des données générées par un algorithme. Si vous transmettez le paramètreaudience, il devient difficile pour une tierce partie de deviner sa valeur, même si elle obtient des parties du document d'identité et de la signature d'identité de l'instance. Le paramètreaudiencesert à l'authentification. Pour plus d'informations, consultez la section Utilisation de l'identité d'instance.
Cas d'utilisation
Vous pouvez utiliser une identité d'instance pour l'authentification, l'autorisation ou la vérification de l'environnement dans les scénarios suivants :
Les licences logicielles traditionnelles avec des codes d'activation à usage unique sont trop rigides pour les environnements cloud dynamiques. Lorsque vous répertoriez votre application sur Alibaba Cloud Marketplace, vous pouvez utiliser une identité d'instance pour mettre en œuvre une autorisation utilisateur flexible et dynamique.
Lorsque vous écrivez des données sensibles sur une instance ECS, utilisez l'identité d'instance pour vérifier que vous écrivez bien les données sur la bonne instance ECS et non sur un environnement différent.
Autres scénarios nécessitant la confirmation de l'origine d'un serveur cible.
Obtenir l'identité de l'instance
Mode de renforcement de la sécurité (recommandé)
-
Instance Linux
# Obtain a server access credential. You must set an expiration time. Do not include the X-Forwarded-For header. TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:<credential-expiration-in-seconds>"` # Obtain the instance identity. curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/<dynamic data> -
Instance Windows
# Obtain a server access credential. You must set an expiration time. Do not include the X-Forwarded-For header. $token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "<credential-expiration-in-seconds>"} -Method PUT -Uri http://100.100.100.200/latest/api/token # Obtain the instance identity. Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/<dynamic data>-
<credential-expiration-in-seconds> : Les identifiants d'accès au serveur fournissent une authentification pour renforcer la sécurité des données. Cette valeur définit la période de validité de l'identifiant en secondes. Valeurs valides : 1 à 21600.
Vous pouvez réutiliser l'identifiant jusqu'à son expiration. Une fois expiré, vous devez en récupérer un nouveau.
Un identifiant n'est valide que pour l'instance à partir de laquelle il a été récupéré. Si vous tentez d'utiliser l'identifiant sur une autre instance, l'accès est refusé.
-
<dynamic data> : Remplacez cette valeur par le chemin d'accès au document d'identité ou à la signature d'instance souhaité.
Document d'identité d'instance : dynamic/instance-identity/document
-
Signature d'identité d'instance : dynamic/instance-identity/pkcs7?audience=XXXX
ImportantLe paramètre
?audience=XXXXest facultatif. Pour plus d'informations, consultez la section Signature d'identité d'instance.
-
Mode normal
-
Instance Linux
curl http://100.100.100.200/latest/<dynamic data> -
Instance Windows (PowerShell)
Invoke-RestMethod http://100.100.100.200/latest/<dynamic data><dynamic data> : Remplacez cette valeur par le chemin d'accès au document d'identité ou à la signature d'instance souhaité.
Document d'identité d'instance : dynamic/instance-identity/document
-
Signature d'identité d'instance : dynamic/instance-identity/pkcs7?audience=XXXX
ImportantLe paramètre
?audience=XXXXest facultatif. Pour plus d'informations, consultez la section Signature d'identité d'instance.
Utilisation d'une identité d'instance
Les étapes suivantes montrent comment utiliser une identité d'instance en mode de renforcement de la sécurité sur une instance ECS exécutant Alibaba Cloud Linux 3.
La vérification et l'utilisation d'une identité d'instance nécessitent OpenSSL. Si OpenSSL n'est pas installé sur votre instance, accédez au site officiel d'OpenSSL pour le télécharger et l'installer.
-
Connectez-vous à distance à l'instance Linux.
Pour plus d'informations, consultez la section Se connecter à une instance Linux à l'aide de Workbench.
-
(Facultatif) Exécutez les commandes suivantes pour afficher le document d'identité et la signature d'identité de l'instance.
# Obtain a server access credential and set its expiration to 3600 seconds. TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:3600"` # Obtain the instance identity document. curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/dynamic/instance-identity/document # Obtain the instance identity signature. curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/dynamic/instance-identity/pkcs7TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:3600"` % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 29 100 29 0 0 805 0 --:--:-- --:--:-- --:--:-- 805 curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/dynamic/instance-identity/document {"zone-id":"cn-hangzhou-h","serial-number":"es4xxx","instance-id":"i-bp1xxx","region-id":"cn-hangzhou","private-ipv4":"xxx","owner-account-id":"xxx","mac":"xxx","image-id":"aliyun_3_x64_20G_alibase_20240528.vhd","instance-type":"ecs.e-c1m1.large"} curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/dynamic/instance-identity/pkcs7 MIIDHwYJKo7ThvcNAOcrCoTfDCCAwwCAQExCzAJBgUrDpMCGgUAMTTRWOYJKo7ThvcNAOcrBoTfBSpSCAU77TnpvhmUltaWOiOiJhIoaYW5nbmVhdmS1dToidw2VvalEsl W51bWJ1ciI6TGtIMlINDk4MiNi TO2YmOtNDpzNv1hMTJhI wWyQAMmRhMi3k3OTAQNvTsTmur3RhbmNl1wlkTioia5i3ciDE1dn BqdGo aWJho UEAxM v45mv -
Enregistrez le document d'identité, la signature d'identité et le certificat public d'Alibaba Cloud dans des fichiers.
-
Exécutez la commande suivante pour enregistrer le document d'identité dans un fichier nommé
document.curl 100.100.100.200/latest/dynamic/instance-identity/document > document -
Exécutez les commandes suivantes pour enregistrer la signature d'identité dans un fichier nommé
signature.echo "-----BEGIN CERTIFICATE-----" > signature curl 100.100.100.200/latest/dynamic/instance-identity/pkcs7 >> signature echo "" >> signature echo "-----END CERTIFICATE-----" >> signature -
Exécutez la commande suivante pour enregistrer le certificat public d'Alibaba Cloud dans un fichier nommé
cert.cer.cat <<EOF > cert.cer -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIEZmbRhzANBgkqhkiG9w0BAQsFADBsMRAwDgYDVQQGEwdV bmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYD VQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQDEwdVbmtub3du MB4XDTE4MDIyMzAxMjkzOFoXDTM4MDIxODAxMjkzOFowbDEQMA4GA1UEBhMHVW5r bm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5rbm93bjEQMA4GA1UE ChMHVW5rbm93bjEQMA4GA1UECxMHVW5rbm93bjEQMA4GA1UEAxMHVW5rbm93bjCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIJwy5sbZDiNyX4mvdP32pqM YMK4k7+5lRnVR2Fky/5uwyGSPbddNXaXzwEm+u4wIsJiaAN3OZgJpYIoCGik+9lG 5gVAIr0+/3rZ61IbeVE+vDenDd8g/m/YIdYBfC2IbzgS9EVGAf/gJdtDODXrDfQj Fk2rQsvpftVOUs3Vpl9O+jeCQLoRbZYm0c5v7jP/L2lK0MjhiywPF2kpDeisMtnD /ArkSPIlg1qVYm3F19v3pa6ZioM2hnwXg5DibYlgVvsIBGhvYqdQ1KosNVcVGGQa HCUuVGdS7vHJYp3byH0vQYYygzxUJT2TqvK7pD57eYMN5drc7e19oyRQvbPQ3kkC AwEAAaMhMB8wHQYDVR0OBBYEFAwwrnHlRgFvPGo+UD5zS1xAkC91MA0GCSqGSIb3 DQEBCwUAA4IBAQBBLhDRgezd/OOppuYEVNB9+XiJ9dNmcuHUhjNTnjiKQWVk/YDA v+T2V3t9yl8L8o61tRIVKQ++lDhjlVmur/mbBN25/UNRpJllfpUH6oOaqvQAze4a nRgyTnBwVBZkdJ0d1sivL9NZ4pKelJF3Ylw6rp0YMqV+cwkt/vRtzRJ31ZEeBhs7 vKh7F6BiGCHL5ZAwEUYe8O3akQwjgrMUcfuiFs4/sAeDMnmgN6Uq8DFEBXDpAxVN sV/6Hockdfinx85RV2AUwJGfClcVcu4hMhOvKROpcH27xu9bBIeMuY0vvzP2VyOm DoJeqU7qZjyCaUBkPimsz/1eRod6d4P5qxTj -----END CERTIFICATE----- EOF
-
-
Exécutez la commande suivante pour vérifier l'identité de l'instance avec OpenSSL.
openssl smime -verify -in signature -inform PEM -content document -certfile cert.cer -noverify > /dev/nullSi la réponse est
Verification successful, l'instance est authentifiée avec succès.Les paramètres de la commande sont décrits ci-dessous :
document: Fichier contenant le document d'identité récupéré.-
signature: Fichier contenant la signature d'identité récupérée.RemarqueSi vous avez spécifié un paramètre audience lors de la récupération de la signature d'identité de l'instance, vous devez ajouter manuellement ce paramètre à la fin du document d'identité de l'instance. Le format est
,"audience":"your_audience_value". -
cert.cer: Fichier contenant le certificat public d'Alibaba Cloud.
Références
Pour récupérer d'autres informations sur l'instance depuis l'intérieur de celle-ci, consultez la section Métadonnées de l'instance.
Pour exécuter automatiquement des scripts au démarrage de l'instance à l'aide des données utilisateur, consultez la section initialisation personnalisée de l'instance.