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.
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 .
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.
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.
- Console
-
Per impostare IMDSv2 come predefinito per l'account per la regione specificata
Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.
-
Per modificare il Regione AWS, usa il selettore di regione nell'angolo in alto a destra della pagina.
-
Nel pannello di navigazione seleziona Pannello di controllo.
-
Nella scheda Attributi dell'account, in Impostazioni, scegli Protezione e sicurezza dei dati.
-
Accanto a Impostazioni IMDS predefinite, scegli Gestisci.
-
Nella pagina Gestisci impostazioni IMDS predefinite procedi come segue:
-
In Servizio di metadati dell'istanza scegli Abilitato.
-
Per Metadata version (Versione metadati), seleziona V2 only (token required) (Solo V2 [token richiesto]).
-
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.
-
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.
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.
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
-
Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.
-
Per cambiarlo Regione AWS, usa il selettore di regione nell'angolo in alto a destra della pagina.
-
Nel pannello di navigazione seleziona Pannello di controllo.
-
Nella scheda Attributi dell'account, in Impostazioni, scegli Protezione e sicurezza dei dati.
-
Accanto a Impostazioni IMDS predefinite, scegli Gestisci.
-
Nella pagina Gestisci impostazioni IMDS predefinite procedi come segue:
-
Per Metadata version (Versione metadati), seleziona V2 only (token required) (Solo V2 [token richiesto]).
-
Per Enforce IMDSv2, scegli Abilitato.
-
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
...
Quando avvii un'istanza, puoi configurare l'istanza in modo che richieda l'uso di IMDSv2 configurando i campi seguenti:
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
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.
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'
È 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.
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
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
È 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.
È 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
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 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.