Renewing AWS credentials

0

I'm following this AWS documentation to make ECS tasks access other AWS services using task role credentials. When I run curl http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI it returns a JSON document that looks something like this JSON document:

{
  "RoleArn":"arn:aws:iam::718304...",
  "AccessKeyId":"ASIA2...",
  "SecretAccessKey":"BNZD...",
  "Token":"IQoJ...",
  "Expiration":"2023-03-03T17:56:46Z"
}

My ECS instances are long running which means they will outlive the expiration timestamp provided in the above result.

Do I need to poll that endpoint regularly to avoid expired credentials? if so is there a way to extend the credentails life?

preguntada hace un año1300 visualizaciones
1 Respuesta
1
Respuesta aceptada

You will need to periodically refresh the credentials obtained from the metadata endpoint because as you mentioned, they have an expiration timestamp. You can do this by setting up a scheduled task or a cron job to fetch the new credentials from the metadata endpoint before they expire. To extend the credentials' life, you can increase the session duration when you assume the task role using AWS Security Token Service (STS). When you assume a role, you can specify the duration of the role session, up to a maximum of 12 hours. The default session duration is one hour.

From here - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html Temporary security credentials are short-term, as the name implies. They can be configured to last for anywhere from a few minutes to several hours. After the credentials expire, AWS no longer recognizes them or allows any kind of access from API requests made with them.

profile pictureAWS
Niko
respondido hace un año
  • Note that AWS-supplied SDKs will poll the Instance Metadata Service for you - so this answer does depend on the libraries you're using.

  • @Brettski-AWS that's excellent info but unfortunately for me this is an Elixir app so I won't get that benefit for free.

    Scratch what I said above. As you say, ex_aws will take care of this.

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas