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 .

Richiede l'uso di IMDSv2

È possibile utilizzare i seguenti metodi per richiedere l'utilizzo di IMDSv2 sulle nuove istanze.

Imposta 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 imposti l'impostazione predefinita a livello di account su IMDSv2, le eventuali istanze esistenti impostate su non ne risentiranno. 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 dell'istanza in IMDSv2 modo che tutte le nuove istanze nell'account vengano avviate come IMDSv2 richiesto e vengano disabilitate. IMDSv1 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 tue istanze non dipendano da. IMDSv1 Per ulteriori informazioni, consulta Percorso consigliato per la richiesta IMDSv2.

Console
Da 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 la Regione AWS, usa il selettore della regione nell'angolo superiore destro della pagina.

  3. Nel riquadro di navigazione scegliere EC2 Dashboard (Pannello di controllo EC2).

  4. In Attributi dell'account, 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
Da impostare IMDSv2 come predefinito per l'account per la regione specificata

Usa il modify-instance-metadata-defaultscomando e specifica la regione in cui modificare le impostazioni a livello di account IMDS. 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

Usa il get-instance-metadata-defaultscomando 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 .

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

Utilizzare il modify-instance-metadata-defaultscomando per modificare le impostazioni a livello di account IMDS 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
Da impostare IMDSv2 come predefinito per l'account per la regione specificata

Utilizzare il Edit-EC2InstanceMetadataDefaultcmdlet e specificare 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-EC2InstanceMetadataDefaultcmdlet 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 :
Da impostare IMDSv2 come predefinito per l'account per tutte le regioni

Utilizzare il Edit-EC2InstanceMetadataDefaultcmdlet 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 a livello di account IMDSv2

Puoi imporre l'uso di IMDSv2 a livello di account per ciascuno di essi. Regione AWS Se applicate, le istanze possono essere avviate solo se sono configurate in modo da richiedere. IMDSv2 Questa applicazione si applica indipendentemente dalla configurazione dell'istanza o dell'AMI.

Nota

Prima di abilitare l' IMDSv2 applicazione a livello di account, assicurati che le applicazioni e il AMIs supporto siano disponibili IMDSv2. Per ulteriori informazioni, consulta Percorso consigliato per la richiesta IMDSv2. Se IMDSv2 l'applicazione è abilitata e non httpTokens è impostata né required nella configurazione dell'istanza all'avvio, né nelle impostazioni dell'account o nella configurazione AMI, l'avvio dell'istanza avrà esito negativo. 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'attivazione IMDSv1 sulle istanze esistenti attualmente disattivate. IMDSv1

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

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

  3. Nel riquadro di navigazione scegliere EC2 Dashboard (Pannello di controllo EC2).

  4. In Attributi dell'account, 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 Enabled.

    3. Scegliere Aggiorna.

AWS CLI
IMDSv2 Per applicare l'account nella regione specificata

Usa il modify-instance-metadata-defaultscomando 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 IMDSv2 applicazione per l'account in una regione specifica

Usa il get-instance-metadata-defaultscomando 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 AWS Organizations User Guide.

IMDSv2 Per applicare l'account in tutte le regioni

Usa il modify-instance-metadata-defaultscomando per applicarlo 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 IMDSv2 applicazione 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
IMDSv2 Per applicare l'account nella regione specificata

Utilizzare il Edit-EC2InstanceMetadataDefaultcmdlet e specificare 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 IMDSv2 applicazione 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, consulta le politiche dichiarative nella AWS Organizations User Guide.

IMDSv2 Per applicare l'account in tutte le regioni

Usa il modify-instance-metadata-defaultscomando per applicarlo 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 ...
Da impostare IMDSv2 come predefinito per l'account per tutte le regioni

Utilizzare il Edit-EC2InstanceMetadataDefaultcmdlet 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 si avvia un'istanza, è possibile configurare l'istanza in modo che richieda l'utilizzo IMDSv2 configurando i seguenti campi:

  • 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 specificate che IMDSv2 è obbligatorio, dovete anche abilitare l'endpoint Instance Metadata Service (IMDS) impostando Metadata accessibile su Enabled (console) o su (). HttpEndpoint enabledAWS CLI

