Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina spiega come attivare l'emulatore IMDS, che emula il servizio IMDS (Instance Metadata Service) di AWS. Puoi eseguire l'emulatore come sidecar per consentire l'esecuzione dei carichi di lavoro precedenti nei pool di nodi GKE su AWS. Se hai carichi di lavoro precedenti che non supportano direttamente la federazione delle identità per i carichi di lavoro per GKE, utilizza questo emulatore per accedere ai dati IMDS.
Limitazioni
Il cluster deve utilizzare una versione di Kubernetes 1.24 o successiva.
Il server dell'emulatore IMDS gestisce solo le richieste di credenziali
(API_VERSION/meta-data/iam/security-credentials/). Tutte le altre richieste di metadati
resistono un errore 404.
Un deployment sidecar richiede che il contenitore di inizializzazione disponga delle capacità del contesto di sicurezzaNET_ADMIN e NET_RAW.
Se non sai con certezza se il contenitore ha questi contesti, rivolgiti al tuo team di sicurezza.
Il token STS di AWS può durare un'ora. Il token di ruolo dei metadati EC2
puoi durare 24 ore. Ciò non dovrebbe influire sull'utilizzo dell'emulatore, ma
potresti dover conoscere queste informazioni durante un controllo di sicurezza.
L'emulatore IMDS emula solo le risposte IMDSv1. IMDSv2 non è supportato.
Attivare l'emulatore
Per attivare l'emulatore IMDS, aggiungi un'etichetta e un'annotazione ai metadati di un pod. Puoi anche attivare l'emulatore utilizzando un deployment, un DaemonSet o qualsiasi altra risorsa che crea pod:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-31 UTC."],[],[],null,["# Enable the IMDS emulator\n\nThis page explains how you can enable the IMDS emulator, which emulates the AWS\ninstance metadata service (IMDS). You can run the\nemulator as a sidecar to enable legacy workloads to run in\nGKE on AWS node pools. If you have legacy workloads that don't\nsupport Workload Identity Federation for GKE directly, use this emulator to access IMDS data.\n\nLimitations\n-----------\n\n- Your cluster must use a Kubernetes version of 1.24 or later.\n- The emulator is not supported in the [previous generation](/kubernetes-engine/multi-cloud/docs/aws/previous-generation) of GKE on AWS.\n- The IMDS emulator server only serves credential requests (`API_VERSION/meta-data/iam/security-credentials/`). All other metadata requests return a 404 error.\n- A sidecar deployment requires the init container to have the `NET_ADMIN` and `NET_RAW` [security context capacities](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/). If you're not sure if the container has these contexts, consult your security team.\n- The AWS STS token can last for one hour. The role token from EC2 metadata can last for 24 hours. This shouldn't affect your usage of the emulator, but you might need to know this information during a security audit.\n- The IMDS emulator only emulates IMDSv1 responses. IMDSv2 is not supported.\n\nEnable the emulator\n-------------------\n\nTo enable the IMDS emulator, add a label and an annotation to metadata for a\nPod. You can also enable the emulator using a Deployment, DaemonSet, or any\nother resource that creates Pods:\n\n1. Add the following label and value to your Pod:\n\n gkemulticloud.googleapis.com/aws-imds-emulator-enabled: \"True\"\n\n The only acceptable value for this label is `True`. All other values\n (including `true` with a lowercase `t`) disable the emulator.\n2. Add the following annotation to your Pod:\n\n gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eARN_ROLE\u003c/span\u003e\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003eARN_ROLE\u003c/var\u003e with an Amazon Resource Name\n (ARN) that specifies the role that you want the resource to have.\n\n### Example\n\nThe following example is a Pod with the IMDS emulator enabled: \n\n apiVersion: v1\n kind: Pod\n metadata:\n name: nginx\n labels:\n gkemulticloud.googleapis.com/aws-imds-emulator-enabled: \"True\"\n annotations:\n gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: \"arn:aws:iam::123456789012:role/my-example-role\"\n spec:\n serviceAccountName: my-sa\n containers:\n - name: nginx\n image: nginx"]]