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
danNET_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:
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 (termasuktrue
dengant
huruf kecil) akan menonaktifkan emulator.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