View a markdown version of this page

Configurazione delle opzioni dei metadati dell'istanza per le nuove istanze - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle opzioni dei metadati dell'istanza per le nuove istanze

Puoi configurare le seguenti opzioni dei metadati di istanza per le nuove istanze.

Nota

Le impostazioni per queste opzioni sono configurate a livello di account, direttamente nell'account o utilizzando una policy dichiarativa. Devono essere configurate in ogni Regione AWS in cui si desidera configurare le opzioni dei metadati di istanza. L'utilizzo di una policy dichiarativa consente di applicare le impostazioni contemporaneamente su più regioni, nonché su più account. Quando viene utilizzata una policy dichiarativa, non è possibile modificare le impostazioni direttamente all'interno di un account. Questo argomento illustra la modalità di configurazione delle impostazioni direttamente all'interno di un account. Per informazioni sull'utilizzo delle policy dichiarative, consulta Policy dichiarative nella Guida per l'utente di AWS Organizations .

Richiesta dell'uso di IMDSv2

Puoi utilizzare uno dei metodi seguenti per richiedere l'utilizzo di IMDSv2 sulle nuove istanze.

Configurazione di IMDSv2 come impostazione predefinita per l'account

È possibile impostare la versione predefinita per l'Instance Metadata Service (IMDS) a livello di account per ciascuno di essi. Regione AWS Ciò significa che quando si avvia una nuova istanza, la versione dei metadati dell'istanza viene impostata automaticamente sul valore predefinito a livello di account. Tuttavia, è possibile sovrascrivere manualmente il valore all'avvio o dopo l'avvio. Per ulteriori informazioni su come le impostazioni a livello di account e le sostituzioni manuali influiscono su un'istanza, consulta Ordine di precedenza per le opzioni dei metadati di istanza.

Nota

La configurazione dell'impostazione predefinita a livello di account non ripristina le istanze esistenti. Ad esempio, se configuri l'impostazione predefinita a livello di account su IMDSv2, ciò non influisce sulle eventuali istanze esistenti impostate su IMDSv1. Se desideri modificare il valore sulle istanze esistenti, devi modificare manualmente il valore sulle istanze stesse.

Puoi impostare l'account predefinito per la versione dei metadati di istanza su IMDSv2 in modo che tutte le nuove istanze nell'account vengano avviate con IMDSv2 obbligatorio e l'IMDSv1 viene disabilitato. Con questa impostazione predefinita dell'account, all'avvio un'istanza, i valori predefiniti dell'istanza sono i seguenti:

  • Console: la versione dei metadati è impostata su Solo V2 (è richiesto il token) e il limite di hop di risposta dei metadati è impostato su 2.

  • AWS CLI: HttpTokens è impostato su required e HttpPutResponseHopLimit è impostato su 2.

Nota

Prima di impostare l'account predefinito su IMDSv2, assicurati che le istanze non dipendano da IMDSv1. Per ulteriori informazioni, consulta Percorso consigliato per la richiesta IMDSv2.

Console
Per impostare IMDSv2 come predefinito per l'account per la regione specificata
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Per modificare il Regione AWS, usa il selettore di regione nell'angolo in alto a destra della pagina.

  3. Nel pannello di navigazione seleziona Pannello di controllo.

  4. Nella scheda Attributi dell'account, in Impostazioni, scegli Protezione e sicurezza dei dati.

  5. Accanto a Impostazioni IMDS predefinite, scegli Gestisci.

  6. Nella pagina Gestisci impostazioni IMDS predefinite procedi come segue:

    1. In Servizio di metadati dell'istanza scegli Abilitato.

    2. Per Metadata version (Versione metadati), seleziona V2 only (token required) (Solo V2 [token richiesto]).

    3. Per il Limite di hop di risposta ai metadati, specifica 2 se le istanze ospiteranno container. Altrimenti, seleziona Nessuna preferenza. Quando non viene specificata alcuna preferenza, il valore predefinito all’avvio è 2 se l’AMI dispone dell’impostazione ImdsSupport: v2.0; in caso contrario, il valore predefinito è 1.

    4. Scegliere Aggiorna.

