Mengonfigurasi opsi metadata instans untuk instans baru - Amazon Elastic Compute Cloud

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 instans berikut untuk instans baru.

Kebutuhan penggunaan IMDSv2

Anda dapat menggunakan metode berikut untuk mengharuskan penggunaan IMDSv2 pada instans baru Anda.

Tetapkan 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

catatan

Menyetel default tingkat akun tidak mengatur ulang instance yang ada. Misalnya, jika Anda menyetel default tingkat akun keIMDSv2, semua instance yang ada yang disetel ke tidak IMDSv1 terpengaruh. Jika Anda ingin mengubah nilai pada instans yang ada, Anda harus mengubah nilai pada instans itu sendiri secara manual.

Anda dapat mengatur default akun untuk versi metadata instans IMDSv2 agar semua instance baru di akun diluncurkan dengan IMDSv2 required, dan IMDSv1 akan dinonaktifkan. Dengan akun ini default, saat Anda menjalankan sebuah instans, berikut ini adalah nilai default instans:

  • Konsol: Versi metadata diatur ke V2 saja (diperlukan token) dan batas hop respons Metadata diatur ke 2.

  • AWS CLI: HttpTokens diatur ke required dan HttpPutResponseHopLimit diatur ke2.

catatan

Sebelum menyetel default akunIMDSv2, pastikan instans Anda tidak bergantung padaIMDSv1. Untuk informasi selengkapnya, lihat Jalur yang direkomendasikan untuk membutuhkan IMDSv2.

Console
Untuk menetapkan IMDSv2 sebagai default untuk akun untuk Wilayah yang ditentukan
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Untuk mengubah Wilayah AWS, gunakan pemilihan Wilayah di sudut kanan atas halaman.

  3. Di panel navigasi, pilih EC2Dasbor.

  4. Di bawah Atribut akun, pilih Perlindungan dan keamanan data.

  5. Di samping IMDSdefault, pilih Kelola.

  6. Pada halaman Kelola IMDS default, lakukan hal berikut:

    1. Untuk layanan metadata Instance, pilih Diaktifkan.

    2. Untuk Versi metadata, pilih V2 saja (token diperlukan).

    3. 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 ke 2 jika AMI membutuhkanIMDSv2; jika tidak maka defaultnya ke 1.

    4. Pilih Perbarui.

AWS CLI
Untuk menetapkan IMDSv2 sebagai default untuk akun untuk Wilayah yang ditentukan

Gunakan modify-instance-metadata-defaultsperintah dan tentukan Wilayah untuk memodifikasi pengaturan tingkat IMDS akun. Sertakan --http-tokens set ke required dan --http-put-response-hop-limit atur ke 2 jika instance Anda akan meng-host kontainer. Jika tidak, tentukan -1 untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default ke 2 if the AMI requireIMDSv2; jika tidak maka defaultnya. 1

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

Output yang diharapkan

{ "Return": true }
Untuk melihat pengaturan akun default untuk opsi metadata instance untuk Wilayah yang ditentukan

Gunakan get-instance-metadata-defaultsperintah dan tentukan Wilayah.

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

Contoh Output

{ "AccountLevel": { "HttpTokens": "required", "HttpPutResponseHopLimit": 2 } }
Untuk menetapkan IMDSv2 sebagai default untuk akun untuk semua Wilayah

Gunakan modify-instance-metadata-defaultsperintah untuk mengubah pengaturan tingkat IMDS akun untuk semua Wilayah. Sertakan --http-tokens set ke required dan --http-put-response-hop-limit atur ke 2 jika instance Anda akan meng-host kontainer. Jika tidak, tentukan -1 untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default ke 2 if the AMI requireIMDSv2; jika tidak maka defaultnya. 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

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 perintah 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

Output yang diharapkan

Region Level Hops HttpTokens -------------- ------------ ---- ---------- ap-south-1 ACCOUNTLEVEL 2 required eu-north-1 ACCOUNTLEVEL 2 required eu-west-3 ACCOUNTLEVEL 2 required ...
PowerShell
Untuk menetapkan IMDSv2 sebagai default untuk akun untuk Wilayah yang ditentukan

Gunakan Edit-EC2InstanceMetadataDefaultperintah dan tentukan Wilayah untuk memodifikasi pengaturan tingkat IMDS akun. Sertakan -HttpToken set ke required dan -HttpPutResponseHopLimit atur ke 2 jika instance Anda akan meng-host kontainer. Jika tidak, tentukan -1 untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default ke 2 if the AMI requireIMDSv2; jika tidak maka defaultnya. 1

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

Output yang diharapkan

True
Untuk melihat pengaturan akun default untuk opsi metadata instance untuk Wilayah yang ditentukan

Gunakan Get-EC2InstanceMetadataDefaultperintah dan tentukan Wilayah.

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

Contoh Output

HttpEndpoint : HttpPutResponseHopLimit : 2 HttpTokens : required InstanceMetadataTags :
Untuk menetapkan IMDSv2 sebagai default untuk akun untuk semua Wilayah

