Mengaktifkan emulator IMDS

Halaman ini menjelaskan cara mengaktifkan emulator IMDS, yang mengemulasi layanan metadata instance (IMDS) AWS. Anda dapat menjalankan emulator sebagai sidecar untuk memungkinkan workload lama berjalan di node pool GKE di AWS. Jika Anda memiliki workload lama yang tidak mendukung Workload Identity Federation untuk GKE secara langsung, gunakan emulator ini untuk mengakses data IMDS.

Batasan

  • Cluster Anda harus menggunakan Kubernetes versi 1.24 atau yang lebih baru.
  • Emulator tidak didukung di GKE di AWS generasi sebelumnya.
  • Server emulator IMDS hanya melayani permintaan kredensial (API_VERSION/meta-data/iam/security-credentials/). Semua permintaan metadata lainnya akan menampilkan error 404.
  • Deployment sidecar memerlukan container init untuk memiliki NET_ADMIN dan NET_RAW kapasitas konteks keamanan. Jika Anda tidak yakin apakah penampung memiliki konteks ini, hubungi tim keamanan Anda.
  • Token AWS STS dapat bertahan selama satu jam. Token peran dari metadata EC2 dapat bertahan selama 24 jam. Hal ini tidak akan memengaruhi penggunaan emulator Anda, tetapi Anda mungkin perlu mengetahui informasi ini selama audit keamanan.
  • Emulator IMDS hanya mengemulasi respons IMDSv1. IMDSv2 tidak didukung.

Mengaktifkan emulator

Untuk mengaktifkan emulator IMDS, tambahkan label dan anotasi ke metadata untuk Pod. Anda juga dapat mengaktifkan emulator menggunakan Deployment, DaemonSet, atau resource lain yang membuat Pod:

  1. Tambahkan label dan nilai berikut ke Pod Anda:

    gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"
    

    Satu-satunya nilai yang dapat diterima untuk label ini adalah True. Semua nilai lainnya (termasuk true dengan t huruf kecil) akan menonaktifkan emulator.

  2. Tambahkan anotasi berikut ke Pod Anda:

    gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: ARN_ROLE
    

    Ganti ARN_ROLE dengan Amazon Resource Name (ARN) yang menentukan peran yang Anda inginkan untuk dimiliki resource.

Contoh

Contoh berikut adalah Pod dengan emulator IMDS yang diaktifkan:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"
  annotations:
    gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: "arn:aws:iam::123456789012:role/my-example-role"
spec:
 serviceAccountName: my-sa
 containers:
 - name: nginx
   image: nginx