AWS CLI
Per impostare IMDSv2 come predefinito per l'account per la regione specificata

Utilizza il comando modify-instance-metadata-defaults e specifica la regione in cui modificare le impostazioni IMDS a livello di account. Includi --http-tokens impostato su required e --http-put-response-hop-limit impostato su 2 se le istanze ospiteranno container. Altrimenti, specifica -1 per non indicare alcuna preferenza. Quando -1 (nessuna preferenza) viene specificato, il valore predefinito all’avvio è 2 se l’AMI dispone dell’impostazione ImdsSupport: v2.0; in caso contrario, il valore predefinito è 1.

aws ec2 modify-instance-metadata-defaults \ --region us-east-1 \ --http-tokens required \ --http-put-response-hop-limit 2

Di seguito è riportato un output di esempio.

{ "Return": true }
Per visualizzare le impostazioni predefinite dell'account per le opzioni dei metadati dell'istanza per la regione specificata

Utilizza il comando get-instance-metadata-defaults e specifica la regione.

aws ec2 get-instance-metadata-defaults --region us-east-1

Di seguito è riportato un output di esempio.

{ "AccountLevel": { "HttpTokens": "required", "HttpPutResponseHopLimit": 2 }, "ManagedBy": "account" }

Il campo ManagedBy indica l'entità che ha configurato le impostazioni. In questo esempio, account indica che le impostazioni sono state configurate direttamente nell'account. Il valore di declarative-policy indicherebbe che le impostazioni sono state configurate in base a una policy dichiarativa. Per ulteriori informazioni, consulta Policy dichiarative nella Guida per l'utente di AWS Organizations .

Per impostare IMDSv2 come predefinito per l'account per tutte le regioni

Utilizza il comando modify-instance-metadata-defaults per modificare le impostazioni IMDS a livello di account per tutte le regioni. Includi --http-tokens impostato su required e --http-put-response-hop-limit impostato su 2 se le istanze ospiteranno container. Altrimenti, specifica -1 per non indicare alcuna preferenza. Quando -1 (nessuna preferenza) viene specificato, il valore predefinito all’avvio è 2 se l’AMI dispone dell’impostazione ImdsSupport: v2.0; in caso contrario, il valore predefinito è 1.

echo -e "Region \t Modified" ; \ echo -e "-------------- \t ---------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 modify-instance-metadata-defaults \ --region $region \ --http-tokens required \ --http-put-response-hop-limit 2 \ --output text) echo -e "$region \t $output" ); done

Di seguito è riportato un output di esempio.

Region Modified -------------- --------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Per visualizzare le impostazioni predefinite dell'account per le opzioni dei metadati dell'istanza per tutte le regioni

Utilizza il comando get-instance-metadata-defaults.

echo -e "Region \t Level Hops HttpTokens" ; \ echo -e "-------------- \t ------------ ---- ----------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 get-instance-metadata-defaults \ --region $region \ --output text) echo -e "$region \t $output" ); done

Di seguito è riportato un output di esempio.

Region Level Hops HttpTokens -------------- ------------ ---- ---------- ap-south-1 ACCOUNTLEVEL 2 required eu-north-1 ACCOUNTLEVEL 2 required eu-west-3 ACCOUNTLEVEL 2 required ...
PowerShell
Per impostare IMDSv2 come predefinito per l'account per la regione specificata

Utilizza il Edit-EC2InstanceMetadataDefault cmdlet e specifica la regione in cui modificare le impostazioni a livello di account IMDS. Includi -HttpToken impostato su required e -HttpPutResponseHopLimit impostato su 2 se le istanze ospiteranno container. Altrimenti, specifica -1 per non indicare alcuna preferenza. Quando -1 (nessuna preferenza) viene specificato, il valore predefinito all’avvio è 2 se l’AMI dispone dell’impostazione ImdsSupport: v2.0; in caso contrario, il valore predefinito è 1.