Gunakan Edit-EC2InstanceMetadataDefaultCmdlet untuk mengubah pengaturan tingkat IMDS akun untuk semua Wilayah. Sertakan -HttpToken set ke required dan -HttpPutResponseHopLimit atur ke 2 jika instance Anda akan meng-host kontainer. Jika tidak, tentukan -1 untuk menunjukkan tidak ada preferensi. Ketika -1 (tidak ada preferensi) ditentukan, saat peluncuran, nilai default ke 2 if the AMI requireIMDSv2; jika tidak maka defaultnya. 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-EC2InstanceMetadataDefaultCmdlet.

(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 ...

Konfigurasikan instans saat peluncuran

Saat meluncurkan instance, Anda dapat mengonfigurasi instance agar memerlukan penggunaan IMDSv2 dengan mengonfigurasi bidang berikut:

  • EC2Konsol Amazon: Atur versi Metadata ke V2 only (token required).

  • AWS CLI: Atur HttpTokens ke required.

Bila Anda menentukan yang IMDSv2 diperlukan, Anda juga harus mengaktifkan titik akhir Instance Metadata Service (IMDS) dengan menyetel Metadata yang dapat diakses ke Enabled (console) atau to (). HttpEndpoint enabledAWS CLI

Dalam lingkungan kontainer, bila IMDSv2 diperlukan, kami sarankan untuk mengatur batas hop ke2. Untuk informasi selengkapnya, lihat Pertimbangan akses metadata instance.

Console
Untuk mengharuskan penggunaan IMDSv2 pada instans baru
  • Saat meluncurkan instans baru di EC2 konsol Amazon, 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 permintaan pengambilan metadata, ini mengharuskan instans untuk digunakan IMDSv2 saat meminta metadata instans.

Dalam lingkungan kontainer, bila IMDSv2 diperlukan, kami sarankan untuk mengatur batas hop ke 2 withHttpPutResponseHopLimit=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-EC2InstanceCmdlet berikut meluncurkan c6i.large instance dengan MetadataOptions_HttpEndpoint set to enabled dan parameter ke. MetadataOptions_HttpTokens required Jika Anda menetapkan nilai untuk HttpTokens, maka Anda juga harus mengatur HttpEndpoint ke enabled. Karena header token aman diatur ke required permintaan pengambilan metadata, ini mengharuskan instans untuk digunakan IMDSv2 saat meminta metadata instans.

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

Untuk menentukan opsi metadata untuk instance yang menggunakan AWS CloudFormation, lihat LaunchTemplate MetadataOptions properti AWS:EC2:: di AWS CloudFormation Panduan Pengguna.

Konfigurasikan AMI

Saat Anda mendaftarkan yang baru AMI atau memodifikasi yang sudah adaAMI, Anda dapat mengatur imds-support parameternyav2.0. Instans yang diluncurkan dari ini AMI akan memiliki versi Metadata yang disetel ke V2 saja (diperlukan token) (konsol) atau HttpTokens disetel ke required ().AWS CLI Dengan pengaturan ini, instans mengharuskan hal itu IMDSv2 digunakan saat meminta metadata instans.

Perhatikan bahwa saat Anda menyetel imds-support kev2.0, instance yang diluncurkan dari ini juga AMI akan memiliki batas hop respons Metadata (konsol) atau http-put-response-hop-limit (AWS CLI) disetel ke 2.

penting

Jangan gunakan parameter ini kecuali AMI perangkat lunak Anda mendukungIMDSv2. Setelah Anda mengatur nilainya ke v2.0, Anda tidak dapat membatalkannya. Satu-satunya cara untuk “mengatur ulang” Anda AMI adalah dengan membuat yang baru AMI dari snapshot yang mendasarinya.

Untuk mengkonfigurasi yang baru AMI untuk IMDSv2

Gunakan salah satu metode berikut untuk mengonfigurasi yang baru AMI untukIMDSv2.

AWS CLI

Contoh register-image berikut mendaftarkan AMI penggunaan snapshot yang ditentukan dari volume root sebagai EBS perangkat. /dev/xvda Tentukan v2.0 imds-support parameter sehingga instance yang diluncurkan dari ini AMI akan memerlukan yang IMDSv2 digunakan saat meminta metadata instance.

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-EC2ImageCmdlet berikut mendaftarkan AMI penggunaan snapshot yang ditentukan dari volume EBS root sebagai perangkat. /dev/xvda Tentukan v2.0 ImdsSupport parameter sehingga instance yang diluncurkan dari ini AMI akan memerlukan yang IMDSv2 digunakan saat meminta metadata instance.

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 mengkonfigurasi yang sudah ada AMI untuk IMDSv2

Gunakan salah satu metode berikut untuk mengonfigurasi yang sudah ada AMI untukIMDSv2.

AWS CLI

modify-image-attributeContoh berikut memodifikasi yang ada IMDSv2 hanya AMI untuk. Tentukan v2.0 imds-support parameter sehingga instance yang diluncurkan dari ini AMI akan memerlukan yang IMDSv2 digunakan saat meminta metadata instance.

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

Contoh Edit-EC2ImageAttributeCmdlet berikut memodifikasi yang ada AMI hanya untuk. IMDSv2 Tentukan v2.0 imds-support parameter sehingga instance yang diluncurkan dari ini AMI akan memerlukan yang IMDSv2 digunakan saat meminta metadata instance.

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

Gunakan IAM kebijakan

Anda dapat membuat IAM kebijakan yang mencegah pengguna meluncurkan instans baru kecuali mereka mengharuskan IMDSv2 instans baru.

Untuk menegakkan penggunaan IMDSv2 pada semua instans baru dengan menggunakan kebijakan IAM

Untuk memastikan bahwa pengguna hanya dapat meluncurkan instans yang mengharuskan penggunaan IMDSv2 saat meminta metadata instans, Anda dapat menentukan bahwa syarat yang mengharuskan IMDSv2 harus dipenuhi sebelum instans dapat diluncurkan. Untuk contoh IAM kebijakan, lihatCara menggunakan metadata instans.

Aktifkan IMDS IPv4 dan titik IPv6 akhir

Ini IMDS memiliki dua titik akhir pada sebuah instance: IPv4 (169.254.169.254) dan IPv6 ([fd00:ec2::254]). Saat Anda mengaktifkanIMDS, IPv4 titik akhir diaktifkan secara otomatis. IPv6Titik akhir tetap dinonaktifkan bahkan jika Anda meluncurkan instance ke subnet IPv6 -only. Untuk mengaktifkan IPv6 titik akhir, Anda perlu melakukannya secara eksplisit. Saat Anda mengaktifkan titik IPv6 akhir, IPv4 titik akhir tetap diaktifkan.

Anda dapat mengaktifkan IPv6 titik akhir saat peluncuran instance atau setelahnya.

Persyaratan untuk mengaktifkan titik akhir IPv6

Gunakan salah satu metode berikut untuk meluncurkan instance dengan IMDS IPv6 titik akhir diaktifkan.

Console
Untuk mengaktifkan IMDS IPv6 titik akhir saat peluncuran instance
  • Luncurkan instance di EC2 konsol Amazon dengan hal berikut yang ditentukan di bawah Detail lanjutan:

    • Untuk IPv6titik akhir Metadata, pilih Diaktifkan.

Untuk informasi selengkapnya, lihat Detail lanjutan.

AWS CLI
Untuk mengaktifkan IMDS IPv6 titik akhir saat peluncuran instance

Contoh run-instance berikut meluncurkan c6i.large instance dengan titik IPv6 akhir diaktifkan untuk. IMDS Untuk mengaktifkan IPv6 titik akhir, untuk --metadata-options parameter, tentukanHttpProtocolIpv6=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 IMDS IPv6 titik akhir saat peluncuran instance

Contoh New-EC2InstanceCmdlet berikut meluncurkan c6i.large instance dengan IPv6 titik akhir diaktifkan untuk. IMDS Untuk mengaktifkan IPv6 titik akhir, tentukan MetadataOptions_HttpProtocolIpv6 sebagaienabled. 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

Nonaktifkan akses untuk metadata instans

Anda dapat menonaktifkan akses ke metadata instans dengan menonaktifkan IMDS saat Anda meluncurkan instance. Anda dapat mengaktifkan akses nanti dengan mengaktifkan kembali file. IMDS Untuk informasi selengkapnya, lihat Aktifkan akses ke metadata instans.

penting

Anda dapat memilih untuk menonaktifkan IMDS saat peluncuran atau setelah peluncuran. Jika Anda menonaktifkan IMDS saat peluncuran, berikut ini mungkin tidak berfungsi:

  • Anda mungkin tidak memiliki SSH akses ke instans Anda. SSHKunci publik instans Anda, tidak akan dapat diakses karena kunci biasanya disediakan dan diakses dari EC2 metadata instance. public-keys/0/openssh-key

  • EC2data pengguna tidak akan tersedia dan tidak akan berjalan saat instance start. EC2data pengguna di-host diIMDS. Jika Anda menonaktifkanIMDS, Anda secara efektif mematikan akses ke data pengguna.

Untuk mengakses fungsi ini, Anda dapat mengaktifkan kembali IMDS setelah peluncuran.

Console
Untuk menonaktifkan akses ke metadata instans saat peluncuran
  • Luncurkan instance di EC2 konsol Amazon dengan hal berikut yang ditentukan di bawah Detail lanjutan:

    • Untuk Metadata yang dapat diakses, pilih Diaktifkan.

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-EC2InstanceCmdlet berikut meluncurkan instance dengan MetadataOptions_HttpEndpoint set ke. disabled

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

Untuk menentukan opsi metadata untuk instance yang menggunakan AWS CloudFormation, lihat LaunchTemplate MetadataOptions properti AWS:EC2:: di AWS CloudFormation Panduan Pengguna.

Mengizinkan akses ke tanda dalam metadata instans

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 Mengizinkan akses ke tanda dalam metadata instans.