Azure Instance Metadata szolgáltatás
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek ✔️ – Windows rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
Az Azure Instance Metadata Service (IMDS) információt nyújt a jelenleg futó virtuálisgép-példányokról. Virtuális gépek kezeléséhez és konfigurálásához használható. Az általa biztosított adatok közé tartozik a termékváltozat, a tárhely, a hálózati konfiguráció és a közelgő karbantartási események. Az elérhető adatok teljes listájáért lásd: Végpontkategóriák áttekintése.
Az IMDS virtuális gépek (virtuális gépek) és méretezési csoportok példányainak futtatásához érhető el. Minden végpont támogatja az Azure Resource Managerrel létrehozott és felügyelt virtuális gépeket. Csak a példánykategória Igazolt kategóriája és hálózati része támogatja a klasszikus üzemi modellel létrehozott virtuális gépeket. Az igazolt végpont csak korlátozott mértékben teszi ezt meg.
Az IMDS egy REST API, amely egy jól ismert, nem módosítható IP-címen (169.254.169.254
) érhető el. Kizárólag a virtuális gépen belülről lehet hozzáférni. A virtuális gép és az IMDS közötti kommunikáció soha nem jut a gazdagépen kívülre.
A HTTP-ügyfelek megkerüljék a virtuális gépen belüli webes proxykat az IMDS lekérdezésekor, és ugyanúgy kezeljék 169.254.169.254
a következőt: 168.63.129.16
.
Használat
Az Azure Instance Metadata Service elérése
Az IMDS eléréséhez hozzon létre egy virtuális gépet az Azure Resource Managerből vagy az Azure Portalról, és használja az alábbi mintákat. További példákért tekintse meg az Azure-példány metaadatainak mintáit.
Az alábbi mintakód egy példány összes metaadatainak lekéréséhez használható. Egy adott adatforrás eléréséhez tekintse meg a végpontkategóriákat az összes elérhető funkció áttekintéséhez.
Kérelem
Fontos
Ez a példa áthalad a proxykon. Az IMDS lekérdezése során meg kell kerülnie a proxykat. További információt a Proxykban talál.
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance?api-version=2021-02-01" | ConvertTo-Json -Depth 64
-NoProxy
PowerShell V6-os vagy újabb verziót igényel. A korábbi PowerShell-verziókkal kapcsolatos példákért tekintse meg a mintaadattárat.
Válasz
Feljegyzés
A válasz egy JSON-sztring. Az alábbi példaválasz jól olvasható.
{
"compute": {
"azEnvironment": "AZUREPUBLICCLOUD",
"additionalCapabilities": {
"hibernationEnabled": "true"
},
"hostGroup": {
"id": "testHostGroupId"
},
"extendedLocation": {
"type": "edgeZone",
"name": "microsoftlosangeles"
},
"evictionPolicy": "",
"isHostCompatibilityLayerVm": "true",
"licenseType": "Windows_Client",
"location": "westus",
"name": "examplevmname",
"offer": "WindowsServer",
"osProfile": {
"adminUsername": "admin",
"computerName": "examplevmname",
"disablePasswordAuthentication": "true"
},
"osType": "Windows",
"placementGroupId": "f67c14ab-e92c-408c-ae2d-da15866ec79a",
"plan": {
"name": "planName",
"product": "planProduct",
"publisher": "planPublisher"
},
"platformFaultDomain": "36",
"platformSubFaultDomain": "",
"platformUpdateDomain": "42",
"priority": "Regular",
"publicKeys": [{
"keyData": "ssh-rsa 0",
"path": "/home/user/.ssh/authorized_keys0"
},
{
"keyData": "ssh-rsa 1",
"path": "/home/user/.ssh/authorized_keys1"
}
],
"publisher": "RDFE-Test-Microsoft-Windows-Server-Group",
"resourceGroupName": "macikgo-test-may-23",
"resourceId": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/virtualMachines/examplevmname",
"securityProfile": {
"secureBootEnabled": "true",
"virtualTpmEnabled": "false",
"encryptionAtHost": "true",
"securityType": "TrustedLaunch"
},
"sku": "2019-Datacenter",
"storageProfile": {
"dataDisks": [{
"bytesPerSecondThrottle": "979202048",
"caching": "None",
"createOption": "Empty",
"diskCapacityBytes": "274877906944",
"diskSizeGB": "1024",
"image": {
"uri": ""
},
"isSharedDisk": "false",
"isUltraDisk": "true",
"lun": "0",
"managedDisk": {
"id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampledatadiskname",
"storageAccountType": "StandardSSD_LRS"
},
"name": "exampledatadiskname",
"opsPerSecondThrottle": "65280",
"vhd": {
"uri": ""
},
"writeAcceleratorEnabled": "false"
}],
"imageReference": {
"id": "",
"offer": "WindowsServer",
"publisher": "MicrosoftWindowsServer",
"sku": "2019-Datacenter",
"version": "latest",
"communityGalleryImageId": "/CommunityGalleries/testgallery/Images/1804Gen2/Versions/latest",
"sharedGalleryImageId": "/SharedGalleries/1P/Images/gen2/Versions/latest",
"exactVersion": "1.1686127202.30113"
},
"osDisk": {
"caching": "ReadWrite",
"createOption": "FromImage",
"diskSizeGB": "30",
"diffDiskSettings": {
"option": "Local"
},
"encryptionSettings": {
"enabled": "false",
"diskEncryptionKey": {
"sourceVault": {
"id": "/subscriptions/test-source-guid/resourceGroups/testrg/providers/Microsoft.KeyVault/vaults/test-kv"
},
"secretUrl": "https://test-disk.vault.azure.net/secrets/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
},
"keyEncryptionKey": {
"sourceVault": {
"id": "/subscriptions/test-key-guid/resourceGroups/testrg/providers/Microsoft.KeyVault/vaults/test-kv"
},
"keyUrl": "https://test-key.vault.azure.net/secrets/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
}
},
"image": {
"uri": ""
},
"managedDisk": {
"id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampleosdiskname",
"storageAccountType": "StandardSSD_LRS"
},
"name": "exampleosdiskname",
"osType": "Windows",
"vhd": {
"uri": ""
},
"writeAcceleratorEnabled": "false"
},
"resourceDisk": {
"size": "4096"
}
},
"subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"tags": "baz:bash;foo:bar",
"userData": "Zm9vYmFy",
"version": "15.05.22",
"virtualMachineScaleSet": {
"id": "/subscriptions/xxxxxxxx-xxxxx-xxx-xxx-xxxx/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachineScaleSets/virtual-machine-scale-set-name"
},
"vmId": "02aab8a4-74ef-476e-8182-f6d2ba4166a6",
"vmScaleSetName": "crpteste9vflji9",
"vmSize": "Standard_A3",
"zone": ""
},
"network": {
"interface": [{
"ipv4": {
"ipAddress": [{
"privateIpAddress": "10.144.133.132",
"publicIpAddress": ""
}],
"subnet": [{
"address": "10.144.133.128",
"prefix": "26"
}]
},
"ipv6": {
"ipAddress": [
]
},
"macAddress": "0011AAFFBB22"
}]
}
}
Biztonság és hitelesítés
A Példány metaadatai szolgáltatás csak egy futó virtuálisgép-példányból érhető el nem módosítható IP-címen. A virtuális gépek csak a saját metaadataikkal/funkcióikkal kommunikálhatnak. Az API csak HTTP, és soha nem hagyja el a gazdagépet.
Annak érdekében, hogy a kérések közvetlenül az IMDS-hez legyenek szánva, és megakadályozzák a kérések nem szándékos vagy nem kívánt átirányítását, a kérések:
- Tartalmaznia kell a fejlécet
Metadata: true
- Nem tartalmazhat fejlécet
X-Forwarded-For
A szolgáltatás elutasítja azokat a kéréseket, amelyek nem felelnek meg mindkét követelménynek.
Fontos
Az IMDS nem bizalmas adatok csatornája. Az API nincs hitelesítve, és a virtuális gépen lévő összes folyamat számára nyitva áll. A szolgáltatáson keresztül közzétett információkat megosztott információnak kell tekinteni a virtuális gépen futó összes alkalmazás számára.
Ha nem szükséges, hogy a virtuális gép minden folyamata hozzáférjen az IMDS-végponthoz, beállíthatja a helyi tűzfalszabályokat a hozzáférés korlátozásához. Ha például csak egy ismert rendszerszolgáltatásnak kell hozzáférnie a példány metaadat-szolgáltatásához, beállíthat egy tűzfalszabályt az IMDS-végponton, amely csak az adott folyamat(ok) számára engedélyezi a hozzáférést, vagy megtagadja a hozzáférést a többi folyamathoz.
Proxyk
Az IMDS nem proxy mögött használható, és ez nem támogatott. A LEGTÖBB HTTP-ügyfél lehetővé teszi a proxyk letiltását a kérelmeken, és ezt a funkciót az IMDS-vel való kommunikáció során kell használni. A részletekért tekintse meg az ügyfél dokumentációját.
Fontos
Még akkor is felül kell bírálnia az alapértelmezett ügyfélproxy-beállításokat, ha nem ismeri a környezetben található proxykonfigurációkat. A proxykonfigurációk automatikusan felderíthetők, és ha nem sikerül megkerülni az ilyen konfigurációkat, az üzemkimaradási kockázatokkal jár, ha a gép konfigurációját a jövőben módosítani szeretné.
Sebességkorlátozás
Az IMDS-kérések általában másodpercenként 5 kérésre korlátozódnak (virtuális gépenként). A küszöbértéket meghaladó kérelmeket a rendszer a 429-es válasszal elutasítja. A felügyelt identitás kategóriára irányuló kérelmek másodpercenként 20 kérelemre és 5 egyidejű kérelemre korlátozódnak (virtuális gépenként).
HTTP-parancsok
Jelenleg a következő HTTP-parancsok támogatottak:
Parancs | Leírás |
---|---|
GET |
A kért erőforrás lekérése |
Paraméterek
A végpontok támogathatják a szükséges és/vagy választható paramétereket. Részletekért tekintse meg a szóban forgó végpont sémáját és dokumentációját.
Paraméterek lekérdezése
Az IMDS-végpontok támogatják a HTTP-lekérdezési sztring paramétereit. Példa:
http://169.254.169.254/metadata/instance/compute?api-version=2021-01-01&format=json
Megadja a paramétereket:
Név szerint | Érték |
---|---|
api-version |
2021-01-01 |
format |
json |
A rendszer elutasítja az ismétlődő lekérdezési paraméternevekkel rendelkező kérelmeket.
Útvonalparaméterek
A nagyobb JSON-blobokat visszavivő végpontok esetében támogatjuk az útvonalparaméterek hozzáfűzését a kérelemvégponthoz a válasz egy részhalmazára való szűréshez:
http://169.254.169.254/metadata/<endpoint>/[<filter parameter>/...]?<query parameters>
A paraméterek azoknak az indexeknek/kulcsoknak felelnek meg, amelyeket a json objektumon való végigjáráshoz használna, ha elemezett ábrázolást használna.
Például /metadata/instance
a json objektumot adja vissza:
{
"compute": { ... },
"network": {
"interface": [
{
"ipv4": {
"ipAddress": [{
"privateIpAddress": "10.144.133.132",
"publicIpAddress": ""
}],
"subnet": [{
"address": "10.144.133.128",
"prefix": "26"
}]
},
"ipv6": {
"ipAddress": [
]
},
"macAddress": "0011AAFFBB22"
},
...
]
}
}
Ha csak a számítási tulajdonságra szeretnénk szűrni a választ, elküldjük a kérést:
http://169.254.169.254/metadata/instance/compute?api-version=<version>
Hasonlóképpen, ha beágyazott tulajdonságra vagy adott tömbelemre szeretnénk szűrni, a hozzáfűző kulcsokat továbbra is megtartjuk:
http://169.254.169.254/metadata/instance/network/interface/0?api-version=<version>
a tulajdonság első elemére szűr, és a Network.interface
következőt adja vissza:
{
"ipv4": {
"ipAddress": [{
"privateIpAddress": "10.144.133.132",
"publicIpAddress": ""
}],
"subnet": [{
"address": "10.144.133.128",
"prefix": "26"
}]
},
"ipv6": {
"ipAddress": [
]
},
"macAddress": "0011AAFFBB22"
}
Feljegyzés
Levélcsomópontra format=json
való szűréskor nem működik. Ezekhez a lekérdezésekhez format=text
explicit módon kell megadni, mivel az alapértelmezett formátum json.
Séma
Adatformátum
Az IMDS alapértelmezés szerint JSON formátumban (Content-Type: application/json
) adja vissza az adatokat. A válaszszűrést támogató végpontok (lásd : Útvonalparaméterek) azonban a formátumot text
is támogatják.
Ha nem alapértelmezett válaszformátumot szeretne elérni, adja meg a kért formátumot lekérdezési sztringparaméterként a kérelemben. Példa:
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance?api-version=2017-08-01&format=text"
A json-válaszokban minden primitív típusú string
lesz, és a hiányzó vagy nem alkalmazható értékek mindig szerepelnek benne, de üres sztringre lesznek állítva.
Verziókezelés
Az IMDS verziószámozott, és kötelező megadni az API-verziót a HTTP-kérelemben. A követelmény alól az egyetlen kivétel a verzióvégpont , amely a rendelkezésre álló API-verziók dinamikus lekérésére használható.
Az újabb verziók hozzáadásakor a régebbi verziók továbbra is elérhetők a kompatibilitás érdekében, ha a szkriptek bizonyos adatformátumokhoz függenek.
Ha nem ad meg verziót, hibaüzenet jelenik meg a legújabb támogatott verziók listájával:
{
"error": "Bad request. api-version was not specified in the request. For more information refer to aka.ms/azureimds",
"newest-versions": [
"2020-10-01",
"2020-09-01",
"2020-07-15"
]
}
Támogatott API-verziók
Feljegyzés
A 2023-11-15-ös verzió még mindig ki van adva, előfordulhat, hogy egyes régiókban nem érhető el.
- 2023-11-15
- 2023-07-01
- 2021-12-13
- 2021-11-15
- 2021-11-01
- 2021-10-01
- 2021-08-01
- 2021-05-01
- 2021-03-01
- 2021-02-01
- 2021-01-01
- 2020-12-01
- 2020. 10. 01.
- 2020-09-01
- 2020-07-15
- 2020-06-01
- 2019-11-01
- 2019-08-15
- 2019-08-01
- 2019-06-04
- 2019-06-01
- 2019-04-30
- 2019-03-11
- 2019-02-01
- 2018-10-01
- 2018-04-02
- 2018-02-01
- 2017-12-01
- 2017-10-01
- 2017-08-01
- 2017-04-02
- 2017-03-01
Swagger
Az IMDS teljes Swagger-definíciója a következő címen érhető el: https://github.com/Azure/azure-rest-api-specs/blob/main/specification/imds/data-plane/readme.md
Regionális elérhetőség
A szolgáltatás általánosan elérhető az összes Azure-felhőben.
Gyökérvégpont
A gyökérvégpont az http://169.254.169.254/metadata
.
Végpontkategóriák
Az IMDS API több végpontkategóriát tartalmaz, amelyek különböző adatforrásokat jelölnek, amelyek mindegyike egy vagy több végpontot tartalmaz. Részletekért tekintse meg az egyes kategóriákat.
Kategóriagyökér | Leírás | Bevezetett verzió |
---|---|---|
/metadata/attested |
A tanúsított adatok megtekintése | 2018-10-01 |
/metadata/identity |
Felügyelt identitás megtekintése IMDS-en keresztül | 2018-02-01 |
/metadata/instance |
A példány metaadatainak megtekintése | 2017-04-02 |
/metadata/loadbalancer |
Lásd: Load Balancer-metaadatok lekérése IMDS-en keresztül | 2020. 10. 01. |
/metadata/scheduledevents |
Ütemezett események megtekintése az IMDS-en keresztül | 2017-08-01 |
/metadata/versions |
Verziók megtekintése | n/a |
Verziók
API-verziók listázása
A támogatott API-verziók készletét adja vissza.
GET /metadata/versions
Paraméterek
Nincs (ez a végpont nincs átirányítva).
Válasz
{
"apiVersions": [
"2017-03-01",
"2017-04-02",
...
]
}
Példány metaadatai
Virtuálisgép-metaadatok lekérése
Elérhetővé teszi a virtuálisgép-példány fontos metaadatait, beleértve a számítást, a hálózatot és a tárolást.
GET /metadata/instance
Paraméterek
Név | Kötelező/nem kötelező | Leírás |
---|---|---|
api-version |
Kötelező | A kérés kiszolgálásához használt verzió. |
format |
Szabadon választható* | A válasz formátuma (json vagy text ) *Megjegyzés: Kérelemparaméterek használatakor lehet szükség |
Ez a végpont az útvonalparamétereken keresztül támogatja a válaszszűrést.
Válasz
{
"compute": {
"azEnvironment": "AZUREPUBLICCLOUD",
"additionalCapabilities": {
"hibernationEnabled": "true"
},
"hostGroup": {
"id": "testHostGroupId"
},
"extendedLocation": {
"type": "edgeZone",
"name": "microsoftlosangeles"
},
"evictionPolicy": "",
"isHostCompatibilityLayerVm": "true",
"licenseType": "Windows_Client",
"location": "westus",
"name": "examplevmname",
"offer": "WindowsServer",
"osProfile": {
"adminUsername": "admin",
"computerName": "examplevmname",
"disablePasswordAuthentication": "true"
},
"osType": "Windows",
"placementGroupId": "f67c14ab-e92c-408c-ae2d-da15866ec79a",
"plan": {
"name": "planName",
"product": "planProduct",
"publisher": "planPublisher"
},
"platformFaultDomain": "36",
"platformSubFaultDomain": "",
"platformUpdateDomain": "42",
"priority": "Regular",
"publicKeys": [{
"keyData": "ssh-rsa 0",
"path": "/home/user/.ssh/authorized_keys0"
},
{
"keyData": "ssh-rsa 1",
"path": "/home/user/.ssh/authorized_keys1"
}
],
"publisher": "RDFE-Test-Microsoft-Windows-Server-Group",
"resourceGroupName": "macikgo-test-may-23",
"resourceId": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/virtualMachines/examplevmname",
"securityProfile": {
"secureBootEnabled": "true",
"virtualTpmEnabled": "false",
"encryptionAtHost": "true",
"securityType": "TrustedLaunch"
},
"sku": "2019-Datacenter",
"storageProfile": {
"dataDisks": [{
"bytesPerSecondThrottle": "979202048",
"caching": "None",
"createOption": "Empty",
"diskCapacityBytes": "274877906944",
"diskSizeGB": "1024",
"image": {
"uri": ""
},
"isSharedDisk": "false",
"isUltraDisk": "true",
"lun": "0",
"managedDisk": {
"id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampledatadiskname",
"storageAccountType": "StandardSSD_LRS"
},
"name": "exampledatadiskname",
"opsPerSecondThrottle": "65280",
"vhd": {
"uri": ""
},
"writeAcceleratorEnabled": "false"
}],
"imageReference": {
"id": "",
"offer": "WindowsServer",
"publisher": "MicrosoftWindowsServer",
"sku": "2019-Datacenter",
"version": "latest",
"communityGalleryImageId": "/CommunityGalleries/testgallery/Images/1804Gen2/Versions/latest",
"sharedGalleryImageId": "/SharedGalleries/1P/Images/gen2/Versions/latest",
"exactVersion": "1.1686127202.30113"
},
"osDisk": {
"caching": "ReadWrite",
"createOption": "FromImage",
"diskSizeGB": "30",
"diffDiskSettings": {
"option": "Local"
},
"encryptionSettings": {
"enabled": "false",
"diskEncryptionKey": {
"sourceVault": {
"id": "/subscriptions/test-source-guid/resourceGroups/testrg/providers/Microsoft.KeyVault/vaults/test-kv"
},
"secretUrl": "https://test-disk.vault.azure.net/secrets/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
},
"keyEncryptionKey": {
"sourceVault": {
"id": "/subscriptions/test-key-guid/resourceGroups/testrg/providers/Microsoft.KeyVault/vaults/test-kv"
},
"keyUrl": "https://test-key.vault.azure.net/secrets/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
}
},
"image": {
"uri": ""
},
"managedDisk": {
"id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampleosdiskname",
"storageAccountType": "StandardSSD_LRS"
},
"name": "exampleosdiskname",
"osType": "Windows",
"vhd": {
"uri": ""
},
"writeAcceleratorEnabled": "false"
},
"resourceDisk": {
"size": "4096"
}
},
"subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"tags": "baz:bash;foo:bar",
"userData": "Zm9vYmFy",
"version": "15.05.22",
"virtualMachineScaleSet": {
"id": "/subscriptions/xxxxxxxx-xxxxx-xxx-xxx-xxxx/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachineScaleSets/virtual-machine-scale-set-name"
},
"vmId": "02aab8a4-74ef-476e-8182-f6d2ba4166a6",
"vmScaleSetName": "crpteste9vflji9",
"vmSize": "Standard_A3",
"zone": ""
},
"network": {
"interface": [{
"ipv4": {
"ipAddress": [{
"privateIpAddress": "10.144.133.132",
"publicIpAddress": ""
}],
"subnet": [{
"address": "10.144.133.128",
"prefix": "26"
}]
},
"ipv6": {
"ipAddress": [
]
},
"macAddress": "0011AAFFBB22"
}]
}
}
Sémalebontás:
Számítás
Adatok | Leírás | Bevezetett verzió |
---|---|---|
azEnvironment |
Azure Environment, ahol a virtuális gép fut | 2018-10-01 |
additionalCapabilities.hibernationEnabled |
Azonosítja, hogy a hibernálás engedélyezve van-e a virtuális gépen | 2021-11-01 |
customData |
Ez a funkció elavult és le van tiltva az IMDS-ben. Ezt felváltotta a következő: userData |
2019-02-01 |
evictionPolicy |
Beállítja a kihasználatlan virtuális gépek kiürítési módját. | 2020-12-01 |
extendedLocation.type |
A virtuális gép kiterjesztett helyének típusa. | 2021-03-01 |
extendedLocation.name |
A virtuális gép kiterjesztett helyének neve | 2021-03-01 |
host.id |
A virtuális gép gazdagépének neve. Vegye figyelembe, hogy egy virtuális gép gazdagéppel vagy gazdagépcsoporttal rendelkezik, de mindkettővel nem. | 2021-11-15 |
hostGroup.id |
A virtuális gép gazdagépcsoportjának neve. Vegye figyelembe, hogy egy virtuális gép gazdagéppel vagy gazdagépcsoporttal rendelkezik, de mindkettővel nem. | 2021-11-15 |
isHostCompatibilityLayerVm |
Azonosítja, hogy a virtuális gép fut-e a gazdagépkompatibilitási rétegen | 2020-06-01 |
licenseType |
Az Azure Hybrid Benefit licencének típusa. Ez csak az AHB-kompatibilis virtuális gépek esetében van jelen | 2020-09-01 |
location |
A virtuális gép által futtatott Azure-régió | 2017-04-02 |
name |
A virtuális gép neve | 2017-04-02 |
offer |
Ajánlati információk a virtuálisgép-rendszerképhez, és csak az Azure-rendszerképtárból üzembe helyezett rendszerképek esetén jelenik meg | 2017-04-02 |
osProfile.adminUsername |
Megadja a rendszergazdai fiók nevét | 2020-07-15 |
osProfile.computerName |
Megadja a számítógép nevét | 2020-07-15 |
osProfile.disablePasswordAuthentication |
Megadja, hogy a jelszóhitelesítés le van-e tiltva. Ez csak Linux rendszerű virtuális gépek esetén érhető el | 2020. 10. 01. |
osType |
Linux vagy Windows | 2017-04-02 |
physicalZone |
A virtuális gép fizikai zónája | 2023-11-15 |
placementGroupId |
A méretezési csoport elhelyezési csoportja | 2017-08-01 |
plan |
Egy virtuális gép nevét, termékét és közzétevőjét tartalmazó csomag , ha az Azure Marketplace-rendszerkép | 2018-04-02 |
platformUpdateDomain |
A virtuális gép által futtatott tartomány frissítése | 2017-04-02 |
platformFaultDomain |
Tartalék tartomány , amelyen a virtuális gép fut | 2017-04-02 |
platformSubFaultDomain |
Alhibatartomány, amelyben a virtuális gép fut, ha van. | 2021-10-01 |
priority |
A virtuális gép prioritása. További információkért tekintse meg a kihasználatlan virtuális gépeket | 2020-12-01 |
provider |
A virtuális gép szolgáltatója | 2018-10-01 |
publicKeys |
A virtuális géphez rendelt nyilvános kulcsok és elérési utak gyűjteménye | 2018-04-02 |
publisher |
A virtuálisgép-rendszerkép közzétevője | 2017-04-02 |
resourceGroupName |
A virtuális gép erőforráscsoportja | 2017-08-01 |
resourceId |
Az erőforrás teljes azonosítója | 2019-03-11 |
sku |
A virtuálisgép-rendszerkép adott termékváltozata | 2017-04-02 |
securityProfile.secureBootEnabled |
Azonosítja, hogy az UEFI biztonságos rendszerindítás engedélyezve van-e a virtuális gépen | 2020-06-01 |
securityProfile.virtualTpmEnabled |
Azonosítja, hogy a virtuális virtuális platform modul (TPM) engedélyezve van-e a virtuális gépen | 2020-06-01 |
securityProfile.encryptionAtHost |
Azonosítja, hogy a gazdagép titkosítása engedélyezve van-e a virtuális gépen | 2021-11-01 |
securityProfile.securityType |
Azonosítja, hogy a virtuális gép megbízható vagy bizalmas virtuális gép-e | 2021-12-13 |
storageProfile |
Lásd az alábbi tárprofilt | 2019-06-01 |
subscriptionId |
Azure-előfizetés a virtuális géphez | 2017-08-01 |
tags |
A virtuális gép címkéi | 2017-08-01 |
tagsList |
JSON-tömbként formázott címkék a programozott elemzés megkönnyítése érdekében | 2019-06-04 |
userData |
A virtuális gép létrehozásakor megadott adatkészlet a kiépítés során vagy után történő használatra (Base64 kódolással) | 2021-01-01 |
version |
A virtuálisgép-rendszerkép verziója | 2017-04-02 |
virtualMachineScaleSet.id |
A virtuális gép rugalmas vezényléssel létrehozott virtuálisgép-méretezési csoport azonosítója a része. Ez a mező nem érhető el az egységes vezényléssel létrehozott virtuálisgép-méretezési csoportokhoz. | 2021-03-01 |
vmId |
A virtuális gép egyedi azonosítója . A blog csak az SMBIOS < 2.6-os verzióval rendelkező virtuális gépekre hivatkozott. Az SMBIOS >= 2.6 rendszerű virtuális gépek esetében a DMI UUID azonosítója kis endian formátumban jelenik meg, így nincs szükség bájtváltásra. | 2017-04-02 |
vmScaleSetName |
A méretezési csoport virtuálisgép-méretezési csoportjának neve | 2017-12-01 |
vmSize |
Virtuális gép mérete | 2017-04-02 |
zone |
A virtuális gép rendelkezésre állási zónája | 2017-12-01 |
† Ez a verzió még nem érhető el teljesen, és nem minden régióban támogatott.
Tárolási profil
A virtuális gép tárolási profilja három kategóriába sorolható: képhivatkozás, operációsrendszer-lemez és adatlemezek, valamint egy további objektum a helyi ideiglenes lemezhez.
A rendszerkép referenciaobjektuma az operációs rendszer lemezképével kapcsolatos alábbi információkat tartalmazza. Vegye figyelembe, hogy a rendszerképek a platformról, a piactérről, a közösségi galériából vagy a közvetlen megosztott katalógusból származhatnak, de mindkettő nem:
Adatok | Leírás | Bevezetett verzió |
---|---|---|
id |
Erőforrás-azonosító | 2019-06-01 |
offer |
A platform vagy a piactér rendszerképének ajánlata | 2019-06-01 |
publisher |
A platform vagy a piactér rendszerképének közzétevője | 2019-06-01 |
sku |
A platform vagy a piactér rendszerképének termékváltozata | 2019-06-01 |
version |
A kép verziója | 2019-06-01 |
communityGalleryImageId |
A közösségi rendszerkép erőforrás-azonosítója üres, egyébként üres | 2023-07-01 |
sharedGalleryImageId |
Erőforrás-azonosító o közvetlen megosztott rendszerkép, üres, ellenkező esetben | 2023-07-01 |
exactVersion |
A közösség vagy a közvetlen megosztott rendszerkép verziója | 2023-07-01 |
Az operációsrendszer-lemez objektuma a következő információkat tartalmazza a virtuális gép által használt operációsrendszer-lemezről:
Adatok | Leírás |
---|---|
caching |
Gyorsítótárazási követelmények |
createOption |
Információ a virtuális gép létrehozásának módjáról |
diffDiskSettings |
Rövid élettartamú lemezbeállítások |
diskSizeGB |
A lemez mérete GB-ban |
image |
Forrásfelhasználói lemezkép virtuális merevlemeze |
managedDisk |
Felügyelt lemezparaméterek |
name |
Lemez neve |
vhd |
Virtuális merevlemez |
writeAcceleratorEnabled |
Azt jelzi, hogy a writeAccelerator engedélyezve van-e a lemezen |
Az adatlemezek tömbje a virtuális géphez csatolt adatlemezek listáját tartalmazza. Minden adatlemez-objektum a következő információkat tartalmazza:
Adatok | Leírás | Bevezetett verzió |
---|---|---|
bytesPerSecondThrottle * |
Lemez olvasási/írási kvótája bájtban | 2021-05-01 |
caching |
Gyorsítótárazási követelmények | 2019-06-01 |
createOption |
Információ a virtuális gép létrehozásának módjáról | 2019-06-01 |
diffDiskSettings |
Rövid élettartamú lemezbeállítások | 2019-06-01 |
diskCapacityBytes * |
Lemez mérete bájtban | 2021-05-01 |
diskSizeGB |
A lemez mérete GB-ban | 2019-06-01 |
encryptionSettings |
A lemez titkosítási beállításai | 2019-06-01 |
image |
Forrásfelhasználói lemezkép virtuális merevlemeze | 2019-06-01 |
isSharedDisk * |
Azonosítja, hogy a lemez meg van-e osztva az erőforrások között | 2021-05-01 |
isUltraDisk |
Azonosítja, hogy az adatlemez ultralemez-e | 2021-05-01 |
lun |
A lemez logikai egységszáma | 2019-06-01 |
managedDisk |
Felügyelt lemezparaméterek | 2019-06-01 |
name |
Lemez neve | 2019-06-01 |
opsPerSecondThrottle * |
Lemez olvasási/írási kvótája az IOPS-ban | 2021-05-01 |
osType |
A lemezen található operációs rendszer típusa | 2019-06-01 |
vhd |
Virtuális merevlemez | 2019-06-01 |
writeAcceleratorEnabled |
Azt jelzi, hogy a writeAccelerator engedélyezve van-e a lemezen | 2019-06-01 |
*Ezek a mezők csak ultralemezekhez vannak feltöltve; ezek üres sztringek nem Ultra-lemezekről.
A titkosítási beállítások blobja adatokat tartalmaz a lemez titkosításának módjáról (ha titkosítva van):
Adatok | Leírás | Bevezetett verzió |
---|---|---|
diskEncryptionKey.sourceVault.id |
A lemeztitkosítási kulcs helye | 2021-11-01 |
diskEncryptionKey.secretUrl |
A titkos kód helye | 2021-11-01 |
keyEncryptionKey.sourceVault.id |
A kulcstitkosítási kulcs helye | 2021-11-01 |
keyEncryptionKey.keyUrl |
A kulcs helye | 2021-11-01 |
Az erőforráslemez-objektum kilobájtban tartalmazza a virtuális géphez csatolt Helyi ideiglenes lemez méretét, ha van ilyen. Ha nincs helyi ideiglenes lemez a virtuális géphez, ez az érték 0.
Adatok | Leírás | Bevezetett verzió |
---|---|---|
resourceDisk.size |
A virtuális gép helyi ideiglenes lemezének mérete (kB-ben) | 2021-02-01 |
Hálózat
Adatok | Leírás | Bevezetett verzió |
---|---|---|
ipv4.privateIpAddress |
A virtuális gép helyi IPv4-címe | 2017-04-02 |
ipv4.publicIpAddress |
A virtuális gép nyilvános IPv4-címe | 2017-04-02 |
subnet.address |
A virtuális gép alhálózati címe | 2017-04-02 |
subnet.prefix |
Alhálózati előtag, 24. példa | 2017-04-02 |
ipv6.ipAddress |
A virtuális gép helyi IPv6-címe | 2017-04-02 |
macAddress |
Mac virtuális gép címe | 2017-04-02 |
Feljegyzés
A hálózati hívás által visszaadott nikák nem garantáltan rendben vannak.
Felhasználói adatok lekérése
Új virtuális gép létrehozásakor megadhatja a virtuális gép kiépítése során vagy után használandó adatok készletét, és lekérheti azokat az IMDS-ben. Itt megtekintheti a végfelhasználói adatok végfelhasználói élményét.
A felhasználói adatok beállításához használja az itt található rövid útmutatósablont. Az alábbi minta bemutatja, hogyan kérhetők le ezek az adatok az IMDS-ben. Ez a funkció verziószámmal és újabb verzióval 2021-01-01
jelenik meg.
Feljegyzés
Biztonsági értesítés: Az IMDS nyitva áll a virtuális gépen lévő összes alkalmazás számára, a bizalmas adatokat nem szabad a felhasználói adatokba helyezni.
$userData = Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/compute/userData?api-version=2021-01-01&format=text"
[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($userData))
1. minta: Az Azure-ban futó virtuális gépek nyomon követése
Szolgáltatóként előfordulhat, hogy nyomon kell követnie a szoftvert futtató virtuális gépek számát, vagy olyan ügynökökkel kell rendelkeznie, amelyeknek nyomon kell követniük a virtuális gép egyediségét. Ha egy virtuális gép egyedi azonosítóját szeretné lekérni, használja a vmId
Instance Metadata Service mezőjét.
Kérelem
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/compute/vmId?api-version=2017-08-01&format=text"
Válasz
5c08b38e-4d57-4c23-ac45-aca61037f084
2. minta: Különböző adatreplikák elhelyezése
Bizonyos esetekben a különböző adatreplikák elhelyezése elsődleges fontosságú. A HDFS-replika elhelyezése vagy a tároló vezénylőn keresztüli elhelyezése például megkövetelheti, hogy tudja, hogy a platformFaultDomain
platformUpdateDomain
virtuális gép fut-e.
A példányokhoz rendelkezésre állási zónákat is használhat a döntések meghozatalához.
Ezeket az adatokat közvetlenül az IMDS-en keresztül kérdezheti le.
Kérelem
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/compute/platformFaultDomain?api-version=2017-08-01&format=text"
Válasz
0
3. minta: Virtuálisgép-címkék lekérése
A virtuálisgép-címkék a példány API-jának részét képezik a példány/számítási/címkék végpontja alatt. Előfordulhat, hogy címkéket alkalmaztak az Azure-beli virtuális gépre, hogy logikusan rendszerezze őket egy osztályozásba. A virtuális géphez rendelt címkék az alábbi kéréssel kérhetők le.
Kérelem
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/compute/tags?api-version=2017-08-01&format=text"
Válasz
Department:IT;ReferenceNumber:123456;TestStatus:Pending
A tags
mező egy sztring, amelynek címkéit pontosvesszők tagolják. Ez a kimenet akkor lehet probléma, ha a címkékben pontosvesszőket használnak. Ha egy elemző programozott módon nyeri ki a címkéket, a mezőre kell támaszkodnia tagsList
. A tagsList
mező egy olyan JSON-tömb, amely nem rendelkezik elválasztójelekkel, ezért könnyebben elemezhetők. A virtuális géphez rendelt tagsList az alábbi kéréssel kérhető le.
Kérelem
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/compute/tagsList?api-version=2019-06-04" | ConvertTo-Json -Depth 64
Válasz
{
"value": [
{
"name": "Department",
"value": "IT"
},
{
"name": "ReferenceNumber",
"value": "123456"
},
{
"name": "TestStatus",
"value": "Pending"
}
],
"Count": 3
}
4. minta: További információ a virtuális gépről a támogatási eset során
Szolgáltatóként támogatási hívást kaphat, ahol további információkat szeretne megtudni a virtuális gépről. Ha megkéri az ügyfelet, hogy ossza meg a számítási metaadatokat, alapvető információkat biztosíthat a támogatási szakembernek az Azure-beli virtuális gépek típusáról.
Kérelem
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/compute?api-version=2020-09-01" | ConvertTo-Json -Depth 64
Válasz
Feljegyzés
A válasz egy JSON-sztring. Az alábbi példaválasz jól olvasható.
{
"azEnvironment": "AZUREPUBLICCLOUD",
"extendedLocation": {
"type": "edgeZone",
"name": "microsoftlosangeles"
},
"evictionPolicy": "",
"additionalCapabilities": {
"hibernationEnabled": "false"
},
"hostGroup": {
"id": "testHostGroupId"
},
"isHostCompatibilityLayerVm": "true",
"licenseType": "Windows_Client",
"location": "westus",
"name": "examplevmname",
"offer": "WindowsServer",
"osProfile": {
"adminUsername": "admin",
"computerName": "examplevmname",
"disablePasswordAuthentication": "true"
},
"osType": "Windows",
"placementGroupId": "f67c14ab-e92c-408c-ae2d-da15866ec79a",
"plan": {
"name": "planName",
"product": "planProduct",
"publisher": "planPublisher"
},
"platformFaultDomain": "36",
"platformUpdateDomain": "42",
"priority": "Regular",
"publicKeys": [{
"keyData": "ssh-rsa 0",
"path": "/home/user/.ssh/authorized_keys0"
},
{
"keyData": "ssh-rsa 1",
"path": "/home/user/.ssh/authorized_keys1"
}
],
"publisher": "RDFE-Test-Microsoft-Windows-Server-Group",
"physicalZone": "useast-AZ01",
"resourceGroupName": "macikgo-test-may-23",
"resourceId": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/virtualMachines/examplevmname",
"securityProfile": {
"secureBootEnabled": "true",
"virtualTpmEnabled": "false",
"encryptionAtHost": "true",
"securityType": "TrustedLaunch"
},
"sku": "2019-Datacenter",
"storageProfile": {
"dataDisks": [{
"bytesPerSecondThrottle": "979202048",
"caching": "None",
"createOption": "Empty",
"diskCapacityBytes": "274877906944",
"diskSizeGB": "1024",
"image": {
"uri": ""
},
"isSharedDisk": "false",
"isUltraDisk": "true",
"lun": "0",
"managedDisk": {
"id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/MicrosoftCompute/disks/exampledatadiskname",
"storageAccountType": "StandardSSD_LRS"
},
"name": "exampledatadiskname",
"opsPerSecondThrottle": "65280",
"vhd": {
"uri": ""
},
"writeAcceleratorEnabled": "false"
}],
"imageReference": {
"id": "",
"offer": "WindowsServer",
"publisher": "MicrosoftWindowsServer",
"sku": "2019-Datacenter",
"version": "latest",
"communityGalleryImageId": "/CommunityGalleries/testgallery/Images/1804Gen2/Versions/latest",
"sharedGalleryImageId": "/SharedGalleries/1P/Images/gen2/Versions/latest",
"exactVersion": "1.1686127202.30113"
},
"osDisk": {
"caching": "ReadWrite",
"createOption": "FromImage",
"diskSizeGB": "30",
"diffDiskSettings": {
"option": "Local"
},
"encryptionSettings": {
"enabled": "false",
"diskEncryptionKey": {
"sourceVault": {
"id": "/subscriptions/test-source-guid/resourceGroups/testrg/providers/Microsoft.KeyVault/vaults/test-kv"
},
"secretUrl": "https://test-disk.vault.azure.net/secrets/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
},
"keyEncryptionKey": {
"sourceVault": {
"id": "/subscriptions/test-key-guid/resourceGroups/testrg/providers/Microsoft.KeyVault/vaults/test-kv"
},
"keyUrl": "https://test-key.vault.azure.net/secrets/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
}
},
"image": {
"uri": ""
},
"managedDisk": {
"id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampleosdiskname",
"storageAccountType": "StandardSSD_LRS"
},
"name": "exampleosdiskname",
"osType": "Windows",
"vhd": {
"uri": ""
},
"writeAcceleratorEnabled": "false"
},
"resourceDisk": {
"size": "4096"
}
},
"subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
"tags": "baz:bash;foo:bar",
"version": "15.05.22",
"virtualMachineScaleSet": {
"id": "/subscriptions/xxxxxxxx-xxxxx-xxx-xxx-xxxx/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachineScaleSets/virtual-machine-scale-set-name"
},
"vmId": "02aab8a4-74ef-476e-8182-f6d2ba4166a6",
"vmScaleSetName": "crpteste9vflji9",
"vmSize": "Standard_A3",
"zone": "3"
}
5. minta: Annak az Azure-környezetnek a lekérése, amelyben a virtuális gép fut
Az Azure különböző szuverén felhőkkel rendelkezik, például az Azure Government-hez. Néha szükség van az Azure-környezetre, hogy futásidejű döntéseket hozzon. Az alábbi minta bemutatja, hogyan érheti el ezt a viselkedést.
Kérelem
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/compute/azEnvironment?api-version=2018-10-01&format=text"
Válasz
AzurePublicCloud
Itt találja a felhőt és az Azure-környezet értékeit.
Felhőbeli | Azure-környezet |
---|---|
Minden általánosan elérhető globális Azure-régió | AzurePublicCloud |
Azure Government | AzureUSGovernmentCloud |
A 21Vianet által üzemeltetett Microsoft Azure | AzureChinaCloud |
Azure Germany | AzureGermanCloud |
6. minta: Hálózati adatok lekérése
Kérelem
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/network?api-version=2017-08-01" | ConvertTo-Json -Depth 64
Válasz
{
"interface": [
{
"ipv4": {
"ipAddress": [
{
"privateIpAddress": "10.1.0.4",
"publicIpAddress": "X.X.X.X"
}
],
"subnet": [
{
"address": "10.1.0.0",
"prefix": "24"
}
]
},
"ipv6": {
"ipAddress": []
},
"macAddress": "000D3AF806EC"
}
]
}
7. minta: Nyilvános IP-cím lekérése
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text"
Feljegyzés
- Ha IMDS-információkat szeretne lekérni a standard termékváltozat nyilvános IP-címéhez, tekintse át a Load Balancer Metadata API-t a további információkért.
Igazolt adatok
Igazolt adatok lekérése
Az IMDS segít garantálni, hogy a megadott adatok az Azure-ból származnak. A Microsoft aláírja az információk egy részét, így ellenőrizheti, hogy az Azure Marketplace-en egy rendszerkép fut-e az Azure-ban.
GET /metadata/attested/document
Paraméterek
Név | Kötelező/nem kötelező | Leírás |
---|---|---|
api-version |
Kötelező | A kérés kiszolgálásához használt verzió. |
nonce |
Választható | Egy 10 jegyű sztring, amely titkosítási nonce-ként szolgál. Ha nincs megadva érték, az IMDS az aktuális UTC időbélyeget használja. |
Válasz
{
"encoding":"pkcs7",
"signature":"MIIEEgYJKoZIhvcNAQcCoIIEAzCCA/8CAQExDzANBgkqhkiG9w0BAQsFADCBugYJKoZIhvcNAQcBoIGsBIGpeyJub25jZSI6IjEyMzQ1NjY3NjYiLCJwbGFuIjp7Im5hbWUiOiIiLCJwcm9kdWN0IjoiIiwicHVibGlzaGVyIjoiIn0sInRpbWVTdGFtcCI6eyJjcmVhdGVkT24iOiIxMS8yMC8xOCAyMjowNzozOSAtMDAwMCIsImV4cGlyZXNPbiI6IjExLzIwLzE4IDIyOjA4OjI0IC0wMDAwIn0sInZtSWQiOiIifaCCAj8wggI7MIIBpKADAgECAhBnxW5Kh8dslEBA0E2mIBJ0MA0GCSqGSIb3DQEBBAUAMCsxKTAnBgNVBAMTIHRlc3RzdWJkb21haW4ubWV0YWRhdGEuYXp1cmUuY29tMB4XDTE4MTEyMDIxNTc1N1oXDTE4MTIyMDIxNTc1NlowKzEpMCcGA1UEAxMgdGVzdHN1YmRvbWFpbi5tZXRhZGF0YS5henVyZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAML/tBo86ENWPzmXZ0kPkX5dY5QZ150mA8lommszE71x2sCLonzv4/UWk4H+jMMWRRwIea2CuQ5RhdWAHvKq6if4okKNt66fxm+YTVz9z0CTfCLmLT+nsdfOAsG1xZppEapC0Cd9vD6NCKyE8aYI1pliaeOnFjG0WvMY04uWz2MdAgMBAAGjYDBeMFwGA1UdAQRVMFOAENnYkHLa04Ut4Mpt7TkJFfyhLTArMSkwJwYDVQQDEyB0ZXN0c3ViZG9tYWluLm1ldGFkYXRhLmF6dXJlLmNvbYIQZ8VuSofHbJRAQNBNpiASdDANBgkqhkiG9w0BAQQFAAOBgQCLSM6aX5Bs1KHCJp4VQtxZPzXF71rVKCocHy3N9PTJQ9Fpnd+bYw2vSpQHg/AiG82WuDFpPReJvr7Pa938mZqW9HUOGjQKK2FYDTg6fXD8pkPdyghlX5boGWAMMrf7bFkup+lsT+n2tRw2wbNknO1tQ0wICtqy2VqzWwLi45RBwTGB6DCB5QIBATA/MCsxKTAnBgNVBAMTIHRlc3RzdWJkb21haW4ubWV0YWRhdGEuYXp1cmUuY29tAhBnxW5Kh8dslEBA0E2mIBJ0MA0GCSqGSIb3DQEBCwUAMA0GCSqGSIb3DQEBAQUABIGAld1BM/yYIqqv8SDE4kjQo3Ul/IKAVR8ETKcve5BAdGSNkTUooUGVniTXeuvDj5NkmazOaKZp9fEtByqqPOyw/nlXaZgOO44HDGiPUJ90xVYmfeK6p9RpJBu6kiKhnnYTelUk5u75phe5ZbMZfBhuPhXmYAdjc7Nmw97nx8NnprQ="
}
Az aláírási blob a dokumentum pkcs7 aláírással ellátott verziója. Tartalmazza az aláíráshoz használt tanúsítványt, valamint bizonyos virtuálisgép-specifikus részleteket.
Az Azure Resource Manager használatával létrehozott virtuális gépek esetében a dokumentum tartalmazza vmId
subscriptionId
sku
nonce
timeStamp
a dokumentum létrehozását és lejáratát, valamint a rendszerkép tervadatait. A csomaginformációk csak az Azure Marketplace-rendszerképekhez lesznek feltöltve.
A klasszikus üzemi modellel létrehozott virtuális gépek esetében csak azokat vmId
kell feltölteni, és subscriptionId
azok biztosan fel lesznek töltve. Kinyerheti a tanúsítványt a válaszból, és azzal ellenőrizheti, hogy a válasz érvényes-e, és az Azure-ból érkezik-e.
A dekódolt dokumentum a következő mezőket tartalmazza:
Adatok | Leírás | Bevezetett verzió |
---|---|---|
licenseType |
Az Azure Hybrid Benefit licencének típusa. Ez csak az AHB-kompatibilis virtuális gépek esetében van jelen. | 2020-09-01 |
nonce |
A kéréshez opcionálisan megadható sztring. Ha nem nonce lett megadva, a rendszer az aktuális koordinált univerzális időbélyeget használja. |
2018-10-01 |
plan |
Az Azure Marketplace Rendszerkép csomagja. Tartalmazza a csomagazonosítót (név), a termékképet vagy az ajánlatot (termék), valamint a közzétevő azonosítóját (közzétevő). | 2018-10-01 |
timestamp.createdOn |
Az aláírt dokumentum létrehozásának UTC-időbélyege | 2018-20-01 |
timestamp.expiresOn |
Az aláírt dokumentum lejáratának UTC-időbélyege | 2018-10-01 |
vmId |
A virtuális gép egyedi azonosítója | 2018-10-01 |
subscriptionId |
Azure-előfizetés a virtuális géphez | 2019-04-30 |
sku |
A virtuálisgép-rendszerkép adott termékváltozata (korrelál compute/sku a példány metaadat-végpontjának tulajdonságával [/metadata/instance ]) |
2019-11-01 |
Feljegyzés
Klasszikus (nem Azure Resource Manager-alapú) virtuális gépek esetén a rendszer csak a virtuálisgép-azonosítót tölti ki.
Példadokumentum:
{
"nonce":"20201130-211924",
"plan":{
"name":"planName",
"product":"planProduct",
"publisher":"planPublisher"
},
"sku":"Windows-Server-2012-R2-Datacenter",
"subscriptionId":"8d10da13-8125-4ba9-a717-bf7490507b3d",
"timeStamp":{
"createdOn":"11/30/20 21:19:19 -0000",
"expiresOn":"11/30/20 21:19:24 -0000"
},
"vmId":"02aab8a4-74ef-476e-8182-f6d2ba4166a6"
}
Aláírás-érvényesítési útmutató
Az aláírás ellenőrzésekor ellenőriznie kell, hogy az aláírás egy Azure-beli tanúsítvánnyal lett-e létrehozva. Ez a tanúsítvány tulajdonosának alternatív nevének (SAN) hitelesítésével történik.
Példa SAN-ra DNS Name=eastus.metadata.azure.com, DNS Name=metadata.azure.com
Feljegyzés
A nyilvános felhő és az egyes szuverén felhők tartománya eltérő lesz.
Felhőbeli | Tartomány a SAN-ban |
---|---|
Minden általánosan elérhető globális Azure-régió | *.metadata.azure.com |
Azure Government | *.metadata.azure.us |
A 21Vianet által üzemeltetett Azure | *.metadata.azure.cn |
Azure Germany | *.metadata.microsoftazure.de |
Feljegyzés
Előfordulhat, hogy a tanúsítványok nem egyeznek pontosan a tartományhoz. Ezért a minősítés érvényesítésének minden altartományt el kell fogadnia (például a nyilvános felhő általános rendelkezésre állási régiói elfogadnak *.metadata.azure.com
).
Nem javasoljuk a tanúsítvány rögzítését a köztes tanúsítványokhoz. További útmutatásért lásd : Tanúsítvány-rögzítés – Tanúsítvány-rögzítés és Azure-szolgáltatások. Vegye figyelembe, hogy az Azure Instance Metadata Szolgáltatás NEM fog értesítést küldeni a hitelesítésszolgáltató jövőbeli változásairól. Ehelyett a központosított Azure Hitelesítésszolgáltató részletes cikkét kell követnie az összes jövőbeli frissítéshez.
1. minta: Ellenőrizze, hogy a virtuális gép fut-e az Azure-ban
Az Azure Marketplace-beszállítók biztosítani szeretnék, hogy a szoftverük licence csak az Azure-ban fusson. Ha valaki egy helyszíni környezetbe másolja a VHD-t, a szállítónak képesnek kell lennie ezt észlelni. Az IMDS-ben ezek a szállítók aláírt adatokat kaphatnak, amelyek csak az Azure-ból kapnak választ.
Feljegyzés
Ehhez a mintához telepíteni kell a jq segédprogramot.
Érvényesítés
# Get the signature
$attestedDoc = Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri http://169.254.169.254/metadata/attested/document?api-version=2020-09-01
# Decode the signature
$signature = [System.Convert]::FromBase64String($attestedDoc.signature)
Ellenőrizze, hogy az aláírás a Microsoft Azure-ból származik-e, és ellenőrzi a tanúsítványlánc hibáit.
# Get certificate chain
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]($signature)
$chain = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Chain
$chain.Build($cert)
# Print the Subject of each certificate in the chain
foreach($element in $chain.ChainElements)
{
Write-Host $element.Certificate.Subject
}
# Get the content of the signed document
Add-Type -AssemblyName System.Security
$signedCms = New-Object -TypeName System.Security.Cryptography.Pkcs.SignedCms
$signedCms.Decode($signature);
$content = [System.Text.Encoding]::UTF8.GetString($signedCms.ContentInfo.Content)
Write-Host "Attested data: " $content
$json = $content | ConvertFrom-Json
# Do additional validation here
Az nonce
aláírt dokumentum összehasonlítható, ha adott meg egy paramétert nonce
a kezdeti kérelemben.
Felügyelt identitás
A rendszer által hozzárendelt felügyelt identitás engedélyezhető a virtuális gépen. Egy vagy több felhasználó által hozzárendelt felügyelt identitást is hozzárendelhet a virtuális géphez. Ezután jogkivonatokat kérhet a felügyelt identitásokhoz az IMDS-ből. Ezekkel a jogkivonatokkal hitelesítheti magát más Azure-szolgáltatásokkal, például az Azure Key Vaulttal.
A funkció engedélyezésének részletes lépéseit a hozzáférési jogkivonat beszerzése című témakörben találja.
A Load Balancer metaadatai
Amikor virtuálisgép- vagy virtuálisgép-készletpéldányokat helyez egy Azure Standard Load Balancer mögé, az IMDS használatával lekérheti a terheléselosztóval és a példányokkal kapcsolatos metaadatokat. További információ: Terheléselosztó adatainak lekérése.
Ütemezett események
Az ütemezett események állapotát az IMDS használatával szerezheti be. Ezután a felhasználó megadhatja az eseményeken futtatandó műveletek egy készletét. További információt a Linux vagy a Windows ütemezett eseményeinek ütemezett eseményei című témakörben talál.
Mintakód különböző nyelveken
Az alábbi táblázat a virtuális gépen belüli különböző nyelvek használatával történő IMDS-hívás mintáit sorolja fel:
Hibák és hibakeresés
Ha nem található adatelem vagy hibásan formázott kérés, a Példány metaadat-szolgáltatása szabványos HTTP-hibákat ad vissza. Példa:
HTTP-állapotkód | Ok |
---|---|
200 OK |
A kérés sikeres volt. |
400 Bad Request |
Hiányzó Metadata: true fejléc vagy hiányzó paraméter format=json levélcsomópont lekérdezésekor |
404 Not Found |
A kért elem nem létezik |
405 Method Not Allowed |
A HTTP-metódus (ige) nem támogatott a végponton. |
410 Gone |
Próbálkozzon újra egy idő után, legfeljebb 70 másodpercig |
429 Too Many Requests |
Túllépték az API sebességkorlátait |
500 Service Error |
Újrapróbálkozás egy idő után |
Gyakori kérdések
A hibaüzenetet
400 Bad Request, Required metadata header not specified
kapom. Mit jelent ez?- Az IMDS megköveteli a fejléc
Metadata: true
átadását a kérelemben. Ha ezt az élőfejet a REST-hívásban adja át, az IMDS-hez való hozzáférést teszi lehetővé.
- Az IMDS megköveteli a fejléc
Miért nem kapok számítási adatokat a virtuális gépemhez?
- Az IMDS jelenleg csak az Azure Resource Managerrel létrehozott példányokat támogatja.
Néhány évvel ezelőtt létrehoztam a virtuális gépet az Azure Resource Manageren keresztül. Miért nem látom a számítási metaadatok adatait?
A felhasználói adatok megegyeznek az egyéni adatokkal?
- A felhasználói adatok az egyéni adatokhoz hasonló funkciókat kínálnak, így saját metaadatokat adhat át a virtuálisgép-példánynak. A különbség az, hogy a felhasználói adatok lekérése az IMDS-ben történik, és a virtuálisgép-példány teljes élettartama alatt állandó. A meglévő egyéni adatfunkció továbbra is működni fog a cikkben leírtak szerint. Egyéni adatokat azonban csak a helyi rendszermappán keresztül kérhet le, az IMDS-ben nem.
Miért nem jelenik meg az új verzióhoz tartozó összes adat?
Miért kapom meg a hibát
500 Internal Server Error
, vagy410 Resource Gone
?- Próbálja meg újra a kérést. További információ: Átmeneti hibakezelés. Ha a probléma továbbra is fennáll, hozzon létre egy támogatási problémát az Azure Portalon a virtuális gép számára.
Működik ez a méretezési csoport példányainál?
- Igen, az IMDS a méretezési csoportok példányaihoz érhető el.
Frissítettem a címkéket a méretezési csoportokban, de nem jelennek meg a példányokban (ellentétben az egypéldányos virtuális gépekkel). Valami rosszat csinálok?
- A méretezési csoportok címkéi jelenleg csak újraindításkor, újraimázásakor vagy lemezmódosításkor jelennek meg a virtuális gép számára a példányon.
Miért nem látom a virtuális gépem termékváltozatának adatait részletekben
instance/compute
?- Az Azure Marketplace-ről létrehozott egyéni rendszerképek esetében az Azure platform nem őrzi meg az egyéni rendszerkép termékváltozatának adatait és az egyéni rendszerképből létrehozott virtuális gépek részleteit. Ez a kialakítás, ezért nem jelenik meg a virtuális gép
instance/compute
részleteiben.
- Az Azure Marketplace-ről létrehozott egyéni rendszerképek esetében az Azure platform nem őrzi meg az egyéni rendszerkép termékváltozatának adatait és az egyéni rendszerképből létrehozott virtuális gépek részleteit. Ez a kialakítás, ezért nem jelenik meg a virtuális gép
Miért időtúllépést (vagy nem sikerült csatlakozni) a kérésem a szolgáltatáshoz való híváshoz?
A metaadat-hívásokat a virtuális gép elsődleges hálózati kártyájára rendelt elsődleges IP-címről kell kezdeményezni. Ha módosította az útvonalakat, a virtuális gép helyi útválasztási táblájában rendelkeznie kell a 169.254.169.254/32-es cím útvonalával.
Adja meg a helyi útválasztási táblát, és keresse meg az IMDS-bejegyzést. Példa:
route print
IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 172.16.69.1 172.16.69.7 10 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331 168.63.129.16 255.255.255.255 172.16.69.1 172.16.69.7 11 169.254.169.254 255.255.255.255 172.16.69.1 172.16.69.7 11 ... (continues) ...
Ellenőrizze, hogy létezik-e
169.254.169.254
útvonal, és jegyezze fel a megfelelő hálózati adaptert (például172.16.69.7
).Adja meg az interfész konfigurációját, és keresse meg az útválasztási táblázatban hivatkozott felületnek megfelelő felületet, a MAC (fizikai) cím jelölésével.
ipconfig /all
... (continues) ... Ethernet adapter Ethernet: Connection-specific DNS Suffix . : xic3mnxjiefupcwr1mcs1rjiqa.cx.internal.cloudapp.net Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter Physical Address. . . . . . . . . : 00-0D-3A-E5-1C-C0 DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::3166:ce5a:2bd5:a6d1%3(Preferred) IPv4 Address. . . . . . . . . . . : 172.16.69.7(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 ... (continues) ...
Ellenőrizze, hogy az interfész megfelel-e a virtuális gép elsődleges hálózati adapterének és elsődleges IP-címének. Az elsődleges hálózati adaptert és IP-címet az Azure Portal hálózati konfigurációjával, vagy az Azure CLI-vel való kereséssel találja meg. Jegyezze fel a privát IP-címeket (és a MAC-címet, ha a parancssori felületet használja). Íme egy PowerShell CLI-példa:
$ResourceGroup = '<Resource_Group>' $VmName = '<VM_Name>' $NicNames = az vm nic list --resource-group $ResourceGroup --vm-name $VmName | ConvertFrom-Json | Foreach-Object { $_.id.Split('/')[-1] } foreach($NicName in $NicNames) { $Nic = az vm nic show --resource-group $ResourceGroup --vm-name $VmName --nic $NicName | ConvertFrom-Json Write-Host $NicName, $Nic.primary, $Nic.macAddress }
wintest767 True 00-0D-3A-E5-1C-C0
Ha nem egyeznek, frissítse az útválasztási táblát, hogy az elsődleges hálózati adapter és IP-cím legyen megcélzva.
Fürtszolgáltatás feladatátvétele a Windows Serveren
Amikor feladatátvételi fürtszolgáltatással kérdezi le az IMDS-t, néha szükség van egy útvonal hozzáadására az útválasztási táblához. Ennek módja az alábbi:
Nyisson meg egy parancssort rendszergazdai jogosultságokkal.
Futtassa a következő parancsot, és jegyezze fel a hálózati célhely (
0.0.0.0
) felületének címét az IPv4 útvonaltáblában.
route print
Feljegyzés
A következő példakimenet egy Olyan Windows Server rendszerű virtuális gépről származik, amelyen engedélyezve van a feladatátvevő fürt. Az egyszerűség kedvéért a kimenet csak az IPv4 útvonaltáblát tartalmazza.
IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 10.0.1.1 10.0.1.10 266 10.0.1.0 255.255.255.192 On-link 10.0.1.10 266 10.0.1.10 255.255.255.255 On-link 10.0.1.10 266 10.0.1.15 255.255.255.255 On-link 10.0.1.10 266 10.0.1.63 255.255.255.255 On-link 10.0.1.10 266 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331 169.254.0.0 255.255.0.0 On-link 169.254.1.156 271 169.254.1.156 255.255.255.255 On-link 169.254.1.156 271 169.254.255.255 255.255.255.255 On-link 169.254.1.156 271 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 224.0.0.0 240.0.0.0 On-link 169.254.1.156 271 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 255.255.255.255 255.255.255.255 On-link 169.254.1.156 271 255.255.255.255 255.255.255.255 On-link 10.0.1.10 266
Futtassa a következő parancsot, és használja a jelen példában (
10.0.1.10
) szereplő hálózati célhely (interface for Network Destination0.0.0.0
) címét.route add 169.254.169.254/32 10.0.1.10 metric 1 -p
Támogatás
Ha több próbálkozás után nem tud metaadat-választ kapni, támogatási problémát hozhat létre az Azure Portalon.
Visszajelzés a termékről
Termékvisszajelzéseket és ötleteket adhat a felhasználói visszajelzési csatornánknak a Virtual Machines > Instance Metadata Service szolgáltatásban itt