J'ai un lambda qui consomme des données provenant d'un autre compte Athena d'AWS. J'ai donc un rôle que mon lambda assume et qui a un accès inter-comptes. J'avais utilisé le client STS dans mon lambda. parfois lambda fonctionne parfaitement bien et parfois il se casse et me donne cette erreur.Aws accès lambda cross account
"errorMessage": "Une erreur est survenue (ExpiredTokenException) lors de l'appel de l'opération de StartQueryExecution: Le jeton de sécurité inclus dans la demande est expiré", "errorType": "ClientError",
STS client que j'ai utilisé dans mon code est:
def assume_role_to_session(role_arn, session_name):
client = boto3.client('sts')
response = client.assume_role(RoleArn=role_arn, RoleSessionName=session_name, DurationSeconds=900)
return boto3.Session(
aws_access_key_id=response['Credentials']['AccessKeyId'],
aws_secret_access_key=response['Credentials']['SecretAccessKey'],
aws_session_token=response['Credentials']['SessionToken'],
region_name='us-east-1')
assume_role_athena_session = assume_role_to_session(role_arn='arn:aws:iam::XXXXXXXXXXX:role/role-name',
session_name='AthenaLambdaSession')
Comment ça marche? Je veux que mon lambda fonctionne n'importe quand, pas seulement parfois. Quel pourrait être le problème?