Saiba como ativar o emulador do IMDS, que emula o serviço de metadados de instância da AWS (IMDS). É possível usar o emulador como um arquivo secundário para permitir que as cargas de trabalho legadas sejam executadas em em pools de nós do GKE na AWS. Se você tiver cargas de trabalho legadas que não suportam diretamente a Identidade da carga de trabalho, use esse emulador para acessar os dados do IMDS.
Limitações
- O cluster precisa usar a versão 1.24 ou mais recente do Kubernetes.
- O emulador não é compatível com a geração anterior do GKE na AWS.
- O servidor do emulador do IMDS atende somente solicitações de credenciais
(
API_VERSION/meta-data/iam/security-credentials/
). As demais solicitações de metadados retornam um erro 404. - Uma implantação de arquivo secundário exige que o contêiner de inicialização tenha as
capacidades de contexto de segurança
NET_ADMIN
eNET_RAW
. Se você não souber se o contêiner tem esses contextos, consulte a sua equipe de segurança. - O token STS da AWS pode durar uma hora. O token de papel dos metadados do EC2 pode durar 24 horas. Isso não afeta o uso do emulador, mas talvez seja necessário saber isso durante uma auditoria de segurança.
- O emulador do IMDS emula apenas respostas do IMDSv1. O IMDSv2 não é suportado.
Ativar o emulador
Para ativar o emulador do IMDS, adicione um identificador e uma anotação aos metadados de um pod. Você também pode ativar o emulador usando um Deployment, DaemonSet ou qualquer recurso que crie pods:
Adicione o seguinte identificador e valor ao seu pod:
gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"
O único valor aceitável para esse identificador é
True
. Os demais valores, incluindotrue
comt
minúsculo, desativam o emulador.Adicione a seguinte anotação ao pod:
gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: ARN_ROLE
Substitua
ARN_ROLE
por um Nome de recurso da Amazon (ARN, na sigla em inglês) que especifique o papel que o recurso deve ter.
Exemplo
O exemplo a seguir é um pod com o emulador do IMDS ativado:
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