Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konfigurieren von Instance-Metadatenoptionen für neue Instances
Sie können die folgenden Instance-Metadatenoptionen für neue Instances konfigurieren.
Diese Einstellung wird auf Kontoebene konfiguriert, entweder direkt im Konto oder mithilfe einer deklarativen Richtlinie. Sie müssen in jeder AWS-Region konfiguriert werden, in der Sie die Optionen für Instance-Metadaten konfigurieren möchten. Mithilfe einer deklarativen Richtlinie können Sie die Einstellung auf mehrere Regionen gleichzeitig, sowie auf mehrere Konten gleichzeitig anwenden. Wenn eine deklarative Richtlinie verwendet wird, können Sie die Einstellung nicht direkt in einem Konto ändern. In diesem Thema wird beschrieben, wie Sie die Einstellung direkt in einem Konto konfigurieren. Informationen zur Verwendung deklarativer Richtlinien finden Sie unter Deklarative Richtlinien im AWS Organizations -Benutzerhandbuch.
Verwenden Sie eine der folgenden Methoden, um die Verwendung von IMDSv2 für Ihre Instances erforderlich zu machen.
So machen Sie IMDSv2 erforderlich
Legen Sie IMDSv2 als Standard für das Konto fest
Sie können die Standardversion für den Instanzmetadatendienst (IMDS) jeweils auf Kontoebene festlegen. AWS-Region Das heißt, wenn Sie eine neue Instance starten, wird die Instance-Metadatenversion automatisch auf den Standard auf Kontoebene gesetzt. Sie können den Wert jedoch beim Start oder nach dem Start manuell überschreiben. Weitere Informationen darüber, wie sich Einstellungen auf Kontoebene und manuelle Überschreibungen auf eine Instance auswirken, finden Sie unter Rangfolge der Optionen für Instance-Metadaten.
Durch das Festlegen der Standardeinstellung auf Kontoebene werden bestehende Instances nicht zurückgesetzt. Wenn Sie beispielsweise den Standard auf Kontoebene auf IMDSv2 festlegen, sind alle vorhandenen Instances, die auf IMDSv1 festgelegt sind, nicht betroffen. Wenn Sie den Wert für bestehende Instances ändern möchten, müssen Sie den Wert für die Instances selbst manuell ändern.
Sie können den Kontostandard für die Instance-Metadatenversion auf IMDSv2 festlegen, sodass alle neuen Instances beim Kontostart mit IMDSv2 erforderlich sind und IMDSv1 deaktiviert wird. Bei diesem standardmäßigen Konto gelten beim Start einer Instance die folgenden Standardwerte für die Instance:
-
Konsole: Die Metadatenversion ist nur auf V2 festgelegt (Token erforderlich) und das Limit für den Metadaten-Response-Hop ist auf 2 festgelegt.
-
AWS CLI: HttpTokens ist auf required gesetzt und HttpPutResponseHopLimit ist auf 2 gesetzt.
Bevor Sie den Kontostandard auf IMDSv2 setzen, stellen Sie sicher, dass Ihre Instances nicht von IMDSv1 abhängig sind. Weitere Informationen finden Sie unter Empfohlener Pfad zur Anforderung IMDSv2.
- Console
-
So legen Sie IMDSv2 als Standard für das Konto für die angegebene Region fest
Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.
-
Um dies zu ändern AWS-Region, verwenden Sie die Regionsauswahl in der oberen rechten Ecke der Seite.
-
Wählen Sie im Navigationsbereich Dashboard (Dashboard).
-
Wählen Sie auf der Karte Kontoattribute unter Einstellungen die Option Datenschutz und Sicherheit aus.
-
Wählen Sie neben IMDS-Standardeinstellungen die Option Verwalten aus.
-
Gehen Sie auf der Seite IMDS-Standardwerte verwalten wie folgt vor:
-
Für den Instance-Metadaten-Services wählen Sie die Option Aktivieren.
-
Wählen Sie für Metadatenversion die Option Nur V2 (Token erforderlich) aus.
-
Geben Sie für Metadaten-Antwort-Hop-Limit den Wert 2 an, wenn Ihre Instances Container hosten sollen. Wählen Sie andernfalls Keine Präferenz aus. Wenn keine Präferenz angegeben wird, ist der Wert beim Start standardmäßig 2, wenn das AMI die Einstellung ImdsSupport: v2.0 hat; andernfalls ist er standardmäßig 1.
-
Wählen Sie Aktualisieren aus.
- AWS CLI
-
So legen Sie IMDSv2 als Standard für das Konto für die angegebene Region fest
Verwenden Sie den Befehl modify-instance-metadata-defaults und geben Sie die Region an, in der die Einstellungen auf IMDS-Kontoebene geändert werden sollen. Schließen Sie die Einstellung --http-tokens auf required ein und legen Sie --http-put-response-hop-limit auf 2 fest, wenn Ihre Instances Container hosten werden. Geben Sie andernfalls -1 an, dass keine Präferenz angegeben werden soll. Wenn -1 (keine Präferenz) angegeben wird, ist der Wert beim Start standardmäßig 2, wenn das AMI die Einstellung ImdsSupport: v2.0 hat; andernfalls ist er standardmäßig 1.
aws ec2 modify-instance-metadata-defaults \
--region us-east-1 \
--http-tokens required \
--http-put-response-hop-limit 2
Es folgt eine Beispielausgabe.
{
"Return": true
}
So zeigen Sie die Standard-Kontoeinstellungen für die Instance-Metadatenoptionen für die angegebene Region an
Verwenden Sie den Befehl get-instance-metadata-defaults und geben Sie die Region an.
aws ec2 get-instance-metadata-defaults --region us-east-1
Es folgt eine Beispielausgabe.
{
"AccountLevel": {
"HttpTokens": "required",
"HttpPutResponseHopLimit": 2
},
"ManagedBy": "account"
}
Das ManagedBy-Feld gibt die Entität an, die die Einstellung konfiguriert hat. account zeigt in diesem Beispiel an, dass die Einstellung direkt im Konto konfiguriert wurde. Ein Wert von declarative-policy würde bedeuten, dass die Einstellung durch eine deklarative Richtlinie konfiguriert wurde. Weitere Informationen finden Sie unter Deklarative Richtlinien im AWS Organizations -Benutzerhandbuch.
So legen Sie IMDSv2 als Standard für das Konto für alle Regionen fest
Verwenden Sie den Befehl modify-instance-metadata-defaults um die Einstellungen auf IMDS-Kontoebene für alle Regionen zu ändern. Schließen Sie die Einstellung --http-tokens auf required ein und legen Sie --http-put-response-hop-limit auf 2 fest, wenn Ihre Instances Container hosten werden. Geben Sie andernfalls -1 an, dass keine Präferenz angegeben werden soll. Wenn -1 (keine Präferenz) angegeben wird, ist der Wert beim Start standardmäßig 2, wenn das AMI die Einstellung ImdsSupport: v2.0 hat; andernfalls ist er standardmäßig 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
Es folgt eine Beispielausgabe.
Region Modified
-------------- ---------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
So zeigen Sie die Standard-Kontoeinstellungen für die Instance-Metadatenoptionen für alle Regionen an
Verwenden Sie den Befehl 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
Es folgt eine Beispielausgabe.
Region Level Hops HttpTokens
-------------- ------------ ---- ----------
ap-south-1 ACCOUNTLEVEL 2 required
eu-north-1 ACCOUNTLEVEL 2 required
eu-west-3 ACCOUNTLEVEL 2 required
...
- PowerShell
-
So legen Sie IMDSv2 als Standard für das Konto für die angegebene Region fest
Verwenden Sie das Edit-EC2InstanceMetadataDefault Cmdlet und geben Sie die Region an, in der die Einstellungen auf IMDS-Kontoebene geändert werden sollen. Schließen Sie die Einstellung -HttpToken auf required ein und legen Sie -HttpPutResponseHopLimit auf 2 fest, wenn Ihre Instances Container hosten werden. Geben Sie andernfalls -1 an, dass keine Präferenz angegeben werden soll. Wenn -1 (keine Präferenz) angegeben wird, ist der Wert beim Start standardmäßig 2, wenn das AMI die Einstellung ImdsSupport: v2.0 hat; andernfalls ist er standardmäßig 1.
Edit-EC2InstanceMetadataDefault `
-Region us-east-1 `
-HttpToken required `
-HttpPutResponseHopLimit 2
Es folgt eine Beispielausgabe.
True
So zeigen Sie die Standard-Kontoeinstellungen für die Instance-Metadatenoptionen für die angegebene Region an
Verwenden Sie das Get-EC2InstanceMetadataDefault Cmdlet und geben Sie die Region an.
Get-EC2InstanceMetadataDefault -Region us-east-1 | Format-List
Es folgt eine Beispielausgabe.
HttpEndpoint :
HttpPutResponseHopLimit : 2
HttpTokens : required
InstanceMetadataTags :
So legen Sie IMDSv2 als Standard für das Konto für alle Regionen fest
Verwenden Sie das Edit-EC2InstanceMetadataDefault Cmdlet, um die Einstellungen auf IMDS-Kontoebene für alle Regionen zu ändern. Schließen Sie die Einstellung -HttpToken auf required ein und legen Sie -HttpPutResponseHopLimit auf 2 fest, wenn Ihre Instances Container hosten werden. Geben Sie andernfalls -1 an, dass keine Präferenz angegeben werden soll. Wenn -1 (keine Präferenz) angegeben wird, ist der Wert beim Start standardmäßig 2, wenn das AMI die Einstellung ImdsSupport: v2.0 hat; andernfalls ist er standardmäßig 1.
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
Modified = (Edit-EC2InstanceMetadataDefault `
-Region $_ `
-HttpToken required `
-HttpPutResponseHopLimit 2)
}
} | `
Format-Table Region, Modified -AutoSize
Erwartete Ausgabe
Region Modified
------ --------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
So zeigen Sie die Standard-Kontoeinstellungen für die Instance-Metadatenoptionen für alle Regionen an
Verwenden Sie das cmdlet Get-EC2InstanceMetadataDefault.
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit
HttpTokens = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens
}
} | `
Format-Table -AutoSize
Beispielausgabe
Region HttpPutResponseHopLimit HttpTokens
------ ----------------------- ----------
ap-south-1 2 required
eu-north-1 2 required
eu-west-3 2 required
...
Erzwingen Sie IMDSv2 auf Kontoebene
Sie können die Verwendung von IMDSv2 auf Kontoebene für jedes Konto erzwingen. AWS-Region Wenn dies erzwungen wird, können Instances nur gestartet werden, wenn sie so konfiguriert sind, dass IMDSv2 erforderlich ist. Diese Durchsetzung gilt unabhängig davon, wie die Instance oder das AMI konfiguriert ist.
Bevor Sie die IMDSv2-Durchsetzung auf Kontoebene aktivieren, stellen Sie sicher, dass Ihre Anwendungen und AMIs IMDSv2 unterstützen. Weitere Informationen finden Sie unter Empfohlener Pfad zur Anforderung IMDSv2. Wenn die IMDSv2-Erzwingung aktiviert httpTokens ist und weder required in der Instance-Konfiguration beim Start noch in den Kontoeinstellungen noch in der AMI-Konfiguration auf diese Option gesetzt ist, schlägt der Instance-Start fehl. Informationen zur Problembehebung finden Sie unter Das Starten einer IMDSv1 -fähigen Instance schlägt fehl.
Diese Einstellung ändert nicht die IMDS-Version vorhandener Instances, blockiert jedoch die Aktivierung von IMDSv1 auf vorhandenen Instances, für die IMDSv1 derzeit deaktiviert ist.
- Console
-
Um IMDSv2 für das Konto in der angegebenen Region durchzusetzen
-
Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.
-
Um dies zu ändern AWS-Region, verwenden Sie die Regionsauswahl in der oberen rechten Ecke der Seite.
-
Wählen Sie im Navigationsbereich Dashboard (Dashboard).
-
Wählen Sie auf der Karte Kontoattribute unter Einstellungen die Option Datenschutz und Sicherheit aus.
-
Wählen Sie neben IMDS-Standardeinstellungen die Option Verwalten aus.
-
Gehen Sie auf der Seite IMDS-Standardwerte verwalten wie folgt vor:
-
Wählen Sie für Metadatenversion die Option Nur V2 (Token erforderlich) aus.
-
Wählen Sie für Enforce IMDSv2 die Option Aktiviert aus.
-
Wählen Sie Aktualisieren aus.
- AWS CLI
-
Um IMDSv2 für das Konto in der angegebenen Region durchzusetzen
Verwenden Sie den Befehl https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html modify-instance-metadata-defaults und geben Sie die Region an, in der IMDSv2 erzwungen werden soll.
aws ec2 modify-instance-metadata-defaults \
--region us-east-1 \
--http-tokens required \
--http-tokens-enforced enabled
Es folgt eine Beispielausgabe.
{
"Return": true
}
Um die IMDSv2-Erzwingungseinstellung für das Konto in einer bestimmten Region anzuzeigen
Verwenden Sie den Befehl get-instance-metadata-defaults und geben Sie die Region an.
aws ec2 get-instance-metadata-defaults --region us-east-1
Es folgt eine Beispielausgabe.
{
"AccountLevel": {
"HttpTokens": "required",
"HttpTokensEnforced": "enabled"
},
"ManagedBy": "account"
}
Das ManagedBy-Feld gibt die Entität an, die die Einstellung konfiguriert hat. account zeigt in diesem Beispiel an, dass die Einstellung direkt im Konto konfiguriert wurde. Ein Wert von declarative-policy würde bedeuten, dass die Einstellung durch eine deklarative Richtlinie konfiguriert wurde. Weitere Informationen finden Sie unter Deklarative Richtlinien im AWS Organizations User Guide.
Um IMDSv2 für das Konto für alle Regionen durchzusetzen
Verwenden Sie den Befehl https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html modify-instance-metadata-defaults, um IMDSv2 in allen Regionen durchzusetzen.
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
Es folgt eine Beispielausgabe.
Region Modified
-------------- ---------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
Um die IMDSv2-Erzwingungseinstellungen für das Konto in allen Regionen anzuzeigen
Verwenden Sie den Befehl 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
Es folgt eine Beispielausgabe.
Region Level HttpTokensEnforced
-------------- ------------ ------------------
ap-south-1 ACCOUNTLEVEL enabled
eu-north-1 ACCOUNTLEVEL enabled
eu-west-3 ACCOUNTLEVEL enabled
...
- PowerShell
-
Um IMDSv2 für das Konto in der angegebenen Region durchzusetzen
Verwenden Sie das Edit-EC2InstanceMetadataDefault Cmdlet und geben Sie die Region an, in der IMDSv2 erzwungen werden soll.
Edit-EC2InstanceMetadataDefault `
-Region us-east-1 `
-HttpToken required `
-HttpPutResponseHopLimit 2
Es folgt eine Beispielausgabe.
@{
Return = $true
}
Um die IMDSv2-Erzwingungseinstellung für das Konto in einer bestimmten Region anzuzeigen
Verwenden Sie den Get-EC2InstanceMetadataDefault Befehl und geben Sie die Region an.
Get-EC2InstanceMetadataDefault -Region us-east-1
Es folgt eine Beispielausgabe.
@{
AccountLevel = @{
HttpTokens = "required"
HttpTokensEnforced = "enabled"
}
ManagedBy = "account"
}
Das ManagedBy-Feld gibt die Entität an, die die Einstellung konfiguriert hat. account zeigt in diesem Beispiel an, dass die Einstellung direkt im Konto konfiguriert wurde. Ein Wert von declarative-policy würde bedeuten, dass die Einstellung durch eine deklarative Richtlinie konfiguriert wurde. Weitere Informationen finden Sie unter Deklarative Richtlinien im AWS Organizations User Guide.
Um IMDSv2 für das Konto für alle Regionen durchzusetzen
Verwenden Sie den Befehl https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html modify-instance-metadata-defaults, um IMDSv2 in allen Regionen durchzusetzen.
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
Es folgt eine Beispielausgabe.
Region Modified
-------------- ---------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
So legen Sie IMDSv2 als Standard für das Konto für alle Regionen fest
Verwenden Sie das Cmdlet, um die Einstellungen auf IMDS-Kontoebene für Edit-EC2InstanceMetadataDefault alle Regionen zu ändern. Schließen Sie die Einstellung -HttpToken auf required ein und legen Sie -HttpPutResponseHopLimit auf 2 fest, wenn Ihre Instances Container hosten werden. Geben Sie andernfalls -1 an, dass keine Präferenz angegeben werden soll. Wenn -1 (keine Präferenz) angegeben wird, ist der Wert beim Start standardmäßig 2, wenn das AMI die Einstellung ImdsSupport: v2.0 hat; andernfalls ist er standardmäßig 1.
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
Modified = (Edit-EC2InstanceMetadataDefault `
-Region $_ `
-HttpToken required `
-HttpPutResponseHopLimit 2)
}
} | `
Format-Table Region, Modified -AutoSize
Erwartete Ausgabe
Region Modified
------ --------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
So zeigen Sie die Standard-Kontoeinstellungen für die Instance-Metadatenoptionen für alle Regionen an
Verwenden Sie das cmdlet Get-EC2InstanceMetadataDefault.
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit
HttpTokens = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens
}
} | `
Format-Table -AutoSize
Beispielausgabe
Region HttpPutResponseHopLimit HttpTokens
------ ----------------------- ----------
ap-south-1 2 required
eu-north-1 2 required
eu-west-3 2 required
...
Wenn Sie eine Instance starten, können Sie sie so konfigurieren, dass die Verwendung von IMDSv2 erzwungen wird. Dazu konfigurieren Sie die folgenden Felder:
Wenn Sie angeben, dass IMDSv2 erforderlich ist, müssen Sie auch den Endpunkt des Instance Metadata Service (IMDS) aktivieren, indem Sie Metadatazugriff auf Aktiviert (Konsole) oder HttpEndpoint auf enabled (AWS CLI) einstellen.
In einer Container-Umgebung, wenn IMDSv2 erfordert ist, empfehlen wir, das Hop-Limit auf 2 festzulegen. Weitere Informationen finden Sie unter Überlegungen zum Instance-Zugriff auf Instance-Metadaten.
- Console
-
So erzwingen Sie die Verwendung von IMDSv2 für eine neue Instance
-
Wenn Sie eine neue Instance in der Amazon-EC2-Konsole starten, erweitern Sie Erweiterte Details wie folgt:
-
Für Metadaten zugänglich wählen Sie Aktiviert.
-
Wählen Sie für Metadatenversion die Option Nur V2 (Token erforderlich) aus.
-
(Container-Umgebung) Wählen Sie für Metadata-Antwort-Hop-Limit den Wert 2 aus.
Weitere Informationen finden Sie unter Erweiterte Details.
- AWS CLI
-
So erzwingen Sie die Verwendung von IMDSv2 für eine neue Instance
Im folgenden Beispiel für run-instances wird eine c6i.large-Instance gestartet, bei der --metadata-options auf HttpTokens=required gesetzt ist. Wenn Sie einen Wert für HttpTokens angeben, müssen Sie auch HttpEndpoint auf enabled einstellen. Da der sichere Token-Header für Anforderungen zum Abruf von Metadaten auf required eingestellt ist, muss die Instance beim Anfordern von Instance-Metadaten IMDSv2 verwenden.
In einer Container-Umgebung, wenn IMDSv2 erfordert ist, empfehlen wir, das Hop-Limit auf 2 mit HttpPutResponseHopLimit=2 festzulegen.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type c6i.large \
...
--metadata-options "HttpEndpoint=enabled,HttpTokens=required,HttpPutResponseHopLimit=2"
- PowerShell
-
So erzwingen Sie die Verwendung von IMDSv2 für eine neue Instance
Das folgende New-EC2Instance Cmdlet-Beispiel startet eine c6i.large Instanz mit MetadataOptions_HttpEndpoint set to und dem Parameter toenabled. MetadataOptions_HttpTokens required Wenn Sie einen Wert für HttpTokens angeben, müssen Sie auch HttpEndpoint auf enabled einstellen. Da der sichere Token-Header für Anforderungen zum Abruf von Metadaten auf required eingestellt ist, muss die Instance beim Anfordern von Instance-Metadaten IMDSv2 verwenden.
New-EC2Instance `
-ImageId ami-0abcdef1234567890 `
-InstanceType c6i.large `
-MetadataOptions_HttpEndpoint enabled `
-MetadataOptions_HttpTokens required
- CloudFormation
-
Informationen zur Angabe der Metadatenoptionen für eine Instance finden Sie unter der LaunchTemplate MetadataOptions Eigenschaft AWS: :EC2:: im Benutzerhandbuch. CloudFormationAWS CloudFormation
Wenn Sie ein neues AMI registrieren oder ein vorhandenes AMI ändern, können Sie den Parameter imds-support auf v2.0 setzen. Bei Instances, die über dieses AMI gestartet werden, ist Metadatenversion auf Nur V2 (Token erforderlich) (Konsole) eingestellt, oder HttpTokens ist auf required eingestellt (AWS CLI). Mit diesen Einstellungen erzwingt die Instance die Verwendung von IMDSv2, wenn Instance-Metadaten angefordert werden.
Hinweis: Wenn Sie imds-support auf v2.0 einstellen, wird bei Instances, die über dieses AMI gestartet werden, auch Metadata response hop limit (Limit für Metadaten-Antwort-Hop) (Konsole) oder http-put-response-hop-limit (AWS CLI) auf 2 eingestellt.
Verwenden Sie diesen Parameter nur, wenn Ihre AMI-Software IMDSv2 unterstützt. Nachdem Sie den Wert auf v2.0 gesetzt haben, können Sie das nicht mehr rückgängig machen. Die einzige Möglichkeit, Ihr AMI „zurückzusetzen“, besteht darin, ein neues AMI aus dem zugrunde liegenden Snapshot zu erstellen.
So konfigurieren Sie ein neues AMI für IMDSv2
Verwenden Sie eine der folgenden Methoden, um ein neues AMI für IMDSv2 zu konfigurieren.
- AWS CLI
-
Das folgende register-image-Beispiel registriert ein AMI mit dem angegebenen Snapshot eines EBS-Stamm-Volumes als /dev/xvda des Geräts. Geben Sie v2.0 für den imds-support-Parameter an, sodass von diesem AMI aus gestartete Instances erzwingen, dass beim Anfordern von Instance-Metadaten IMDSv2 verwendet wird.
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
-
Das folgende Register-EC2Image Cmdlet-Beispiel registriert ein AMI, das den angegebenen Snapshot eines EBS-Root-Volumes als Gerät verwendet. /dev/xvda Geben Sie v2.0 für den ImdsSupport-Parameter an, sodass von diesem AMI aus gestartete Instances erzwingen, dass beim Anfordern von Instance-Metadaten IMDSv2 verwendet wird.
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
So konfigurieren Sie ein bestehendes AMI für IMDSv2
Verwenden Sie eine der folgenden Methoden, um ein bereits vorhandenes AMI für IMDSv2 zu konfigurieren.
- AWS CLI
-
Das folgende Beispiel für modify-image-attribute ändert ein vorhandenes AMI nur für IMDSv2. Geben Sie v2.0 für den imds-support-Parameter an, sodass von diesem AMI aus gestartete Instances erzwingen, dass beim Anfordern von Instance-Metadaten IMDSv2 verwendet wird.
aws ec2 modify-image-attribute \
--image-id ami-0abcdef1234567890 \
--imds-support v2.0
- PowerShell
-
Das folgende Edit-EC2ImageAttribute Cmdlet-Beispiel ändert ein vorhandenes AMI nur für IMDSv2. Geben Sie v2.0 für den imds-support-Parameter an, sodass von diesem AMI aus gestartete Instances erzwingen, dass beim Anfordern von Instance-Metadaten IMDSv2 verwendet wird.
Edit-EC2ImageAttribute `
-ImageId ami-0abcdef1234567890 `
-ImdsSupport 'v2.0'
Sie können eine IAM-Richtlinie erstellen, die eine der folgenden Aktionen ausführt:
-
Verhindert, dass Benutzer neue Instances starten, es sei denn, sie benötigen IMDSv2 auf der neuen Instance.
-
Hindert Benutzer daran, die ModifyInstanceMetadataOptions API aufzurufen, um die Metadatenoptionen einer laufenden Instance zu ändern. Beschränken Sie den Zugriff auf die Eigenschaft ModifyInstanceMetadataOptions HttpTokens, um unbeabsichtigte Aktualisierungen laufender Instanzen zu verhindern.
-
Verhindern Sie, dass Benutzer die ModifyInstanceMetadataDefaults API aufrufen, um die Kontostandardeinstellungen von HttpTokens und http zu ändern. TokensEnforced Durch die Beschränkung des Zugriffs auf diese beiden Eigenschaften wird sichergestellt, dass nur autorisierte Rollen die Kontostandardwerte ändern können.
So erzwingen Sie die Verwendung von IMDSv2 auf allen neuen Instances mit einer IAM-Richtlinie
Gehen Sie wie folgt vor, um sicherzustellen, dass Benutzer nur Instances starten können, für die beim Anfordern von Instance-Metadaten die Verwendung von IMDSv2 erforderlich ist:
-
Beschränken Sie den Zugriff ModifyInstanceMetadataOptions sowohl auf die ModifyInstanceMetadataDefaults and-API als auch auf die Eigenschaften httpTokens undhttpTokensEnforced.
-
Stellen Sie dann den Standardkontonamen auf httpTokens =
required und einhttpTokensEnforced =
enabled.
Die IAM-Beispielrichtlinie finden Sie unter Arbeiten mit Instance-Metadaten.
Das IMDS hat zwei Endpunkte auf einer Instance: IPv4 (169.254.169.254) und IPv6 ([fd00:ec2::254]). Wenn Sie den IMDS aktivieren, ist der IPv4-Endpunkt automatisch aktiviert. Der IPv6-Endpunkt bleibt auch dann deaktiviert, wenn Sie eine Instance in einem IPv6-only Subnetz starten. Wenn Sie den IPv6-Endpunkt aktivieren möchten, müssen Sie dies explizit tun. Wenn der IPv6-Endpunkt aktiviert ist, bleibt der IPv4-Endpunkt aktiviert.
Sie können den IPv6-Endpunkt beim Start der Instance aktivieren oder danach.
Anforderungen für die Aktivierung des IPv6-Endpunkts
Verwenden Sie eine der folgenden Methoden, um eine Instance mit aktiviertem IMDS-IPv6-Endpunkt zu starten.
- Console
-
So aktivieren Sie den IMDS-IPv6-Endpunkt beim Start einer Instance
Weitere Informationen finden Sie unter Erweiterte Details.
- AWS CLI
-
So aktivieren Sie den IMDS-IPv6-Endpunkt beim Start einer Instance
Das folgende run-instances-Beispiel startet eine c6i.large-Instance, wobei der IPv6-Endpunkt für den IMDS aktiviert ist. Um den IPv6-Endpunkt zu aktivieren, geben Sie für den Parameter --metadata-options den Wert HttpProtocolIpv6=enabled an. Wenn Sie einen Wert für HttpProtocolIpv6 angeben, müssen Sie auch HttpEndpoint auf enabled einstellen.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type c6i.large \
...
--metadata-options "HttpEndpoint=enabled,HttpProtocolIpv6=enabled"
- PowerShell
-
So aktivieren Sie den IMDS-IPv6-Endpunkt beim Start einer Instance
Das folgende New-EC2Instance Cmdlet-Beispiel startet eine c6i.large Instanz, bei der der IPv6-Endpunkt für das IMDS aktiviert ist. Legen Sie zum Aktivieren des IPv6-Endpunkts MetadataOptions_HttpProtocolIpv6 auf enabled fest. Wenn Sie einen Wert für MetadataOptions_HttpProtocolIpv6 angeben, müssen Sie auch MetadataOptions_HttpEndpoint auf enabled einstellen.
New-EC2Instance `
-ImageId ami-0abcdef1234567890 `
-InstanceType c6i.large `
-MetadataOptions_HttpEndpoint enabled `
-MetadataOptions_HttpProtocolIpv6 enabled
Sie können den Zugriff auf die Instance-Metadaten deaktivieren, indem Sie den IMDS deaktivieren, wenn Sie eine Instance starten. Sie können den Zugriff später wieder aktivieren, indem Sie den IMDS erneut aktivieren. Weitere Informationen finden Sie unter Aktivieren des Zugriffs auf Instance-Metadaten.
Sie können wählen, ob Sie den IMDS beim Start oder nach dem Start deaktivieren möchten. Wenn Sie den IMDS beim Start deaktivieren, funktioniert Folgendes möglicherweise nicht:
-
Möglicherweise haben Sie keinen SSH-Zugriff auf Ihre Instance. Auf den public-keys/0/openssh-key, den öffentlichen SSH-Schlüssel Ihrer Instance, kann nicht zugegriffen werden, da der Schlüssel normalerweise über die EC2-Instance-Metadaten bereitgestellt und abgerufen wird.
-
EC2-Benutzerdaten sind nicht verfügbar und werden beim Start der Instance nicht ausgeführt. EC2-Benutzerdaten werden auf dem IMDS gehostet. Wenn Sie den IMDS deaktivieren, deaktivieren Sie effektiv den Zugriff auf Benutzerdaten.
Sie können den IMDS nach dem Start wieder aktivieren, um auf diese Funktion zuzugreifen.
- Console
-
So deaktivieren Sie den Zugriff auf Instance-Metadaten beim Start
Weitere Informationen finden Sie unter Erweiterte Details.
- AWS CLI
-
So deaktivieren Sie den Zugriff auf Instance-Metadaten beim Start
Starten Sie die Instance, wobei --metadata-options auf HttpEndpoint=disabled eingestellt ist.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type c6i.large \
...
--metadata-options "HttpEndpoint=disabled"
- PowerShell
-
So deaktivieren Sie den Zugriff auf Instance-Metadaten beim Start
Im folgenden New-EC2Instance Cmdlet-Beispiel wird eine Instanz mit dem Wert auf gestartet. MetadataOptions_HttpEndpoint disabled
New-EC2Instance `
-ImageId ami-0abcdef1234567890 `
-InstanceType c6i.large `
-MetadataOptions_HttpEndpoint disabled
- CloudFormation
-
Informationen zur Angabe der Metadatenoptionen für eine Instance mithilfe CloudFormation finden Sie unter der LaunchTemplate MetadataOptions Eigenschaft AWS: :EC2:: im Benutzerhandbuch. CloudFormation
Standardmäßig gibt es keinen Zugriff auf Instance-Tags in den Instance-Metadaten. Sie müssen den Zugriff für jede Instance explizit zulassen. Wenn der Zugriff erlaubt ist, müssen die Instance-Tag-Schlüssel bestimmten Zeichenbeschränkungen entsprechen, andernfalls schlägt der Instance-Start fehl. Weitere Informationen finden Sie unter Zugriff auf Tags in Instance-Metadaten ermöglichen.