Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page explique comment activer l'émulateur IMDS, qui émule le service de métadonnées d'instance AWS (IMDS, Instance Metadata Service). Vous pouvez exécuter l'émulateur en tant que side-car pour permettre aux charges de travail anciennes de s'exécuter dans des pools de nœuds GKE sur AWS. Si vous avez des charges de travail anciennes qui ne sont pas directement compatibles avec Workload Identity, utilisez cet émulateur pour accéder aux données IMDS.
Limites
Votre cluster doit utiliser la version 1.24 ou ultérieure de Kubernetes.
Le serveur d'émulateur IMDS traite uniquement les requêtes d'identifiants (API_VERSION/meta-data/iam/security-credentials/). Toute autre requête de métadonnées renvoie une erreur 404.
Un déploiement side-car nécessite que le conteneur init dispose des capacités de contexte de sécuritéNET_ADMIN et NET_RAW.
Si vous n'êtes pas sûr que le conteneur dispose de ces contextes, consultez votre équipe de sécurité.
Le jeton STS AWS peut durer une heure. Le jeton de rôle provenant des métadonnées EC2 peut durer 24 heures. Cela ne devrait pas affecter votre utilisation de l'émulateur, mais ce sont des informations que vous devrez peut-être connaître lors d'un audit de sécurité.
L'émulateur IMDS émule uniquement les réponses IMDSv1. IMDSv2 n'est pas pris en charge.
Activer l'émulateur
Pour activer l'émulateur IMDS, ajoutez une étiquette et une annotation aux métadonnées d'un pod. Vous pouvez également activer l'émulateur à l'aide d'un déploiement, d'un DaemonSet ou de toute autre ressource qui crée des pods :
Ajoutez l'étiquette et la valeur suivantes à votre pod :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/07/02 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/07/02 (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"]]