Le jeton de sécurité inclus dans la demande est expiré
J'ai un script qui tire beaucoup de paramètres à partir de Cloudwatch pour nos propres rapports internes.
Le script parcourt toutes les instances EC2 dans une région spécifique et demander 5 cloudwatch métriques (toutes les statistiques disponibles) pour les 2 dernières semaines (à chaque fois 5 jours de retour dans 5 minutes d'intervalle ce qui est exactement le 1440 quota). Je suis en utilisant une hypothèse de session:
session = Session(aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY, region_name=regionName)
sts = session.client('sts')
response = sts.assume_role(
RoleArn=arn, # External role arn
RoleSessionName='role-name',
ExternalId='<some-id-here>',
)
tempAccessKeyId = response['Credentials']['AccessKeyId']
tempSecretAccessKey = response['Credentials']['SecretAccessKey']
tempSessionToken = response['Credentials']['SessionToken']
assumedSession = Session(
aws_access_key_id=tempAccessKeyId,
aws_secret_access_key=tempSecretAccessKey,
aws_session_token=tempSessionToken,
region_name=regionName)
Lors de l'exécution du script que j'ai eu cette exception:
botocore.exceptions.ClientError: An error occurred (ExpiredToken) when calling the GetMetricStatistics operation: The security token included in the request is expired
Est-il un moyen de vérifier que le jeton n'est pas à expiration lors de l'exécution du script? Je suis en utilisant boto3.
Vous devez vous connecter pour publier un commentaire.
La assume_role la méthode que vous utilisez retourne temporaire informations d'identification de sécurité. Ce qui suit est tiré de la la documentation officielle:
Puisque vous n'êtes pas à l'aide de la
DurationSeconds
argument mot-clé, le retour d'informations d'identification sont valides pour la valeur par défaut de 1 heure. Vous devez assurez-vous d'obtenir de nouvelles informations d'identification afin de faire des demandes après 1 heure. Voir la suite de l' Les Identifiants de Sécurité temporaires documentation officielle: