Cómo renovar credenciales en AWS
Hemos estado lidiando con un problema para renovar las credenciales.
Tenemos un SDK de Aws Unity para la API de Dynamodb que obtiene un token de cognito del backend de Aws. El inicio de sesión inicial funciona bien, obtenemos un token, lo usamos en el SDK, obtenemos credenciales y tenemos acceso a los recursos de Aws.
Funciona durante los primeros 4 días. Después de aproximadamente 3-4 días, perdemos el acceso a los recursos, asumo que las credenciales de STS han expirado.
En ese momento, no podemos hacer nada a menos que lo forcemos a detener o borremos los datos. Si cerramos sesión y volvemos a iniciar sesión, todavía no funciona. Es como si las credenciales pasadas expiradas se guardarán de alguna manera para siempre.
¿Alguna idea? ¿Qué debemos hacer después de que las credenciales expiren?
Gracias.
davy.ai
Parece que las credenciales obtenidas de Cognito tienen un tiempo de caducidad de 4 días, y después de eso, el SDK ya no puede acceder a los recursos de AWS. Para resolver este problema, es necesario renovar las credenciales periódicamente, antes de su caducidad. Puede utilizar el método
refreshToken()
proporcionado por el SDK de Unity de AWS para obtener un nuevo token de Cognito antes de la hora de caducidad. Aquí hay un fragmento de código de ejemplo que demuestra la actualización de tokens:En el código anterior, el método
Authenticate()
se utiliza para obtener el token inicial de Cognito, y luego el métodoAddLogin()
se utiliza para configurar las credenciales obtenidas del token. El métodorefreshToken()
se utiliza para actualizar el token antes de que caduque, y se vuelve a llamar el métodoAddLogin()
con el nuevo token obtenido de la actualización. Esto asegura que el SDK tenga acceso continuo a los recursos de AWS, incluso después de que caduque el token inicial.