Recupero dei metadati delle istanze
Il servizio IMDS (Instance Metadata Service) fornisce informazioni su un'istanza in esecuzione, inclusi una vasta gamma di dettagli sull'istanza, sulle schede VNIC (Virtual Network Interface Card) collegate, sui collegamenti dei volumi abilitati per il multipath e su eventuali metadati personalizzati definiti dall'utente. IMDS fornisce inoltre informazioni al cloud-init che è possibile utilizzare per vari task di inizializzazione del sistema.
È possibile trovare alcune di queste informazioni nella console nella pagina Dettagli istanza oppure ottenere tutte queste informazioni eseguendo il login all'istanza e utilizzando il servizio metadati. Il servizio viene eseguito su ogni istanza ed è un endpoint HTTP in ascolto su 169.254.169.254. Se un'istanza dispone di più VNIC, è necessario inviare la richiesta utilizzando la VNIC primaria.
Per aumentare la sicurezza delle richieste di metadati, si consiglia di aggiornare tutte le applicazioni in modo che utilizzino l'endpoint IMDS versione 2, se supportato dall'immagine. Quindi, disabilitare le richieste a IMDS versione 1.
Per le autorizzazioni, vedere Criteri IAM necessari per l'utilizzo delle istanze.
Aggiornamento al servizio di metadati dell'istanza v2
Il servizio metadati dell'istanza è disponibile in due versioni, la versione 1 e la versione 2. IMDSv2 offre una maggiore sicurezza rispetto a v1.
Quando si disabilita IMDSv1 e si consentono richieste solo a IMDSv2, cambiano le seguenti cose:
- Tutte le richieste devono essere effettuate agli endpoint v2 (
/opc/v2). Le richieste agli endpoint v1 (/opc/v1e/openstack) vengono rifiutate con un errore 404 non trovato. - Tutte le richieste agli endpoint v2 devono includere un'intestazione di autorizzazione. Le richieste che non includono l'intestazione di autorizzazione vengono rifiutate.
- Le richieste inoltrate utilizzando le intestazioni HTTP
Forwarded,X-Forwarded-ForoX-Forwarded-Hostvengono rifiutate.
Per eseguire l'upgrade del servizio di metadati dell'istanza in un'istanza di computazione, attenersi ai passi di alto livello riportati di seguito.
- Verificare che l'istanza utilizzi un'immagine che supporta IMDSv2.
- Identificare le richieste agli endpoint v1 legacy.
- Eseguire la migrazione di tutte le applicazioni per supportare gli endpoint v2.
- Disabilitare tutte le richieste agli endpoint v1 precedenti.
Immagini supportate per IMDSv2
IMDSv2 è supportato sulle seguenti immagini della piattaforma:
- Immagini di Oracle Autonomous Linux 8.x
- Immagini di Oracle Autonomous Linux 7.x rilasciate a giugno 2020 o release successive
- Immagini di Oracle Linux 8.x e Oracle Linux 7.x rilasciate a luglio 2020 o versioni successive
Altre immagini della piattaforma, la maggior parte delle immagini personalizzate e la maggior parte delle immagini del Marketplace non supportano IMDSv2. Le immagini Linux personalizzate potrebbero supportare IMDSv2 se l'inizializzazione cloud viene aggiornata alla versione 20.3 o successiva e l'agente Oracle Cloud viene aggiornato alla versione 0.0.19 o successiva. Le immagini Windows personalizzate potrebbero supportare IMDSv2 se Oracle Cloud Agent viene aggiornato alla versione 1.0.0.0 o successiva; cloudbase-init non supporta IMDSv2.
Identificazione delle richieste agli endpoint IMDSv1 precedenti
Per identificare gli endpoint IMDS specifici a cui vengono effettuate le richieste e gli agenti che effettuano le richieste, utilizzare la metrica InstanceMetadataRequests.
Per identificare le versioni di IMDS abilitate per un'istanza, effettuare una delle operazioni riportate di seguito.
-
Uso della console:
- Apri il menu di navigazione e seleziona Computazione. In Computazione, selezionare Istanze.
- Fare clic sull'istanza a cui si è interessati.
- Nella sezione Dettagli istanza, accanto al servizio metadati istanza, prendere nota dei numeri di versione.
-
Utilizzo dell'API: utilizzare l'operazione GetInstance o l'operazione ListInstances. Nella risposta, l'attributo
areLegacyImdsEndpointsDisablednell'oggettoInstanceOptionsrestituiscefalsese per l'istanza sono abilitati sia IMDSv1 che IMDSv2. Restituiscetruese IMDSv1 è disabilitato.
Disabilitazione delle richieste agli endpoint IMDSv1 precedenti
Prima di disabilitare le richieste a IMDSv1, verificare che l'istanza non utilizzi gli endpoint IMDSv1. Se l'istanza si basa ancora su IMDSv1 quando si disabilitano le richieste, alcune funzionalità potrebbero andare perdute.
Seguire una delle operazioni riportate di seguito.
-
Uso della console:
- Apri il menu di navigazione e seleziona Computazione. In Computazione, selezionare Istanze.
- Fare clic sull'istanza a cui si è interessati.
- Nella sezione Dettagli istanza, accanto al servizio metadati istanza, fare clic su Modifica.
- Per Versione IMDS consentita, selezionare l'opzione Solo versione 2.
- Fare clic su Salva modifiche
-
Utilizzo dell'API: utilizzare l'operazione UpdateInstance. Nel corpo della richiesta, nell'oggetto
InstanceOptions, passare il valoretrueper l'attributoareLegacyImdsEndpointsDisabled.
Se si disabilita IMDSv1 in un'istanza che non supporta IMDSv2, potrebbe non essere possibile connettersi all'istanza all'avvio. Per abilitare nuovamente IMDSv1: utilizzando la console, nella pagina Dettagli istanza, accanto a Servizio metadati istanza, fare clic su Modifica. Selezionare l'opzione Versione 1 e versione 2, salvare le modifiche e quindi riavviare l'istanza. Utilizzando l'API, utilizzare l'operazione UpdateInstance.
Limitazione richiesta
Oracle Cloud Infrastructure applica la limitazione alle richieste di servizio dei metadati delle istanze per evitare l'uso accidentale o abusivo delle risorse. Per evitare limitazioni, invece di eseguire query sulle credenziali di sicurezza per ogni transazione, inserire nella cache le credenziali fino a quando non sono prossime alla scadenza.
Se fai troppe richieste troppo velocemente, potresti vedere alcuni avere successo e altri fallire. In caso di limitazione, Oracle consiglia di riprovare utilizzando un back-off esponenziale.
Recupero dei metadati delle istanze nelle immagini della piattaforma
È possibile ottenere i metadati delle istanze per le immagini della piattaforma utilizzando cURL nelle istanze Linux. Nelle istanze di Windows è possibile utilizzare cURL (se supportato dalla versione di Windows) o un browser Internet.
Tutte le richieste al servizio di metadati dell'istanza v2 devono includere l'intestazione seguente:
Authorization: Bearer OracleI metadati dell'istanza a cui si accede utilizzando IMDSv2 sono disponibili nei seguenti URL radice:
-
Tutte le informazioni sull'istanza:
http://169.254.169.254/opc/v2/instance/ -
Informazioni sulle VNIC collegate all'istanza:
http://169.254.169.254/opc/v2/vnics/ -
Informazioni su un volume collegato all'istanza con un collegamento abilitato per multipath:
http://169.254.169.254/opc/v2/volumeAttachments/
I metadati dell'istanza a cui si accede utilizzando IMDSv1 sono disponibili nei seguenti URL radice. Nessuna intestazione necessaria.
-
Tutte le informazioni sull'istanza:
http://169.254.169.254/opc/v1/instance/ -
Informazioni sulle VNIC collegate all'istanza:
http://169.254.169.254/opc/v1/vnics/ -
Informazioni su un volume collegato all'istanza con un collegamento abilitato per multipath:
http://169.254.169.254/opc/v1/volumeAttachments/
I valori per chiavi di metadati specifiche sono disponibili come percorsi secondari sotto l'URL radice.
Per ottenere i metadati dell'istanza per le istanze Linux
- Connettersi a un'istanza Linux utilizzando SSH.
-
Utilizzare cURL per inviare una richiesta GET all'URL dei metadati dell'istanza a cui si è interessati. Ad esempio:
curl -H "Authorization: Bearer Oracle" -L http://169.254.169.254/opc/v2/instance/
Per ottenere i metadati dell'istanza per le istanze Windows
I passi per ottenere i metadati su un'istanza di Windows dipendono dalla versione del servizio di metadati dell'istanza da cui si richiedono i metadati.
Per ottenere i metadati dell'istanza di Windows mediante IMDSv2:
- Connettersi a un'istanza di Windows utilizzando una connessione Desktop remoto.
-
A seconda che la versione di Windows includa cURL, effettuare una delle operazioni riportate di seguito.
-
Se la versione di Windows include cURL, utilizzare cURL per inviare una richiesta GET all'URL dei metadati dell'istanza a cui si è interessati. Ad esempio:
curl -H "Authorization: Bearer Oracle" -L http://169.254.169.254/opc/v2/instance/ -
Se la versione di Windows non include cURL, è possibile ottenere i metadati delle istanze nel browser Internet. Passare all'URL dei metadati dell'istanza a cui si è interessati e passare una richiesta che include l'intestazione di autorizzazione. Per ulteriori informazioni sull'inclusione delle intestazioni in una richiesta, vedere le istruzioni del browser. Potrebbe essere necessario installare un'estensione browser di terze parti che consente di includere le intestazioni delle richieste.
-
Per ottenere i metadati dell'istanza di Windows mediante IMDSv1:
- Connettersi a un'istanza di Windows utilizzando una connessione Desktop remoto.
- Aprire un browser Internet, quindi passare all'URL dei metadati dell'istanza a cui si è interessati.
Riprova per metadati istanza
Il servizio di metadati dell'istanza subisce periodicamente brevi periodi di inattività per la manutenzione. Pertanto, quando si tenta di accedere agli endpoint IMDS, questi potrebbero non essere disponibili. Come best practice, implementa la logica dei nuovi tentativi quando accedi agli endpoint IMDS. Si consiglia di eseguire un nuovo tentativo fino a tre volte con un timeout di 30 secondi se si riceve una risposta 404, 429 o 5xx. Per ulteriori informazioni ed esempi, consultare la documentazione di SDK for Java.
Chiavi metadati
I metadati dell'istanza includono chiavi di metadati predefinite definite da Compute e che non possono essere modificate, nonché chiavi di metadati personalizzate create dall'utente.
Alcune voci di metadati sono directory che contengono chiavi di metadati aggiuntive. Nelle tabelle seguenti, le voci con barra finale indicano una directory. Ad esempio, regionInfo/ è una directory che contiene altre chiavi di metadati.
Chiavi metadati per un'istanza
I metadati riportati di seguito sono disponibili su un'istanza. I percorsi sono relativi a http://169.254.169.254/opc/v2/instance/.
| Voce metadati | Descrizione |
|---|---|
availabilityDomain
|
Il dominio di disponibilità in cui è in esecuzione l'istanza. Questo nome include il prefisso specifico della tenancy per il nome del dominio di disponibilità. Esempio: |
faultDomain
|
Il nome del dominio di errore in cui è in esecuzione l'istanza. Esempio: |
compartmentId
|
L'OCID del compartimento che contiene l'istanza. |
displayName
|
Nome riconoscibile dall'utente dell'istanza. |
hostname
|
Il nome host dell'istanza. |
id
|
OCID dell'istanza. |
image
|
OCID dell'immagine utilizzata per avviare l'istanza. |
metadata/
|
Directory contenente i metadati personalizzati forniti per l'istanza. Per eseguire una query sui metadati per una chiave di metadati personalizzata specifica, utilizzare |
metadata/ssh_authorized_keys
|
Per le istanze Linux, la chiave SSH pubblica fornita durante la creazione dell'istanza. |
metadata/user_data
|
Dati utente che devono essere utilizzati da cloud-init o cloudbase-init per eseguire script personalizzati o fornire una configurazione personalizzata. |
region
|
L'area che contiene il dominio di disponibilità in cui è in esecuzione l'istanza. Per le aree us-phoenix-1 e us-ashburn-1 vengono restituiti rispettivamente i valori Esempi: |
canonicalRegionName
|
Identificativo dell'area per l'area che contiene il dominio di disponibilità in cui è in esecuzione l'istanza. Esempio: |
ociAdName
|
Il dominio di disponibilità in cui è in esecuzione l'istanza. Questo nome viene utilizzato internamente e corrisponde all'etichetta del centro dati. Esempio: |
regionInfo/
|
Directory contenente le informazioni sull'area che contiene il dominio di disponibilità in cui è in esecuzione l'istanza. |
regionInfo/realmKey
|
La chiave per il realm in cui si trova l'area. Esempio: |
regionInfo/realmDomainComponent
|
Il dominio per il realm. Esempio: |
regionInfo/regionKey
|
La chiave di 3 lettere per l'area. Esempio: |
regionInfo/regionIdentifier
|
Identificativo dell'area. Esempio: |
shape
|
La forma dell'istanza. La forma determina il numero di CPU e la quantità di memoria allocata all'istanza. È possibile enumerare tutte le forme disponibili chiamando l'operazione ListShapes. |
state
|
Lo stato corrente del ciclo di vita dell'istanza. Per un elenco dei valori consentiti, vedere Istanza. Esempio: |
timeCreated
|
La data e l'ora di creazione dell'istanza, nel formato dell'indicatore orario UNIX in millisecondi dall'epoca. |
agentConfig/
|
Directory contenente informazioni sul software e sui plugin dell'agente Oracle Cloud in esecuzione sull'istanza. |
agentConfig/monitoringDisabled
|
Valore booleano che indica se il software dell'agente Oracle Cloud può raccogliere metriche delle prestazioni e monitorare l'istanza utilizzando i plugin di monitoraggio. I plugin di monitoraggio sono controllati da questo parametro e dalla configurazione per plugin nell'oggetto |
agentConfig/managementDisabled
|
Valore booleano che indica se il software dell'agente Oracle Cloud può eseguire tutti i plugin di gestione disponibili. I plugin di gestione sono controllati da questo parametro e dalla configurazione per plugin nell'oggetto |
agentConfig/allPluginsDisabled
|
Valore booleano che indica se l'agente Oracle Cloud può eseguire tutti i plugin disponibili. Ciò include i plugin di gestione e monitoraggio. |
agentConfig/pluginsConfig/
|
Directory contenente le informazioni sui plugin gestiti dall'agente Oracle Cloud nell'istanza. |
agentConfig/pluginsConfig/name
|
Il nome del plugin. |
agentConfig/pluginsConfig/desiredState
|
Indica se il plugin deve essere abilitato o disabilitato. Per abilitare i plugin di monitoraggio e gestione, anche gli attributi |
freeformTags/
|
Directory contenente le tag in formato libero aggiunte all'istanza. |
definedTags/
|
Directory contenente le tag definite aggiunte all'istanza. |
Di seguito è riportata una risposta di esempio che mostra tutte le informazioni per un'istanza.
{
"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"
}
}
}
Chiavi di metadati per le VNIC collegate
Sono disponibili i metadati seguenti relativi alle VNIC collegate all'istanza. I percorsi sono relativi a http://169.254.169.254/opc/v2/vnics/.
| Voce metadati | Descrizione |
|---|---|
vnicId
|
OCID della VNIC. |
privateIp
|
Indirizzo IP privato dell'oggetto privateIp primario nella VNIC. L'indirizzo si trova all'interno del CIDR della subnet della VNIC. |
vlanTag
|
Tag VLAN assegnata da Oracle della VNIC collegata. Se la VNIC appartiene a una VLAN nell'ambito di Oracle Cloud VMware Solution, il valore |
macAddr
|
Indirizzo MAC della VNIC. Se la VNIC appartiene a una VLAN nell'ambito di Oracle Cloud VMware Solution, l'indirizzo MAC viene appreso. Se la VNIC appartiene a una subnet, l'indirizzo MAC è un valore statico fornito da Oracle. |
virtualRouterIp
|
L'indirizzo IP del router virtuale. |
subnetCidrBlock
|
Blocco CIDR della subnet. |
nicIndex
|
La scheda di interfaccia di rete fisica (NIC, Physical Network Interface Card) utilizzata dalla VNIC. Alcune forme di istanza Bare Metal hanno due NIC fisici attivi (0 e 1). Se aggiungi una VNIC secondaria a una di queste istanze, puoi specificare quale NIC verrà utilizzata dalla VNIC. Per ulteriori informazioni, consulta Schede di interfaccia di rete virtuali (VNIC). |
Di seguito è riportata una risposta di esempio che mostra le VNIC collegate a un'istanza.
[ {
"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
} ]Chiavi di metadati per i volumi collegati con allegati abilitati per più percorsi
Sono disponibili i metadati seguenti relativi ai collegamenti di volumi abilitati per più percorsi collegati all'istanza. I percorsi sono relativi a http://169.254.169.254/opc/v2/volumeAttachments/.
| Voce metadati | Descrizione |
|---|---|
id
|
OCID del collegamento del volume. |
instanceId
|
OCID dell'istanza. |
volumeId
|
OCID del volume. |
ipv4
|
Indirizzo IPv4 della destinazione iSCSI. |
iqn
|
L'IQN della destinazione iSCSI. |
port
|
La porta della destinazione iSCSI. |
multipathDevices
|
Lista di dispositivi multipath secondari con le proprietà ipv4, iqn e port. |
Di seguito è riportata una risposta di esempio che mostra i collegamenti di volume abilitati per il multipath per un'istanza.
[
{
"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
}
]
}
]Chiavi metadati per configurazione forma
Questo comando visualizza le OCPU disponibili in ogni forma di computazione. Queste informazioni sono utili per le forme flessibili in cui un'applicazione deve conoscere meglio OCPUS, VNIC o qualsiasi dettaglio di forma configurabile.
Sono disponibili i metadati riportati di seguito relativi alla sezione Forme di computazione collegate all'istanza. I percorsi sono relativi a http://169.254.169.254/opc/v2/instance/shapeConfig.
| Voce metadati | Descrizione |
|---|---|
Shape
|
Il nome dell'istanza. |
OCPU Count
|
Numero di OCPU limitate dalla forma VM scelta e da eventuali quote OCPU impostate per la tenancy. |
networkingBandwidthInGbps
|
Quantità di dati che possono essere trasferiti in una rete tra due punti. |
Memory
|
Il limite di memoria OCPU per la forma VM scelta. Per ulteriori informazioni, vedere Forme di computazione. |
maxVnicAttachments
|
Il numero massimo di collegamenti tra una VNIC e un'istanza. |
Utilizzare il comando cURL seguente per inviare una richiesta GET ai metadati di configurazione della forma dell'istanza a cui si è interessati.
curl -H "Authorization: Bearer Oracle" -L http://169.254.169.254
/opc/v2/instance/shapeConfig
Di seguito è riportata una risposta di esempio che mostra i metadati di configurazione della forma per un'istanza Linux.
{
"ocpus" : 4.0,
"memoryInGBs" : 60.0,
"networkingBandwidthInGbps" : 4.0,
"maxVnicAttachments" : 4
}