J'utilise AWS Fargate et stocke des données sensibles avec Secrets Manager. La définition de la tâche doit obtenir des variables d'environnement à partir de Secrets Store
- name: "app"
image: "ecr-image:tag"
essential: true
secrets:
- name: "VAR1"
valueFrom: "arn:aws:secretsmanager:us-east-1:111222333444:secret:var-one-secret"
- name: "VAR2"
valueFrom: "arn:aws:secretsmanager:us-east-1:111222333444:secret:var-two-secret"
- name: "VAR3"
valueFrom: "arn:aws:secretsmanager:us-east-1:111222333444:secret:var-two-private"
mais pour une raison quelconque, il échoue avec l'erreur ci-dessous
ResourceNotFoundException: Secrets Manager can’t find the specified secret. status code: 400, request id
Cela me semble un peu étrange parce que
Iam a des autorisations pour obtenir une valeur secret, d'ailleurs
en laissant seulement VAR1
variable tout fonctionne comme prévu
AWS CLI est capable de récupérer chaque secret sans aucun problème
par exemple.
aws secretsmanager get-secret-value --secret-id var-two-secret
Qu'est-ce qui pourrait être faux avec ma configuration? Toute astuce appréciée
ok, donc l'astuce était de spécifier ARN explicitement. Au lieu de simplement fournir un nom secret, vous devez utiliser un identifiant complet
arn:aws:secretsmanager:us-east-1:111222333444:secret:var-two-secret-ID0o2R
Noter -ID0o2R
suffixe à la fin du nom secret.
Ce n'est toujours pas clair pour moi pourquoi pour certaines variables, cela fonctionne sans elle.
UPD
Toutefois, si votre secret a un nom qui se termine par un trait d'union suivi de six caractères (avant que Secrets Manager ajoute le trait d'union et six caractères à l'ARN) et que vous essayez d'utiliser cela comme un ARN partiel, alors ces personnages causent les secrets gestionnaires à assumer que vous spécifiez un ARN complet. Cette confusion peut provoquer des résultats inattendus.
Ainsi, comme vous pouvez le constater de mon nom de variable contenant un HYPHEN Secrets Manager avait des moments difficiles lors de la résolution du nom abrégé