Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonfigurasi opsi metadata instans untuk instans baru
Anda dapat mengonfigurasi opsi metadata instance berikut untuk instans baru.
Pengaturan untuk opsi ini dikonfigurasi di tingkat akun, baik secara langsung di akun atau dengan menggunakan kebijakan deklaratif. Mereka harus dikonfigurasi di setiap Wilayah AWS tempat Anda ingin mengonfigurasi opsi metadata instance. Menggunakan kebijakan deklaratif memungkinkan Anda menerapkan pengaturan di beberapa Wilayah secara bersamaan, serta di beberapa akun secara bersamaan. Saat kebijakan deklaratif digunakan, Anda tidak dapat mengubah pengaturan secara langsung di dalam akun. Topik ini menjelaskan cara mengonfigurasi pengaturan secara langsung di dalam akun. Untuk informasi tentang penggunaan kebijakan deklaratif, lihat Kebijakan deklaratif di Panduan AWS Organizations Pengguna.
Anda dapat menggunakan metode berikut untuk mewajibkan penggunaan IMDSv2 pada instans baru Anda.
Untuk mengharuskan IMDSv2
Setel IMDSv2 sebagai default untuk akun
Anda dapat mengatur versi default untuk layanan metadata instans (IMDS) di tingkat akun untuk masing-masing Wilayah AWS. Ini berarti bahwa ketika Anda meluncurkan instance baru, versi metadata instans secara otomatis disetel ke default tingkat akun. Namun, Anda dapat mengganti nilai secara manual saat peluncuran atau setelah peluncuran. Untuk informasi selengkapnya tentang bagaimana pengaturan tingkat akun dan penggantian manual memengaruhi instance, lihat. Urutan prioritas misalnya opsi metadata
Menyetel default tingkat akun tidak mengatur ulang instans yang ada. Misalnya, jika Anda menyetel default tingkat akun ke IMDSv2, instans yang ada yang disetel ke IMDsv1 tidak terpengaruh. Jika Anda ingin mengubah nilai pada instance yang ada, Anda harus mengubah nilai pada instans itu sendiri secara manual.
Anda dapat mengatur default akun untuk versi metadata instans ke IMDSv2 sehingga semua instans baru dalam peluncuran akun dengan IMDSv2 diperlukan, dan IMDSv1 akan dinonaktifkan. Dengan default akun ini, saat Anda meluncurkan instance, berikut ini adalah nilai default untuk instance:
- Console
-
Untuk mengatur IMDSv2 sebagai default untuk akun untuk Wilayah yang ditentukan
Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.
-
Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.
-
Di panel navigasi, pilih Dasbor.
-
Pada kartu Atribut Akun, di bawah Pengaturan, pilih Perlindungan dan keamanan data.
-
Di samping IMDS default, pilih Kelola.
-
Pada halaman Kelola default IMDS, lakukan hal berikut:
-
Untuk layanan metadata contoh, pilih Di aktifkan.
-
Untuk Versi metadata, pilih V2 saja (token diperlukan).
-
Untuk batas hop respons Metadata, tentukan 2 jika instance Anda akan meng-host container. Jika tidak, pilih Tidak ada preferensi. Ketika tidak ada preferensi yang ditentukan, saat peluncuran, nilai default menjadi 2 jika AMI memiliki pengaturanImdsSupport: v2.0; jika tidak, default ke 1.
-
Pilih Perbarui.
- AWS CLI
-
Untuk mengatur IMDSv2 sebagai default untuk akun untuk Wilayah yang ditentukan
Gunakan perintah modify-instance-metadata-dedefault dan tentukan Wilayah tempat untuk memodifikasi pengaturan tingkat akun IMDS. Sertakan --http-tokens disetel ke required dan --http-put-response-hop-limit setel ke 2 jika instans Anda akan meng-host kontainer. Jika tidak, tent -1 ukan untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default adalah 2 jika AMI memiliki pengaturanImdsSupport: v2.0; jika tidak maka defaultnya menjadi. 1
aws ec2 modify-instance-metadata-defaults \
--region us-east-1 \
--http-tokens required \
--http-put-response-hop-limit 2
Berikut ini adalah output contoh.
{
"Return": true
}
Untuk melihat pengaturan akun default untuk opsi metadata instans untuk Wilayah yang ditentukan
Gunakan perintah get-instance-metadata- dedefault dan tentukan Wilayah.
aws ec2 get-instance-metadata-defaults --region us-east-1
Berikut ini adalah output contoh.
{
"AccountLevel": {
"HttpTokens": "required",
"HttpPutResponseHopLimit": 2
},
"ManagedBy": "account"
}
Bid ManagedBy ang menunjukkan entitas yang mengkonfigurasi pengaturan. Dalam contoh ini, account menunjukkan bahwa pengaturan dikonfigurasi langsung di akun. Nilai berarti declarative-policy pengaturan dikonfigurasi oleh kebijakan deklaratif. Untuk informasi selengkapnya, lihat Kebijakan deklaratif di Panduan AWS Organizations Pengguna.
Untuk mengatur IMDSv2 sebagai default untuk akun untuk semua Wilayah
Gunakan perintah modify-instance-metadata-dedefault untuk mengubah pengaturan tingkat akun IMDS untuk semua Wilayah. Sertakan --http-tokens disetel ke required dan --http-put-response-hop-limit setel ke 2 jika instans Anda akan meng-host kontainer. Jika tidak, tent -1 ukan untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default adalah 2 jika AMI memiliki pengaturanImdsSupport: v2.0; jika tidak maka defaultnya menjadi. 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
Berikut ini adalah output contoh.
Region Modified
-------------- ---------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
Untuk melihat pengaturan akun default untuk opsi metadata instans untuk semua Wilayah
Gunakan perintah get-instance-metadata-dedefault.
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
Berikut ini adalah output contoh.
Region Level Hops HttpTokens
-------------- ------------ ---- ----------
ap-south-1 ACCOUNTLEVEL 2 required
eu-north-1 ACCOUNTLEVEL 2 required
eu-west-3 ACCOUNTLEVEL 2 required
...
- PowerShell
-
Untuk mengatur IMDSv2 sebagai default untuk akun untuk Wilayah yang ditentukan
Gunakan Edit-EC2InstanceMetadataDefault cmdlet dan tentukan Wilayah tempat memodifikasi pengaturan tingkat akun IMDS. Sertakan -HttpToken disetel ke required dan -HttpPutResponseHopLimit setel ke 2 jika instans Anda akan meng-host kontainer. Jika tidak, tent -1 ukan untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default adalah 2 jika AMI memiliki pengaturanImdsSupport: v2.0; jika tidak maka defaultnya menjadi. 1
Edit-EC2InstanceMetadataDefault `
-Region us-east-1 `
-HttpToken required `
-HttpPutResponseHopLimit 2
Berikut ini adalah output contoh.
True
Untuk melihat pengaturan akun default untuk opsi metadata instans untuk Wilayah yang ditentukan
Gunakan Get-EC2InstanceMetadataDefault cmdlet dan tentukan Wilayah.
Get-EC2InstanceMetadataDefault -Region us-east-1 | Format-List
Berikut ini adalah output contoh.
HttpEndpoint :
HttpPutResponseHopLimit : 2
HttpTokens : required
InstanceMetadataTags :
Untuk mengatur IMDSv2 sebagai default untuk akun untuk semua Wilayah
Gunakan Edit-EC2InstanceMetadataDefault cmdlet untuk mengubah pengaturan tingkat akun IMDS untuk semua Wilayah. Sertakan -HttpToken disetel ke required dan -HttpPutResponseHopLimit setel ke 2 jika instans Anda akan meng-host kontainer. Jika tidak, tent -1 ukan untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default adalah 2 jika AMI memiliki pengaturanImdsSupport: v2.0; jika tidak maka defaultnya menjadi. 1
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
Modified = (Edit-EC2InstanceMetadataDefault `
-Region $_ `
-HttpToken required `
-HttpPutResponseHopLimit 2)
}
} | `
Format-Table Region, Modified -AutoSize
Output yang diharapkan
Region Modified
------ --------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
Untuk melihat pengaturan akun default untuk opsi metadata instans untuk semua Wilayah
Gunakan Get-EC2InstanceMetadataDefault cmdlet.
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit
HttpTokens = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens
}
} | `
Format-Table -AutoSize
Contoh Output
Region HttpPutResponseHopLimit HttpTokens
------ ----------------------- ----------
ap-south-1 2 required
eu-north-1 2 required
eu-west-3 2 required
...
Menerapkan IMDSv2 di tingkat akun
Anda dapat menerapkan penggunaan IMDSv2 di tingkat akun untuk masing-masing. Wilayah AWS Saat diterapkan, instance hanya dapat diluncurkan jika dikonfigurasi untuk memerlukan IMDSv2. Penegakan ini berlaku terlepas dari bagaimana instance atau AMI dikonfigurasi.
Pengaturan ini tidak mengubah versi IMDS dari instans yang ada, tetapi memblokir pengaktifan IMDsv1 pada instans yang ada yang saat ini menonaktifkan IMDSv1.
- Console
-
Untuk menerapkan IMDSv2 untuk akun di Wilayah yang ditentukan
-
Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.
-
Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.
-
Di panel navigasi, pilih Dasbor.
-
Pada kartu Atribut Akun, di bawah Pengaturan, pilih Perlindungan dan keamanan data.
-
Di samping IMDS default, pilih Kelola.
-
Pada halaman Kelola default IMDS, lakukan hal berikut:
-
Untuk Versi metadata, pilih V2 saja (token diperlukan).
-
Untuk Men egakkan IMDSv2, pilih Diaktifkan.
-
Pilih Perbarui.
- AWS CLI
-
Untuk menerapkan IMDSv2 untuk akun di Wilayah yang ditentukan
Gunakan perintah modify-instance-metadata-dedefault dan tentukan Wilayah untuk menerapkan IMDSv2.
aws ec2 modify-instance-metadata-defaults \
--region us-east-1 \
--http-tokens required \
--http-tokens-enforced enabled
Berikut ini adalah output contoh.
{
"Return": true
}
Untuk melihat setelan penegakan IMDSv2 untuk akun di Wilayah tertentu
Gunakan perintah get-instance-metadata- dedefault dan tentukan Wilayah.
aws ec2 get-instance-metadata-defaults --region us-east-1
Berikut ini adalah output contoh.
{
"AccountLevel": {
"HttpTokens": "required",
"HttpTokensEnforced": "enabled"
},
"ManagedBy": "account"
}
Bid ManagedBy ang menunjukkan entitas yang mengkonfigurasi pengaturan. Dalam contoh ini, account menunjukkan bahwa pengaturan dikonfigurasi langsung di akun. Nilai berarti declarative-policy pengaturan dikonfigurasi oleh kebijakan deklaratif. Untuk informasi selengkapnya, lihat Kebijakan Deklaratif di Panduan AWS Pengguna Organisasi.
Untuk menerapkan IMDSv2 untuk akun untuk semua Wilayah
Gunakan perintah modify-instance-metadata-de default untuk menerapkan IMDSv2 di semua Wilayah.
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
Berikut ini adalah output contoh.
Region Modified
-------------- ---------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
Untuk melihat pengaturan penegakan IMDSv2 untuk akun di semua Wilayah
Gunakan perintah get-instance-metadata-dedefault.
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
Berikut ini adalah output contoh.
Region Level HttpTokensEnforced
-------------- ------------ ------------------
ap-south-1 ACCOUNTLEVEL enabled
eu-north-1 ACCOUNTLEVEL enabled
eu-west-3 ACCOUNTLEVEL enabled
...
- PowerShell
-
Untuk menerapkan IMDSv2 untuk akun di Wilayah yang ditentukan
Gunakan Edit-EC2InstanceMetadataDefault cmdlet dan tentukan Wilayah untuk menerapkan IMDSv2.
Edit-EC2InstanceMetadataDefault `
-Region us-east-1 `
-HttpToken required `
-HttpPutResponseHopLimit 2
Berikut ini adalah output contoh.
@{
Return = $true
}
Untuk melihat setelan penegakan IMDSv2 untuk akun di Wilayah tertentu
Gunakan Get-EC2InstanceMetadataDefault perintah dan tentukan Wilayah.
Get-EC2InstanceMetadataDefault -Region us-east-1
Berikut ini adalah output contoh.
@{
AccountLevel = @{
HttpTokens = "required"
HttpTokensEnforced = "enabled"
}
ManagedBy = "account"
}
Bid ManagedBy ang menunjukkan entitas yang mengkonfigurasi pengaturan. Dalam contoh ini, account menunjukkan bahwa pengaturan dikonfigurasi langsung di akun. Nilai berarti declarative-policy pengaturan dikonfigurasi oleh kebijakan deklaratif. Untuk informasi selengkapnya, lihat Kebijakan Deklaratif di Panduan AWS Pengguna Organisasi.
Untuk menerapkan IMDSv2 untuk akun untuk semua Wilayah
Gunakan perintah modify-instance-metadata-de default untuk menerapkan IMDSv2 di semua Wilayah.
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
Berikut ini adalah output contoh.
Region Modified
-------------- ---------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
Untuk mengatur IMDSv2 sebagai default untuk akun untuk semua Wilayah
Gunakan Edit-EC2InstanceMetadataDefault cmdlet untuk mengubah pengaturan tingkat akun IMDS untuk semua Wilayah. Sertakan -HttpToken disetel ke required dan -HttpPutResponseHopLimit setel ke 2 jika instans Anda akan meng-host wadah. Jika tidak, tent -1 ukan untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default adalah 2 jika AMI memiliki pengaturanImdsSupport: v2.0; jika tidak maka defaultnya menjadi. 1
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
Modified = (Edit-EC2InstanceMetadataDefault `
-Region $_ `
-HttpToken required `
-HttpPutResponseHopLimit 2)
}
} | `
Format-Table Region, Modified -AutoSize
Output yang diharapkan
Region Modified
------ --------
ap-south-1 True
eu-north-1 True
eu-west-3 True
...
Untuk melihat pengaturan akun default untuk opsi metadata instans untuk semua Wilayah
Gunakan Get-EC2InstanceMetadataDefault cmdlet.
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit
HttpTokens = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens
}
} | `
Format-Table -AutoSize
Contoh Output
Region HttpPutResponseHopLimit HttpTokens
------ ----------------------- ----------
ap-south-1 2 required
eu-north-1 2 required
eu-west-3 2 required
...
Saat meluncurkan instans, Anda dapat mengonfigurasi instans agar memerlukan penggunaan IMDSv2 dengan mengonfigurasi bidang berikut:
Jika Anda menentukan bahwa IMDSv2 diperlukan, Anda juga harus mengaktifkan titik akhir Layanan Metadata Instans (IMDS) dengan menyetel Metadata yang dapat diakses ke Diaktifkan (konsol) atau HttpEndpoint ke enabled (AWS CLI).
Dalam lingkungan kontainer, ketika IMDSv2 diperlukan, kami sarankan mengatur batas hop ke. 2 Untuk informasi selengkapnya, lihat Pertimbangan akses metadata instance.
- Console
-
Untuk mengharuskan penggunaan IMDSv2 pada instans baru
-
Saat meluncurkan instans baru di konsol Amazon EC2, perluas Detail lanjutan, dan lakukan hal berikut:
-
Untuk Metadata yang dapat diakses, pilih Diaktifkan.
-
Untuk Versi metadata, pilih V2 saja (token diperlukan).
-
(Lingkungan kontainer) Untuk batas hop respons Metadata, pilih 2.
Untuk informasi selengkapnya, lihat Detail lanjutan.
- AWS CLI
-
Untuk mengharuskan penggunaan IMDSv2 pada instans baru
Contoh run-instances berikut meluncurkan instans c6i.large dengan --metadata-options yang diatur ke HttpTokens=required. Jika Anda menetapkan nilai untuk HttpTokens, maka Anda juga harus mengatur HttpEndpoint ke enabled. Karena header token aman diatur ke required untuk permintaan pengambilan metadata, header tersebut mengharuskan instans untuk menggunakan IMDSv2 saat meminta metadata instans.
Dalam lingkungan kontainer, ketika IMDSv2 diperlukan, kami sarankan mengatur batas hop ke 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
-
Untuk mengharuskan penggunaan IMDSv2 pada instans baru
Contoh New-EC2Instance cmdlet berikut meluncurkan c6i.large instance dengan MetadataOptions_HttpEndpoint set ke enabled dan MetadataOptions_HttpTokens parameter ke. required Jika Anda menetapkan nilai untuk HttpTokens, maka Anda juga harus mengatur HttpEndpoint ke enabled. Karena header token aman diatur ke required untuk permintaan pengambilan metadata, header tersebut mengharuskan instans untuk menggunakan IMDSv2 saat meminta metadata instans.
New-EC2Instance `
-ImageId ami-0abcdef1234567890 `
-InstanceType c6i.large `
-MetadataOptions_HttpEndpoint enabled `
-MetadataOptions_HttpTokens required
- CloudFormation
-
Untuk menentukan opsi metadata untuk instance yang menggunakan CloudFormation, lihat LaunchTemplate MetadataOptions properti AWS: :EC2:: di Panduan AWS CloudFormation Pengguna.
Saat Anda mendaftarkan AMI baru atau memodifikasi AMI yang ada, Anda dapat mengatur parameter imds-support ke v2.0. Instans yang diluncurkan dari AMI ini akan memiliki versi Metadata yang disetel ke V2 saja (token diperlukan) (konsol) atau HttpTokens disetel ke required (AWS CLI). Dengan pengaturan ini, instans mengharuskan penggunaan IMDSv2 saat meminta metadata instans.
Perhatikan bahwa jika Anda mengatur imds-support ke v2.0, instans yang diluncurkan dari AMI ini juga akan memiliki Batas hop tanggapan Metadata (konsol) atau http-put-response-hop-limit (AWS CLI) diatur ke 2.
Jangan gunakan parameter ini kecuali perangkat lunak AMI Anda mendukung IMDSv2. Setelah Anda mengatur nilainya ke v2.0, Anda tidak dapat membatalkannya. Satu-satunya cara untuk “mengatur ulang” AMI Anda adalah dengan membuat AMI baru dari snapshot dasar.
Untuk mengonfigurasi AMI baru untuk IMDSv2
Gunakan salah satu metode berikut untuk mengkonfigurasi AMI baru untuk IMDSv2.
- AWS CLI
-
Contoh register-image berikut mendaftarkan AMI menggunakan snapshot yang ditentukan dari volume root EBS sebagai perangkat /dev/xvda. Tentukan v2.0 untuk parameter imds-support, sehingga instans yang diluncurkan dari AMI ini akan mengharuskan penggunaan IMDSv2 saat meminta metadata instans.
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
-
Contoh Register-EC2Image cmdlet berikut mendaftarkan AMI menggunakan snapshot yang ditentukan dari volume root EBS sebagai perangkat. /dev/xvda Tentukan v2.0 untuk parameter ImdsSupport, sehingga instans yang diluncurkan dari AMI ini akan mengharuskan penggunaan IMDSv2 saat meminta metadata instans.
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
Untuk mengonfigurasi AMI yang ada untuk IMDSv2
Gunakan salah satu metode berikut untuk mengonfigurasi AMI yang ada untuk IMDSv2.
- AWS CLI
-
Contoh modify-image-attribute berikut memodifikasi AMI yang ada hanya untuk IMDSv2. Tentukan v2.0 untuk parameter imds-support, sehingga instans yang diluncurkan dari AMI ini akan mengharuskan penggunaan IMDSv2 saat meminta metadata instans.
aws ec2 modify-image-attribute \
--image-id ami-0abcdef1234567890 \
--imds-support v2.0
- PowerShell
-
Contoh Edit-EC2ImageAttribute cmdlet berikut memodifikasi AMI yang ada hanya untuk IMDSv2. Tentukan v2.0 untuk parameter imds-support, sehingga instans yang diluncurkan dari AMI ini akan mengharuskan penggunaan IMDSv2 saat meminta metadata instans.
Edit-EC2ImageAttribute `
-ImageId ami-0abcdef1234567890 `
-ImdsSupport 'v2.0'
Anda dapat membuat kebijakan IAM yang melakukan salah satu hal berikut:
-
Mencegah pengguna meluncurkan instans baru kecuali mereka memerlukan IMDSv2 pada instance baru.
-
Mencegah pengguna memanggil ModifyInstanceMetadataOptions API untuk mengubah opsi metadata dari instance yang sedang berjalan. Batasi akses ke properti ModifyInstanceMetadataOptions HttpTokens untuk mencegah pembaruan instans yang sedang berjalan yang tidak diinginkan.
-
Mencegah pengguna memanggil ModifyInstanceMetadataDefaults API untuk mengubah pengaturan default akun dari HttpTokens dan http. TokensEnforced Membatasi akses ke dua properti ini akan memastikan bahwa hanya peran resmi yang dapat mengubah default akun.
Untuk menegakkan penggunaan IMDSv2 pada semua instans baru dengan menggunakan kebijakan IAM
Untuk memastikan bahwa pengguna hanya dapat meluncurkan instans yang memerlukan penggunaan IMDSv2 saat meminta metadata instans, lakukan hal berikut:
-
Batasi akses ke keduanya ModifyInstanceMetadataOptions dan ModifyInstanceMetadataDefaults API, dan lebih khusus lagi httpTokens httpTokensEnforced properti dan.
-
Kemudian, atur default akun ke httpTokens =
required danhttpTokensEnforced =
enabled.
Untuk contoh kebijakan IAM, lihat Cara menggunakan metadata instans.
IMDS memiliki dua titik akhir pada sebuah instance: IPv4 (169.254.169.254) dan IPv6 (). [fd00:ec2::254] Saat Anda mengaktifkan IMDS, titik akhir IPv4 secara otomatis diaktifkan. Titik akhir IPv6 tetap dinonaktifkan bahkan jika Anda meluncurkan instance ke IPv6-only subnet. Untuk mengaktifkan titik akhir IPv6, Anda harus melakukannya secara eksplisit. Saat Anda mengaktifkan titik akhir IPv6, titik akhir IPv4 tetap diaktifkan.
Anda dapat mengaktifkan titik akhir IPv6 saat peluncuran instance atau setelahnya.
Persyaratan untuk mengaktifkan titik akhir IPv6
Gunakan salah satu metode berikut untuk meluncurkan instance dengan titik akhir IPv6 IMDS diaktifkan.
- Console
-
Untuk mengaktifkan titik akhir IPv6 IMDS saat peluncuran instance
Untuk informasi selengkapnya, lihat Detail lanjutan.
- AWS CLI
-
Untuk mengaktifkan titik akhir IPv6 IMDS saat peluncuran instance
Contoh run-instances berikut meluncurkan instans c6i.large dengan titik akhir IPv6 yang diaktifkan untuk IMDS. Untuk mengaktifkan titik akhir IPv6, pada parameter --metadata-options, tentukan HttpProtocolIpv6=enabled. Jika Anda menetapkan nilai untuk HttpProtocolIpv6, maka Anda juga harus mengatur HttpEndpoint ke enabled.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type c6i.large \
...
--metadata-options "HttpEndpoint=enabled,HttpProtocolIpv6=enabled"
- PowerShell
-
Untuk mengaktifkan titik akhir IPv6 IMDS saat peluncuran instance
Contoh New-EC2Instance cmdlet berikut meluncurkan c6i.large instance dengan titik akhir IPv6 diaktifkan untuk IMDS. Untuk mengaktifkan titik akhir IPv6, tentukan MetadataOptions_HttpProtocolIpv6 sebagai enabled. Jika Anda menetapkan nilai untuk MetadataOptions_HttpProtocolIpv6, maka Anda juga harus mengatur MetadataOptions_HttpEndpoint ke enabled.
New-EC2Instance `
-ImageId ami-0abcdef1234567890 `
-InstanceType c6i.large `
-MetadataOptions_HttpEndpoint enabled `
-MetadataOptions_HttpProtocolIpv6 enabled
Anda dapat menonaktifkan akses ke metadata instans dengan menonaktifkan IMDS saat Anda meluncurkan instans. Anda dapat mengaktifkan akses nanti dengan mengaktifkan kembali IMDS. Untuk informasi selengkapnya, lihat Aktifkan akses ke metadata instans.
Anda dapat memilih untuk menonaktifkan IMDS saat peluncuran atau setelah peluncuran. Jika Anda menonaktifkan IMDS saat peluncuran, hal-hal berikut ini mungkin tidak berfungsi:
-
Anda mungkin tidak memiliki akses SSH ke instans Anda. public-keys/0/openssh-key, yang merupakan kunci SSH publik instans Anda, tidak akan dapat diakses karena kunci biasanya disediakan dan diakses dari metadata instans EC2.
-
Data pengguna EC2 tidak akan tersedia dan tidak akan berjalan saat instans dimulai. Data pengguna EC2 di-host di IMDS. Jika Anda menonaktifkan IMDS, Anda secara efektif mematikan akses ke data pengguna.
Untuk mengakses fungsionalitas ini, Anda dapat mengaktifkan kembali IMDS setelah peluncuran.
- Console
-
Untuk menonaktifkan akses ke metadata instans saat peluncuran
Untuk informasi selengkapnya, lihat Detail lanjutan.
- AWS CLI
-
Untuk menonaktifkan akses ke metadata instans saat peluncuran
Luncurkan instans dengan --metadata-options diatur ke HttpEndpoint=disabled.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type c6i.large \
...
--metadata-options "HttpEndpoint=disabled"
- PowerShell
-
Untuk menonaktifkan akses ke metadata instans saat peluncuran
Contoh New-EC2Instance cmdlet berikut meluncurkan instance dengan MetadataOptions_HttpEndpoint set to. disabled
New-EC2Instance `
-ImageId ami-0abcdef1234567890 `
-InstanceType c6i.large `
-MetadataOptions_HttpEndpoint disabled
- CloudFormation
-
Untuk menentukan opsi metadata untuk instance yang menggunakan CloudFormation, lihat LaunchTemplate MetadataOptions properti AWS: :EC2:: di Panduan CloudFormation Pengguna.
Secara default, tag instance tidak dapat diakses dalam metadata instance. Untuk setiap contoh, Anda harus secara eksplisit mengizinkan akses. Jika akses diizinkan, kunci tag instance harus mematuhi batasan karakter tertentu, jika tidak, peluncuran instance akan gagal. Untuk informasi selengkapnya, lihat Aktifkan akses ke tag dalam metadata contoh.