Edit-EC2InstanceMetadataDefault ` -Region us-east-1 ` -HttpToken required ` -HttpPutResponseHopLimit 2

Di seguito è riportato un output di esempio.

True
Per visualizzare le impostazioni predefinite dell'account per le opzioni dei metadati dell'istanza per la regione specificata

Utilizzare il Get-EC2InstanceMetadataDefault cmdlet e specificare la regione.

Get-EC2InstanceMetadataDefault -Region us-east-1 | Format-List

Di seguito è riportato un output di esempio.

HttpEndpoint : HttpPutResponseHopLimit : 2 HttpTokens : required InstanceMetadataTags :
Per impostare IMDSv2 come predefinito per l'account per tutte le regioni

Utilizzare il Edit-EC2InstanceMetadataDefault cmdlet per modificare le impostazioni a livello di account IMDS per tutte le regioni. Includi -HttpToken impostato su required e -HttpPutResponseHopLimit impostato su 2 se le istanze ospiteranno container. Altrimenti, specifica -1 per non indicare alcuna preferenza. Quando -1 (nessuna preferenza) viene specificato, il valore predefinito all’avvio è 2 se l’AMI dispone dell’impostazione ImdsSupport: v2.0; in caso contrario, il valore predefinito è 1.

(Get-EC2Region).RegionName | ` ForEach-Object { [PSCustomObject]@{ Region = $_ Modified = (Edit-EC2InstanceMetadataDefault ` -Region $_ ` -HttpToken required ` -HttpPutResponseHopLimit 2) } } | ` Format-Table Region, Modified -AutoSize

Output previsto

Region Modified ------ -------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Per visualizzare le impostazioni predefinite dell'account per le opzioni dei metadati dell'istanza per tutte le regioni

Utilizza il cmdlet Get-EC2InstanceMetadataDefault.

(Get-EC2Region).RegionName | ` ForEach-Object { [PSCustomObject]@{ Region = $_ HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit HttpTokens = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens } } | ` Format-Table -AutoSize

Output di esempio

Region HttpPutResponseHopLimit HttpTokens ------ ----------------------- ---------- ap-south-1 2 required eu-north-1 2 required eu-west-3 2 required ...

Applica IMDSv2 a livello di account

È possibile imporre l'uso di IMDSv2 a livello di account per ciascuno. Regione AWS Una volta applicate, le istanze possono essere avviate solo se sono configurate per richiedere IMDSv2. Questa applicazione si applica indipendentemente dalla configurazione dell'istanza o dell'AMI.

Nota

Prima di abilitare l'applicazione di IMDSv2 a livello di account, assicurati che le tue applicazioni e le AMI supportino IMDSv2. Per ulteriori informazioni, consulta Percorso consigliato per la richiesta IMDSv2. Se l'imposizione di IMDSv2 è abilitata e non httpTokens è impostata nella configurazione dell'istanza all'avvio, required nelle impostazioni dell'account o nella configurazione AMI, l'avvio dell'istanza fallirà. Per informazioni sulla risoluzione dei problemi, consulta L'avvio di un' IMDSv1istanza abilitata non riesce.

Nota

Questa impostazione non modifica la versione IMDS delle istanze esistenti, ma blocca l'abilitazione di IMDSv1 sulle istanze esistenti che attualmente hanno IMDSv1 disabilitato.

Console
Per applicare IMDSv2 per l'account nella regione specificata
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Per cambiarlo Regione AWS, usa il selettore di regione nell'angolo in alto a destra della pagina.

  3. Nel pannello di navigazione seleziona Pannello di controllo.

  4. Nella scheda Attributi dell'account, in Impostazioni, scegli Protezione e sicurezza dei dati.

  5. Accanto a Impostazioni IMDS predefinite, scegli Gestisci.

  6. Nella pagina Gestisci impostazioni IMDS predefinite procedi come segue:

    1. Per Metadata version (Versione metadati), seleziona V2 only (token required) (Solo V2 [token richiesto]).

    2. Per Enforce IMDSv2, scegli Abilitato.

    3. Scegliere Aggiorna.

AWS CLI
Per applicare IMDSv2 per l'account nella regione specificata

Usa il comando https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html modify-instance-metadata-defaults e specifica la regione in cui applicare IMDSv2.

aws ec2 modify-instance-metadata-defaults \ --region us-east-1 \ --http-tokens required \ --http-tokens-enforced enabled

Di seguito è riportato un output di esempio.

{ "Return": true }
Per visualizzare le impostazioni di imposizione di IMDSv2 per l'account in una regione specifica

Utilizza il comando get-instance-metadata-defaults e specifica la regione.

aws ec2 get-instance-metadata-defaults --region us-east-1

Di seguito è riportato un output di esempio.

{ "AccountLevel": { "HttpTokens": "required", "HttpTokensEnforced": "enabled" }, "ManagedBy": "account" }

Il campo ManagedBy indica l'entità che ha configurato le impostazioni. In questo esempio, account indica che le impostazioni sono state configurate direttamente nell'account. Il valore di declarative-policy indicherebbe che le impostazioni sono state configurate in base a una policy dichiarativa. Per ulteriori informazioni, consulta le politiche dichiarative nella Guida per l'utente delle AWS organizzazioni.

Per applicare IMDSv2 per l'account per tutte le regioni

Usa il comando modify-instance-metadata-defaults per applicare IMDSv2 in tutte le regioni.

echo -e "Region \t Modified" ; \ echo -e "-------------- \t ---------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 modify-instance-metadata-defaults \ --region $region \ --http-tokens-enforced enabled \ --output text) echo -e "$region \t $output" ); done

Di seguito è riportato un output di esempio.

Region Modified -------------- --------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Per visualizzare le impostazioni di imposizione di IMDSv2 per l'account in tutte le regioni

Utilizza il comando get-instance-metadata-defaults.

echo -e "Region \t Level HttpTokensEnforced" ; \ echo -e "-------------- \t ------------ ----------------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 get-instance-metadata-defaults \ --region $region \ --query 'AccountLevel.HttpTokensEnforced' \ --output text) echo -e "$region \t ACCOUNTLEVEL $output" ); done

Di seguito è riportato un output di esempio.

Region Level HttpTokensEnforced -------------- ------------ ------------------ ap-south-1 ACCOUNTLEVEL enabled eu-north-1 ACCOUNTLEVEL enabled eu-west-3 ACCOUNTLEVEL enabled ...
PowerShell
Per applicare IMDSv2 per l'account nella regione specificata

Usa il Edit-EC2InstanceMetadataDefault cmdlet e specifica la regione in cui applicare IMDSv2.

Edit-EC2InstanceMetadataDefault ` -Region us-east-1 ` -HttpToken required ` -HttpPutResponseHopLimit 2

Di seguito è riportato un output di esempio.

@{ Return = $true }
Per visualizzare l'impostazione di imposizione di IMDSv2 per l'account in una regione specifica

Usa il Get-EC2InstanceMetadataDefault comando e specifica la regione.

Get-EC2InstanceMetadataDefault -Region us-east-1

Di seguito è riportato un output di esempio.

@{ AccountLevel = @{ HttpTokens = "required" HttpTokensEnforced = "enabled" } ManagedBy = "account" }

Il campo ManagedBy indica l'entità che ha configurato le impostazioni. In questo esempio, account indica che le impostazioni sono state configurate direttamente nell'account. Il valore di declarative-policy indicherebbe che le impostazioni sono state configurate in base a una policy dichiarativa. Per ulteriori informazioni, vedere Politiche dichiarative nella Guida per l'utente AWS delle organizzazioni.

Per applicare IMDSv2 per l'account per tutte le regioni

Usa il comando modify-instance-metadata-defaults per applicare IMDSv2 in tutte le regioni.

echo -e "Region \t Modified" ; \ echo -e "-------------- \t ---------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 modify-instance-metadata-defaults \ --region $region \ --http-tokens-enforced enabled \ --output text) echo -e "$region \t $output" ); done

Di seguito è riportato un output di esempio.

Region Modified -------------- --------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Per impostare IMDSv2 come predefinito per l'account per tutte le regioni

Utilizza il Edit-EC2InstanceMetadataDefault cmdlet per modificare le impostazioni a livello di account IMDS per tutte le regioni. Includi -HttpToken impostato su required e -HttpPutResponseHopLimit impostato su 2 se le istanze ospiteranno container. Altrimenti, specifica -1 per non indicare alcuna preferenza. Quando -1 (nessuna preferenza) viene specificato, il valore predefinito all’avvio è 2 se l’AMI dispone dell’impostazione ImdsSupport: v2.0; in caso contrario, il valore predefinito è 1.

(Get-EC2Region).RegionName | ` ForEach-Object { [PSCustomObject]@{ Region = $_ Modified = (Edit-EC2InstanceMetadataDefault ` -Region $_ ` -HttpToken required ` -HttpPutResponseHopLimit 2) } } | ` Format-Table Region, Modified -AutoSize

Output previsto

Region Modified ------ -------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Per visualizzare le impostazioni predefinite dell'account per le opzioni dei metadati dell'istanza per tutte le regioni

Utilizza il cmdlet Get-EC2InstanceMetadataDefault.

(Get-EC2Region).RegionName | ` ForEach-Object { [PSCustomObject]@{ Region = $_ HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit HttpTokens = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens } } | ` Format-Table -AutoSize

Output di esempio

Region HttpPutResponseHopLimit HttpTokens ------ ----------------------- ---------- ap-south-1 2 required eu-north-1 2 required eu-west-3 2 required ...

Configurazione dell'istanza all'avvio

Quando avvii un'istanza, puoi configurare l'istanza in modo che richieda l'uso di IMDSv2 configurando i campi seguenti:

  • Console di Amazon EC2: imposta Metadata version (Versione metadati) su V2 only (token required) (Solo V2 [token richiesto]).

  • AWS CLI: imposta HttpTokens su required.

Quando specifichi che IMDSv2 è obbligatorio, devi abilitare anche l'endpoint del servizio di metadati dell'istanza (IMDS) impostando Metadati accessibili su Abilitato (console) o HttpEndpoint su enabled (AWS CLI).

In un ambiente container, quando è obbligatorio IMDSv2, consigliamo di impostare il limite di hop su 2. Per ulteriori informazioni, consulta Considerazioni sull'accesso ai metadati dell'istanza.

Console
Per richiedere l'uso di IMDSv2 su una nuova istanza
  • Quando avvii una nuova istanza nella console Amazon EC2, espandi Advanced details (Dettagli avanzati) e procedi come segue:

    • Per Metadata accessible (Metadati accessibili), scegli Enabled (Abilitato).

    • Per Metadata version (Versione metadati), seleziona V2 only (token required) (Solo V2 [token richiesto]).

    • (Ambiente container) Per il Limite di hop di risposta ai metadati, scegliere 2.

    Per ulteriori informazioni, consulta Dettagli avanzati.

AWS CLI
Per richiedere l'uso di IMDSv2 su una nuova istanza

L'esempio run-instances avvia un'istanza c6i.large con --metadata-options impostato su HttpTokens=required. Quando si specifica un valore per HttpTokens, è necessario impostare HttpEndpoint anche su enabled. Poiché l'intestazione del token sicuro è impostata su required per le richieste di recupero dei metadati, l'istanza deve utilizzare IMDSv2 quando si richiedono i metadati dell'istanza.

In un ambiente container, quando è obbligatorio IMDSv2, consigliamo di impostare il limite di hop su 2 con HttpPutResponseHopLimit=2.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c6i.large \ ... --metadata-options "HttpEndpoint=enabled,HttpTokens=required,HttpPutResponseHopLimit=2"
PowerShell
Per richiedere l'uso di IMDSv2 su una nuova istanza

Il seguente esempio di New-EC2Instance cmdlet avvia un'c6i.largeistanza con MetadataOptions_HttpEndpoint set to e il parametro to. enabled MetadataOptions_HttpTokens required Quando si specifica un valore per HttpTokens, è necessario impostare HttpEndpoint anche su enabled. Poiché l'intestazione del token sicuro è impostata su required per le richieste di recupero dei metadati, l'istanza deve utilizzare IMDSv2 quando si richiedono i metadati dell'istanza.

New-EC2Instance ` -ImageId ami-0abcdef1234567890 ` -InstanceType c6i.large ` -MetadataOptions_HttpEndpoint enabled ` -MetadataOptions_HttpTokens required
CloudFormation

Per specificare le opzioni di metadati per l'utilizzo di un'istanza CloudFormation, consulta la proprietà AWS: :EC2:: nella Guida per l'utente. LaunchTemplate MetadataOptions AWS CloudFormation

Configurazione dell'AMI

Quando registri una nuova AMI o modifichi un'AMI esistente, puoi impostare il parametro imds-support su v2.0. Per le istanze avviate da questa AMI, Versione metadati sarà impostato su Solo V2 (token obbligatorio) (console) o HttpTokens sarà impostato su required (AWS CLI). Con queste impostazioni, l'istanza richiede l'uso di IMDSv2 quando vengono chiesti i metadati dell'istanza.

Tieni presente che quando imposti imds-support su v2.0, anche per le istanze avviate da questa AMI Metadata response hop limit (Limite hop risposta metadati) (console) o http-put-response-hop-limit (AWS CLI) sarà impostato su 2.

Importante

Non utilizzate questo parametro a meno che il software AMI non supporti IMDSv2. Dopo aver impostato il valore su v2.0, non è possibile annullare l'operazione. L'unico modo per "reimpostare" l'AMI consiste nel creare una nuova AMI dallo snapshot sottostante.

Per configurare una nuova AMI per IMDSv2

Utilizza uno dei metodi seguenti per configurare una nuova AMI per IMDSv2.

AWS CLI

L'esempio register-image seguente registra un'AMI utilizzando lo snapshot specificato di un volume root EBS come dispositivo /dev/xvda. Specifica v2.0 per il parametro imds-support, in modo che le istanze avviate da tale AMI richiedano l'utilizzo di IMDSv2 quando si richiedono i metadati dell'istanza.

aws ec2 register-image \ --name my-image \ --root-device-name /dev/xvda \ --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0123456789example} \ --architecture x86_64 \ --imds-support v2.0
PowerShell

Il seguente esempio di Register-EC2Image cmdlet registra un'AMI utilizzando l'istantanea specificata di un volume radice EBS come dispositivo. /dev/xvda Specifica v2.0 per il parametro ImdsSupport, in modo che le istanze avviate da tale AMI richiedano l'utilizzo di IMDSv2 quando si richiedono i metadati dell'istanza.

Register-EC2Image ` -Name 'my-image' ` -RootDeviceName /dev/xvda ` -BlockDeviceMapping ( New-Object ` -TypeName Amazon.EC2.Model.BlockDeviceMapping ` -Property @{ DeviceName = '/dev/xvda'; EBS = (New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice -Property @{ SnapshotId = 'snap-0123456789example' VolumeType = 'gp3' } ) } ) ` -Architecture X86_64 ` -ImdsSupport v2.0
Per configurare un'AMI esistente per IMDSv2

Utilizza uno dei metodi seguenti per configurare una nuova AMI per IMDSv2.

AWS CLI

Il seguente comando modify-image-attribute modifica un'AMI esistente solo per IMDSv2. Specifica v2.0 per il parametro imds-support, in modo che le istanze avviate da tale AMI richiedano l'utilizzo di IMDSv2 quando si richiedono i metadati dell'istanza.

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --imds-support v2.0
PowerShell

Il seguente esempio di Edit-EC2ImageAttribute cmdlet modifica un'AMI esistente solo per IMDSv2. Specifica v2.0 per il parametro imds-support, in modo che le istanze avviate da tale AMI richiedano l'utilizzo di IMDSv2 quando si richiedono i metadati dell'istanza.

Edit-EC2ImageAttribute ` -ImageId ami-0abcdef1234567890 ` -ImdsSupport 'v2.0'

Utilizzo di una policy IAM

È possibile creare una policy IAM che esegua una delle seguenti operazioni:

  • Impedisce agli utenti di avviare nuove istanze a meno che non richiedano IMDSv2 sulla nuova istanza.

  • Impedisce agli utenti di chiamare l' ModifyInstanceMetadataOptions API per modificare le opzioni di metadati di un'istanza in esecuzione. Limita l'accesso alla proprietà ModifyInstanceMetadataOptions HttpTokens per impedire aggiornamenti involontari delle istanze in esecuzione.

  • Impedisci agli utenti di chiamare l' ModifyInstanceMetadataDefaults API per modificare le impostazioni predefinite dell'account sia di HttpTokens che di http. TokensEnforced La limitazione dell'accesso a queste due proprietà garantirà che solo i ruoli autorizzati possano modificare le impostazioni predefinite dell'account.

Uso forzato di IMDSv2 su tutte le nuove istanze tramite una policy IAM

Per garantire che gli utenti possano avviare solo le istanze che richiedono l'uso di IMDSv2 quando richiedono i metadati delle istanze, procedi come segue:

  • Limita l'accesso a entrambe le ModifyInstanceMetadataDefaults API, ModifyInstanceMetadataOptions e più specificamente alle proprietà and. httpTokens httpTokensEnforced

  • Quindi, imposta l'account predefinito su httpTokens = required ehttpTokensEnforced = enabled.

    Per un esempio di policy IAM, consulta Utilizzo dei metadati delle istanze.

Abilitazione degli endpoint IPv4 e IPv6 dell'IMDS

L'IMDS ha due endpoint su un'istanza: IPv4 (169.254.169.254) e IPv6 ([fd00:ec2::254]). Quando abiliti l'IMDS, l'endpoint IPv4 viene abilitato automaticamente. L'endpoint IPv6 rimane disabilitato anche se si avvia un'istanza in una sottorete. IPv6-only Per abilitare l'endpoint IPv6 è necessario farlo in modo esplicito. Quando abiliti l'endpoint IPv6, l'endpoint IPv4 rimane abilitato.

Puoi abilitare l'endpoint IPv6 all'avvio dell'istanza o dopo.

Requisiti per l'abilitazione dell'endpoint IPv6

Utilizza uno dei seguenti metodi per avviare un'istanza con l'endpoint IPv6 dell'IMDS abilitato.

Console
Per abilitare l'endpoint IPv6 dell'IMDS al lancio dell'istanza
  • Avvia l'istanza nella console di Amazon EC2 con le opzioni specificate di seguito in Advanced details (Dettagli avanzati):

    • Per l'endpoint IPv6 dei metadati, scegli Abilitato.

Per ulteriori informazioni, consulta Dettagli avanzati.

AWS CLI
Per abilitare l'endpoint IPv6 dell'IMDS al lancio dell'istanza

L'esempio run-instances seguente avvia un'istanza c6i.large con l'endpoint IPv6 abilitato per IMDS. Per abilitare l'endpoint IPv6, per il parametro --metadata-options specifica HttpProtocolIpv6=enabled. Quando si specifica un valore per HttpProtocolIpv6, è necessario impostare HttpEndpoint anche su enabled.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c6i.large \ ... --metadata-options "HttpEndpoint=enabled,HttpProtocolIpv6=enabled"
PowerShell
Per abilitare l'endpoint IPv6 dell'IMDS al lancio dell'istanza

Il seguente esempio di New-EC2Instance cmdlet avvia un'c6i.largeistanza con l'endpoint IPv6 abilitato per l'IMDS. Per abilitare l'endpoint IPv6, specifica MetadataOptions_HttpProtocolIpv6 come enabled. Quando si specifica un valore per MetadataOptions_HttpProtocolIpv6, è necessario impostare MetadataOptions_HttpEndpoint anche su enabled.

New-EC2Instance ` -ImageId ami-0abcdef1234567890 ` -InstanceType c6i.large ` -MetadataOptions_HttpEndpoint enabled ` -MetadataOptions_HttpProtocolIpv6 enabled

Disattivazione dell'accesso ai metadati dell'istanza

È possibile disattivare l'accesso ai metadati dell'istanza disabilitando l'IMDS all'avvio di un'istanza. È possibile attivare l'accesso in un secondo momento riabilitando l'IMDS. Per ulteriori informazioni, consulta Attivazione dell'accesso ai metadati dell'istanza.

Importante

È possibile scegliere di disabilitare l'IMDS all'avvio o dopo l'avvio. Se disabiliti l'IMDS all'avvio, quanto segue potrebbe non funzionare:

  • Potresti non disporre dell'accesso SSH all'istanza. La public-keys/0/openssh-key, che è la chiave SSH pubblica dell'istanza, non sarà accessibile perché normalmente la chiave viene fornita dai metadati dell'istanza EC2 e l'accesso avviene tramite gli stessi.

  • I dati utente EC2 non saranno disponibili e non verranno eseguiti all'avvio dell'istanza. I dati utente EC2 sono ospitati sull'IMDS. Se disabiliti l'IMDS, disattivi di fatto l'accesso ai dati utente.

Per accedere a questa funzionalità, è possibile riabilitare l'IMDS dopo l'avvio.

Console
Disattivazione dell'accesso ai metadati dell'istanza all'avvio
  • Avvia l'istanza nella console di Amazon EC2 con le opzioni specificate di seguito in Advanced details (Dettagli avanzati):

    • Per Metadata accessible (Metadati accessibili), scegli Disabled (Disabilitato).

Per ulteriori informazioni, consulta Dettagli avanzati.

AWS CLI
Disattivazione dell'accesso ai metadati dell'istanza all'avvio

Avvia l'istanza con --metadata-options impostato su HttpEndpoint=disabled.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c6i.large \ ... --metadata-options "HttpEndpoint=disabled"
PowerShell
Disattivazione dell'accesso ai metadati dell'istanza all'avvio

Il seguente esempio di New-EC2Instance cmdlet avvia un'istanza con set to. MetadataOptions_HttpEndpoint disabled

New-EC2Instance ` -ImageId ami-0abcdef1234567890 ` -InstanceType c6i.large ` -MetadataOptions_HttpEndpoint disabled
CloudFormation

Per specificare le opzioni di metadati per l'utilizzo di un'istanza CloudFormation, consulta la proprietà AWS: :EC2:: nella Guida per l'utente. LaunchTemplate MetadataOptions CloudFormation

Per consentire l'accesso ai tag nei metadati delle istanze

Per impostazione predefinita, non è possibile accedere ai tag dell'istanza nei metadati dell'istanza. Per ogni istanza è necessario consentire l'accesso esplicitamente. Se l'accesso è consentito, le chiavi dei tag dell'istanza devono rispettare specifiche restrizioni relative ai caratteri, altrimenti l'avvio dell'istanza avrà esito negativo. Per ulteriori informazioni, consulta Abilita l’accesso ai tag nei metadati dell’istanza.