Obtention des métadonnées d'instance
Le service de métadonnées d'instance (IMDS) fournit des informations sur une instance en cours d'exécution, notamment divers détails sur l'instance, les cartes d'interface réseau virtuelle (vNIC) et les attachements de volume multichemins qui lui sont attachés ainsi que toutes les métadonnées personnalisées que vous définissez. Le service de métadonnées d'instance fournit également des informations à cloud-init que vous pouvez utiliser pour diverses tâches d'initialisation du système.
Vous pouvez trouver certaines de ces informations dans la console, dans la page Détails de l'instance, ou vous pouvez les obtenir en vous connectant à l'instance et en utilisant le service de gestion des métadonnées. Le service s'exécute sur chaque instance et est un point d'extrémité HTTP qui écoute sur 169.254.169.254. Si une instance comporte plusieurs cartes vNIC, vous devez envoyer la demande à l'aide de la carte vNIC principale.
Pour accroître la sécurité des demandes de métadonnées, nous vous recommandons fortement de mettre à jour toutes les applications pour utiliser le point d'extrémité IMDS version 2, si l'image le prend en charge. Désactivez ensuite les demandes pour IMDS version 1.
Pour les autorisations, voir Politique IAM requise pour l'utilisation des instances.
Mise à niveau vers le service de métadonnées d'instance version 2
Le service de métadonnées d'instance est disponible en deux versions, la version 1 et la version 2. IMDSv2 offre une sécurité accrue par rapport à la version 1.
Lorsque vous désactivez IMDSv1 et autorisez les demandes uniquement pour IMDSv2, les choses suivantes changent :
- Toutes les demandes doivent être adressées aux points d'extrémité v2 (
/opc/v2
). Les demandes aux points d'extrémité v1 (/opc/v1
et/openstack
) sont rejetées avec l'erreur 404 - Page introuvable. - Toutes les demandes pour les points d'extrémité v2 doivent inclure un en-tête d'autorisation. Les demandes qui n'incluent pas l'en-tête d'autorisation sont rejetées.
- Les demandes transmises à l'aide des en-têtes HTTP
Forwarded
,X-Forwarded-For
ouX-Forwarded-Host
sont rejetées.
Pour mettre à niveau le service de métadonnées d'instance dans une instance de calcul, utilisez les étapes de haut niveau suivantes :
- Vérifiez que l'instance utilise une image prenant en charge IMDSv2.
- Identifiez les demandes pour les points d'extrémité v1 existants.
- Migrez toutes les applications pour prendre en charge les points d'extrémité v2.
- Désactivez toutes les demandes pour les points d'extrémité v1 existants.
Images prises en charge pour IMDSv2
IMDSv2 est pris en charge sur les images de plate-forme suivantes :
- Images Oracle Autonomous Linux 8.x
- Images Oracle Autonomous Linux 7.x lancées en juin 2020 ou ultérieurement
- Images Oracle Linux 8.x et Oracle Linux 7.x lancées en juillet 2020 ou ultérieurement
D'autres images de plate-forme, la plupart des images personnalisées et la plupart des images Marketplace ne prennent pas en charge IMDSv2. Les images Linux personnalisées peuvent prendre en charge IMDSv2 si cloud-init est mis à jour à la version 20.3 ou version ultérieure et si Oracle Cloud Agent est mis à jour à la version 0.0.19 ou version ultérieure. Les images Windows personnalisées peuvent prendre en charge IMDSv2 si Oracle Cloud Agent est mis à jour à la version 1.0.0.0 ou versions ultérieures; cloudbase-init ne prend pas en charge IMDSv2.
Identification des demandes pour les points d'extrémité IMDSv1 existants
Pour identifier les points d'extrémité du service de métadonnées d'instance spécifiques pour les demandes et les agents qui effectuent les demandes, utilisez la mesure InstanceMetadataRequests.
Pour identifier les versions du service de métadonnées d'instance activées pour une instance, procédez de l'une des façons suivantes :
- Utilisation de la console :
- Ouvrez le menu de navigation et sélectionnez Calcul. Sous Calcul, sélectionnez Instances.
- Cliquez sur l'instance qui vous intéresse.
- Dans la section Détails de l'instance, à côté de Service de métadonnées d'instance, notez les numéros de version.
- Utilisation de l'API : Utilisez l'opération GetInstance ou ListInstances. Dans la réponse, l'attribut
areLegacyImdsEndpointsDisabled
de l'objetInstanceOptions
retournefalse
si IMDSv1 et IMDSv2 sont activés pour l'instance. Il retournetrue
si IMDSv1 est désactivé.
Désactivation des demandes pour les points d'extrémité IMDSv1 existants
Vérifiez que l'instance n'utilise pas les points d'extrémité IMDSv1 avant de désactiver les demandes pour IMDSv1. Si l'instance repose toujours sur IMDSv1 lorsque vous désactivez les demandes, vous risquez de perdre une certaine fonctionnalité.
Procédez de l'une des façons suivantes :
- Utilisation de la console :
- Ouvrez le menu de navigation et sélectionnez Calcul. Sous Calcul, sélectionnez Instances.
- Cliquez sur l'instance qui vous intéresse.
- Dans la section Détails de l'instance, à côté de Service de métadonnées d'instance, cliquez sur Modifier.
- Pour Version IMDS autorisée, sélectionnez l'option Version 2 seulement.
- Cliquez sur enregistrer les modifications.
- Utilisation de l'API : Utilisez l'opération UpdateInstance. Dans le corps de la demande, dans l'objet
InstanceOptions
, transmettez la valeurtrue
pour l'attributareLegacyImdsEndpointsDisabled
.
Si vous désactivez IMDSv1 dans une instance qui ne prend pas en charge IMDSv2, vous ne pourrez peut-être pas vous connecter à l'instance lorsque vous la lancez. Pour réactiver IMDSv1 : À l'aide de la console, dans la page Détails de l'instance, à côté de Service de métadonnées d'instance, cliquez sur Modifier. Sélectionnez l'option Version 1 et version 2, enregistrez vos modifications, puis redémarrez l'instance. À l'aide de l'API, utilisez l'opération UpdateInstance.
Limitation de demande
Oracle Cloud Infrastructure applique la limitation aux demandes de service de métadonnées d'instance pour prévenir l'utilisation accidentelle ou abusive des ressources. Pour éviter la limitation, au lieu d'interroger les données d'identification de sécurité pour chaque transaction, mettez-les en mémoire cache jusqu'à leur expiration imminente.
Si vous créez un trop grand nombre de demandes trop rapidement, il se peut que certaines d'entre elles réussissent et que d'autres échouent. Si une limitation se produit, Oracle vous recommande de réessayer à l'aide d'un délai d'attente exponentiel.
Obtention des métadonnées d'instance pour les images de plate-forme
Vous pouvez obtenir les métadonnées d'instance des images de plate-forme en utilisant cURL sur les instances Linux. Sur les instances Windows, vous pouvez utiliser cURL (si prise en charge par la version Windows) ou un navigateur Internet.
Toutes les demandes adressées au service de métadonnées d'instance v2 doivent inclure l'en-tête suivant :
Authorization: Bearer Oracle
Les métadonnées d'instance accessibles à l'aide d'IMDSv2 sont disponibles avec les URL racines suivantes :
-
Toutes les informations sur l'instance :
http://169.254.169.254/opc/v2/instance/
-
Informations sur les cartes vNIC qui sont attachées à l'instance :
http://169.254.169.254/opc/v2/vnics/
-
Informations sur un volume attaché à l'instance avec un attachement activé pour la configuration multichemin :
http://169.254.169.254/opc/v2/volumeAttachments/
Les métadonnées d'instance accessibles à l'aide d'IMDSv1 sont disponibles avec les URL racines suivantes. Aucun en-tête n'est nécessaire.
-
Toutes les informations sur l'instance :
http://169.254.169.254/opc/v1/instance/
-
Informations sur les cartes vNIC qui sont attachées à l'instance :
http://169.254.169.254/opc/v1/vnics/
-
Informations sur un volume attaché à l'instance avec un attachement activé pour la configuration multichemin :
http://169.254.169.254/opc/v1/volumeAttachments/
Les valeurs de clés de métadonnées spécifiques sont disponibles sous forme de sous-chemins sous l'URL racine.
Pour obtenir les métadonnées d'instance des instances Linux
- Connectez-vous à une instance Linux à l'aide de SSH.
-
Utilisez cURL pour émettre une demande GET à l'URL des métadonnées d'instance qui vous intéressent. Par exemple :
curl -H "Authorization: Bearer Oracle" -L http://169.254.169.254/opc/v2/instance/
Pour obtenir les métadonnées d'instance des instances Windows
Les étapes permettant d'obtenir les métadonnées d'une instance Windows dépendent de la version du service de métadonnées d'instance à partir de laquelle vous demandez les métadonnées.
Pour obtenir les métadonnées d'instance Windows à l'aide d'IMDSv2 :
- Connectez-vous à une instance Windows à l'aide d'une connexion Bureau à distance.
-
Selon que votre version Windows inclut cURL, procédez de l'une des façons suivantes :
-
Si votre version Windows inclut cURL, utilisez cURL pour émettre une demande GET à l'URL de métadonnées d'instance qui vous intéresse. Par exemple :
curl -H "Authorization: Bearer Oracle" -L http://169.254.169.254/opc/v2/instance/
-
Si votre version Windows n'inclut pas cURL, vous pouvez obtenir les métadonnées d'instance dans votre navigateur Internet. Naviguez jusqu'à l'URL de métadonnées d'instance qui vous intéresse et transmettez une demande qui inclut l'en-tête d'autorisation. Pour plus d'informations sur l'inclusion des en-têtes dans une demande, voir les instructions ayant trait à votre navigateur. Vous aurez peut-être besoin d'installer une extension de navigateur de tierce partie qui vous permet d'inclure les en-têtes de demande.
-
Pour obtenir les métadonnées d'instance Windows à l'aide d'IMDSv1 :
- Connectez-vous à une instance Windows à l'aide d'une connexion Bureau à distance.
- Ouvrez un navigateur Internet et naviguez jusqu'à l'URL des métadonnées d'instance qui vous intéressent.
Nouvelles tentatives pour les métadonnées d'instance
Le service de métadonnées d'instance subit périodiquement de courtes périodes d'arrêt pour la maintenance. Par conséquent, lorsque vous essayez d'accéder aux points d'extrémité IMDS, ils peuvent être indisponibles. Comme meilleure pratique, mettez en oeuvre la logique de nouvelle tentative lors de l'accès aux points d'extrémité IMDS. La stratégie suivante est recommandée : Réessayez jusqu'à trois fois avec une temporisation de 30 secondes si vous recevez une réponse 404
, 429
ou 5xx
. Pour plus d'informations et des exemples, voir la documentation sur la trousse SDK pour Java.
Clés de métadonnées
Les métadonnées d'instance comprennent des clés de métadonnées par défaut définies par le service Calcul et ne peuvent pas être modifiées, de même que les clés de métadonnées personnalisées que vous créez.
Certaines entrées de métadonnées sont des répertoires contenant des clés de métadonnées supplémentaires. Dans les tableaux suivants, les entrées suivies d'une barre oblique indiquent un répertoire. Par exemple, regionInfo/
est un répertoire qui contient d'autres clés de métadonnées.
Clés de métadonnées pour une instance
Les métadonnées suivantes sont disponibles à propos d'une instance. Les chemins sont relatifs à http://169.254.169.254/opc/v2/instance/
.
Entrée de métadonnées | Description |
---|---|
availabilityDomain |
Domaine de disponibilité dans lequel l'instance est exécutée. Ce nom inclut le préfixe propre à la location. Exemple : |
faultDomain |
Nom du domaine d'erreur dans lequel l'instance est exécutée. Exemple : |
compartmentId |
OCIDdu compartiment qui contient l'instance. |
displayName |
Nom convivial de l'instance. |
hostname |
Nom d'hôte de l'instance. |
id |
OCID de l'instance. |
image |
OCID de l'image utilisée pour démarrer l'instance. |
metadata/ |
Répertoire contenant les métadonnées personnalisées que vous fournissez pour l'instance. Pour interroger les métadonnées d'une clé de métadonnées personnalisée spécifique, utilisez |
metadata/ssh_authorized_keys |
Pour les instances Linux, la clé SSH publique fournie lors de la création de l'instance. |
metadata/user_data |
Données d'utilisateur à utiliser par cloud-init ou cloudbase-init pour exécuter des scripts personnalisés ou fournir une configuration personnalisée. |
region |
Région qui contient le domaine de disponibilité dans lequel l'instance est exécutée. Pour les régions us-phoenix-1 et us-ashburn-1, les valeurs Exemples : |
canonicalRegionName |
Identificateur de région pour la région qui contient le domaine de disponibilité dans lequel l'instance est exécutée. Exemple : |
ociAdName |
Domaine de disponibilité dans lequel l'instance est exécutée. Ce nom est utilisé à l'interne et correspond à l'étiquette du centre de données. Exemple : |
regionInfo/ |
Répertoire contenant des informations sur la région qui contient le domaine de disponibilité dans lequel l'instance est exécutée. |
regionInfo/realmKey |
Clé du domaine dans lequel se trouve la région. Exemple : |
regionInfo/realmDomainComponent |
Domaine du domaine de sécurité. Exemple : |
regionInfo/regionKey |
Clé à 3 lettres pour la région. Exemple : |
regionInfo/regionIdentifier |
Identificateur de la région. Exemple : |
shape |
Forme de l'instance. La forme détermine le nombre d'unités centrales et la quantité de mémoire affectés à l'instance. Vous pouvez énumérer toutes les formes disponibles en appelant l'opération ListShapes. |
state |
État du cycle de vie courant de l'instance. Pour la liste des valeurs autorisées, voir Instance. Exemple : |
timeCreated |
Date et heure de création de l'instance, au format d'horodatage UNIX, en millisecondes depuis Epoch. |
agentConfig/ |
Répertoire contenant des informations sur le logiciel Oracle Cloud Agent et les plugiciels exécutés sur l'instance. |
agentConfig/monitoringDisabled |
Valeur booléenne indiquant si le logiciel Oracle Cloud Agent peut collecter les mesures liées à la performance et surveiller l'instance à l'aide des plugiciels de surveillance. Les plugiciels de surveillance sont contrôlés par ce paramètre et par la configuration propre au plugiciel dans l'objet |
agentConfig/managementDisabled |
Valeur booléenne indiquant si le logiciel Oracle Cloud Agent peut exécuter tous les plugiciels de gestion disponibles. Les plugiciels de gestion sont contrôlés par ce paramètre et par la configuration propre au plugiciel dans l'objet |
agentConfig/allPluginsDisabled |
Valeur booléenne indiquant si Oracle Cloud Agent peut exécuter tous les plugiciels disponibles. Cela inclut les plugiciels de gestion et de surveillance. |
agentConfig/pluginsConfig/ |
Répertoire contenant des informations sur les plugiciels gérés par Oracle Cloud Agent sur l'instance. |
agentConfig/pluginsConfig/name |
Nom du plugiciel. |
agentConfig/pluginsConfig/desiredState |
Indique si le plugiciel doit être activé ou désactivé. Pour activer les plugiciels de surveillance et de gestion, les attributs |
freeformTags/ |
Répertoire contenant tous les marqueurs à structure libre qui sont ajoutés à l'instance. |
definedTags/ |
Répertoire contenant tous les balises marqueurs définis qui sont ajoutés à l'instance. |
Voici un exemple de réponse présentant toutes les informations pour une instance :
{
"availabilityDomain" : "EMIr:PHX-AD-1",
"faultDomain" : "FAULT-DOMAIN-3",
"compartmentId" : "ocid1.tenancy.oc1..exampleuniqueID",
"displayName" : "my-example-instance",
"hostname" : "my-hostname",
"id" : "ocid1.instance.oc1.phx.exampleuniqueID",
"image" : "ocid1.image.oc1.phx.exampleuniqueID",
"metadata" : {
"ssh_authorized_keys" : "example-ssh-key"
},
"region" : "phx",
"canonicalRegionName" : "us-phoenix-1",
"ociAdName" : "phx-ad-1",
"regionInfo" : {
"realmKey" : "oc1",
"realmDomainComponent" : "oraclecloud.com",
"regionKey" : "PHX",
"regionIdentifier" : "us-phoenix-1"
},
"shape" : "VM.Standard.E3.Flex",
"state" : "Running",
"timeCreated" : 1600381928581,
"agentConfig" : {
"monitoringDisabled" : false,
"managementDisabled" : false,
"allPluginsDisabled" : false,
"pluginsConfig" : [ {
"name" : "OS Management Service Agent",
"desiredState" : "ENABLED"
}, {
"name" : "Custom Logs Monitoring",
"desiredState" : "ENABLED"
}, {
"name" : "Compute Instance Run Command",
"desiredState" : "ENABLED"
}, {
"name" : "Compute Instance Monitoring",
"desiredState" : "ENABLED"
} ]
},
"freeformTags": {
"Department": "Finance"
},
"definedTags": {
"Operations": {
"CostCenter": "42"
}
}
}
Clés de métadonnées pour les cartes vNIC attachées
Les métadonnées suivantes sont disponibles pour les cartes vNIC attachées à l'instance. Les chemins sont relatifs à http://169.254.169.254/opc/v2/vnics/
.
Entrée de métadonnées | Description |
---|---|
vnicId |
OCID de la carte vNIC. |
privateIp |
Adresse IP privée de l'objet principal privateIp sur la carte vNIC. L'adresse fait partie du CIDR du sous-réseau de la carte vNIC. |
vlanTag |
Marqueur VLAN affecté par Oracle de la carte vNIC attachée. Si la carte vNIC appartient à un VLAN dans le cadre de la solution VMware Oracle Cloud, la valeur |
macAddr |
Adresse MAC de la carte vNIC. Si la carte vNIC appartient à un VLAN dans le cadre de la solution VMware Oracle Cloud, l'adresse MAC est apprise. Si la carte vNIC appartient à un sous-réseau, l'adresse MAC est une valeur statique fournie par Oracle. |
virtualRouterIp |
Adresse IP du routeur virtuel. |
subnetCidrBlock |
Bloc CIDR du sous-réseau. |
nicIndex |
Indique la carte d'interface réseau physique utilisée par la carte vNIC. Certaines formes d'instance sans système d'exploitation ont deux cartes d'interface réseau physiques actives (0 et 1). Si vous ajoutez une carte vNIC secondaire à l'une de ces instances, vous pouvez spécifier la carte d'interface réseau utilisée par la carte vNIC. Pour plus d'informations, voir Cartes d'interface de réseau virtuel (vNIC). |
Voici un exemple de réponse présentant les cartes vNIC attachées à une instance :
[ {
"vnicId" : "ocid1.vnic.oc1.phx.exampleuniqueID",
"privateIp" : "10.0.3.6",
"vlanTag" : 11,
"macAddr" : "00:00:00:00:00:01",
"virtualRouterIp" : "10.0.3.1",
"subnetCidrBlock" : "10.0.3.0/24",
"nicIndex" : 0
}, {
"vnicId" : "ocid1.vnic.oc1.phx.exampleuniqueID",
"privateIp" : "10.0.4.3",
"vlanTag" : 12,
"macAddr" : "00:00:00:00:00:02",
"virtualRouterIp" : "10.0.4.1",
"subnetCidrBlock" : "10.0.4.0/24",
"nicIndex" : 0
} ]
Clés de métadonnées pour les volumes attachés avec des attachements activés pour la configuration multichemin
Les métadonnées suivantes sont disponibles pour les attachements de volume multichemins attachées à l'instance. Les chemins sont relatifs à http://169.254.169.254/opc/v2/volumeAttachments/
.
Entrée de métadonnées | Description |
---|---|
id |
OCID de l'attachement de volume. |
instanceId |
OCID de l'instance. |
volumeId |
OCID du volume. |
ipv4 |
Adresse IPv4 de la cible iSCSI. |
iqn |
IQN de la cible iSCSI. |
port |
Port de la cible iSCSI. |
multipathDevices |
Liste des appareils multipath secondaires avec les propriétés ipv4 , iqn et port . |
Voici un exemple de réponse qui présente les attachements de volume multichemins pour une instance :
[
{
"id": "ocid1.volumeattachment.oc1.phx.exampleuniqueID",
"instanceId": "ocid1.instance.oc1.phx.exampleuniqueID",
"volumeId": "ocid1.volume.oc1.phx.exampleuniqueID",
"ipv4": "169.254.2.2",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260,
"multipathDevices":
[
{
"ipv4": "exampleIP",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260
},
{
"ipv4": "exampleIP",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260
},
{
"ipv4": "exampleIP",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260
},
{
"ipv4": "exampleIP",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260
},
{
"ipv4": "exampleIP",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260
},
{
"ipv4": "exampleIP",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260
},
{
"ipv4": "exampleIP",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260
},
{
"ipv4": "exampleIP",
"iqn": "iqn.2015-12.com.oracleiaas:exampleuniqueID",
"port": 3260
}
]
}
]
Clés de métadonnées pour la configuration de forme
Cette commande affiche les OCPU disponibles dans chaque forme de calcul. Ces informations sont utiles pour les formes flexibles où une application doit en savoir plus sur les OCPUS, les cartes vNIC ou tout détail configurable de forme.
Les métadonnées suivantes sont disponibles pour les formes de calcul attachées à l'instance. Les chemins sont relatifs à http://169.254.169.254/opc/v2/instance/shapeConfig
.
Entrée de métadonnées | Description |
---|---|
Shape |
Nom de l'instance. |
OCPU Count |
Nombre d'OCPU limité par la forme de machine virtuelle sélectionnée et les quotas d'OCPU définis pour la location. |
networkingBandwidthInGbps |
Quantité de données pouvant être transférées dans un réseau entre deux points. |
Memory |
Limite d'OCPU pour la forme de machine virtuelle sélectionnée. Pour plus d'informations, voir Formes de calcul. |
maxVnicAttachments |
Nombre maximal d'attachements entre une carte VNIC et une instance. |
Utilisez la commande cURL suivante pour émettre une demande GET aux métadonnées de configuration de forme d'instance qui vous intéressent.
curl -H "Authorization: Bearer Oracle" -L http://169.254.169.254
/opc/v2/instance/shapeConfig
Voici un exemple de réponse qui présente les métadonnées de configuration de forme pour une instance Linux.
{
"ocpus" : 4.0,
"memoryInGBs" : 60.0,
"networkingBandwidthInGbps" : 4.0,
"maxVnicAttachments" : 4
}