Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Source controller support for Instance Metadata Service v2 (IMDSv2) on AWS

Abierto
#760 1 comentario 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
aws, go
Área
backend, cloud

Línea de trabajo

El issue menciona source-controller y la biblioteca minio-go, pero no menciona archivos ni pruebas del repositorio. Empieza siguiendo la configuración de las credenciales de AWS para S3 Bucket source y las solicitudes IMDS; después, verifica la reconciliación con instancias que requieren IMDSv2 y confirma que las solicitudes autenticadas mediante token eliminan el error 401.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

I get the following error message in source-controller when Flux is configured to use S3 bucket source,:

{
  "level": "error",
  "ts": "2022-06-03T13:29:32.250Z",
  "logger": "controller.bucket",
  "msg": "Reconciler error",
  "reconciler group": "source.toolkit.fluxcd.io",
  "reconciler kind": "Bucket",
  "name": "deploy-bucket",
  "namespace": "flux-system",
  "error": "failed to confirm existence of 'retracted-flux-1ejashffo6o0p' bucket: 401 Unauthorized"
}

I have created the bucket source with the following command:

flux create source bucket deploy-bucket \
  --bucket-name=retracted-flux-1ejashffo6o0p \
  --provider=aws \
  --endpoint=s3.amazonaws.com \
  --region=eu-central-1 \
  --interval=5m

.. and receive the following error message:

✚ generating Bucket source
► applying Bucket source
✔ Bucket source created
◎ waiting for Bucket source reconciliation
✗ failed to confirm existence of 'retracted-flux-1ejashffo6o0p' bucket: 401 Unauthorized

It appears that minio-go library uses Instance Metadata Service (IMDS) at 169.254.169.254 to create temporary credentials to access the S3 bucket (from captured traffic):

GET /latest/meta-data/iam/security-credentials/ HTTP/1.1
Host: 169.254.169.254
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip

This is not permitted, because my configuration requires Instance Metadata Service v2 (IMDSv2) since doing so avoids some vulnerabilities:

HTTP/1.1 401 Unauthorized
Content-Length: 0
Date: Fri, 03 Jun 2022 13:29:32 GMT
Server: EC2ws
Connection: close
Content-Type: text/plain

The fix would be to use Instance Metadata Service v2 (IMDSv2) compatible client with the minio-go library. This adds a session token to the requests.

I was able to workaround by creating an IAM user with an access key, then creating the source with--access-key and --secret-key args.

I am running Flux v0.30.2 on EKS with the Kubernetes version v1.21. I have created the IAM policy to access the bucket as instructed by documentation. Instances receive this policy from the instance profile. The access works when tested with AWS CLI aws s3 ls command.

Resources:

Lenguaje dominante
Go
Estrellas
283
Forks
252
Merge medio
1 h 6 min
PR fusionados (30 d)
12

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de fluxcd/source-controller

Todos los issues de fluxcd/source-controller

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.