In un ambiente container, quando IMDSv2 richiesto, 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 required per le richieste di recupero dei metadati, è necessario che l'istanza venga utilizzata per la richiesta dei IMDSv2 metadati dell'istanza.

In un ambiente container, quando necessario, consigliamo di impostare IMDSv2 il limite di hop su with. 2 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-EC2Instancecmdlet avvia un'c6i.largeistanza con MetadataOptions_HttpEndpoint set to enabled e il MetadataOptions_HttpTokens parametro to. required Quando si specifica un valore per HttpTokens, è necessario impostare HttpEndpoint anche su enabled. Poiché l'intestazione secure token è impostata required per le richieste di recupero dei metadati, è necessario che l'istanza venga utilizzata per la richiesta dei metadati dell'istanza. IMDSv2

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

Per specificare le opzioni di metadati utilizzate da un'istanza CloudFormation, consultate la proprietà nella Guida per l'utente. AWS::EC2::LaunchTemplate MetadataOptionsAWS 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 che IMDSv2 venga utilizzata quando si richiedono 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 utilizzare questo parametro a meno che il software AMI non lo supportiIMDSv2. 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 seguenti metodi per configurare una nuova AMI perIMDSv2.

AWS CLI

L'esempio register-image seguente registra un'AMI utilizzando lo snapshot specificato di un volume root EBS come dispositivo /dev/xvda. Specificare v2.0 il imds-support parametro in modo che le istanze avviate da questo AMI richiedano che IMDSv2 venga utilizzato 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-EC2Imagecmdlet registra un AMI utilizzando l'istantanea specificata di un volume root EBS come dispositivo. /dev/xvda Specificare v2.0 il ImdsSupport parametro in modo che le istanze avviate da questo AMI richiedano che IMDSv2 venga utilizzato 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 seguenti metodi per configurare un'AMI esistente perIMDSv2.

AWS CLI

L'modify-image-attributeesempio seguente modifica IMDSv2 solo un AMI esistente. Specificare v2.0 il imds-support parametro in modo che le istanze avviate da questo AMI richiedano che IMDSv2 venga utilizzato 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-EC2ImageAttributecmdlet modifica solo un AMI esistente. IMDSv2 Specificare v2.0 il imds-support parametro in modo che le istanze avviate da questo AMI richiedano che IMDSv2 venga utilizzato quando si richiedono i metadati dell'istanza.

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

Utilizzo di una policy IAM

Puoi creare una policy IAM che esegua una delle seguenti operazioni:

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

  • Impedisce agli utenti di chiamare l' ModifyInstanceMetadataOptions API per modificare le opzioni dei 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 di HttpTokens e. httpTokensEnforced La limitazione dell'accesso a queste due proprietà garantirà che solo i ruoli autorizzati possano modificare le impostazioni predefinite dell'account.

Per imporre l'uso di IMDSv2 su tutte le nuove istanze utilizzando una policy IAM

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

  • Limita l'accesso ModifyInstanceMetadataOptions sia all'ModifyInstanceMetadataDefaultsAPI che alle proprietà and. httpTokens httpTokensEnforced

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

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

Abilita l'IMDS IPv4 e gli endpoint IPv6

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

È possibile abilitare l' IPv6 endpoint 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 IMDS abilitato.

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

    • Per Metadata IPv6 endpoint, scegli Abilitato.

Per ulteriori informazioni, consulta Dettagli avanzati.

AWS CLI
Per abilitare l' IPv6 endpoint IMDS all'avvio dell'istanza

Il seguente esempio di run-instances avvia un'c6i.largeistanza con l'endpoint abilitato per l' IPv6 IMDS. Per abilitare l' IPv6 endpoint, specificare per il parametro. --metadata-options 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' IPv6 endpoint IMDS all'avvio dell'istanza

Il seguente esempio di New-EC2Instancecmdlet avvia un'c6i.largeistanza con l' IPv6 endpoint abilitato per l'IMDS. Per abilitare l'endpoint, specificare come. IPv6 MetadataOptions_HttpProtocolIpv6 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-EC2Instancecmdlet 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 relative ai metadati per un'istanza che utilizza CloudFormation, consulta la AWS::EC2::LaunchTemplate MetadataOptionsproprietà nella Guida per l'utente.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.