我想这很可能,但我还没有找到任何明确的信息说这是真的。
从AssumeRole收到Credentials对象时,是UTC时间到期吗?
答案 0 :(得分:4)
来自sts:AssumeRole
的回复包含一个名为Expiration
的属性:
{
"AssumedRoleUser": {
"AssumedRoleId": "AROA3XFRBF535PLBIFPI4:s3-access-example",
"Arn": "arn:aws:sts::123456789012:assumed-role/xaccounts3access/s3-access-example"
},
"Credentials": {
"SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
"SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
"Expiration": "2016-03-15T00:05:07Z",
"AccessKeyId": "ASIAJEXAMPLEXEG2JICEA"
}
}
Expiration
值为ISO 8601 formatted date。这意味着日期可以在任何时区,但时区在日期本身中指定。上面的示例是UTC,因为日期值末尾的“Z”。
要100%正确,您应该预期该值可能是非UTC值,您可能需要对值进行时区转换。但是,在实践中,很可能,值将是UTC。
答案 1 :(得分:0)
当您使用boto3调用sts时,到期日期显示它在utc中
sts = boto3.client('sts')
role = sts.assume_role(
RoleArn='<role>',
RoleSessionName='STSTest',
DurationSeconds=900
)
role["Credentials"]["Expiration"]
>>datetime.datetime(2018, 5, 15, 4, 51, 50, tzinfo=tzutc())
答案 2 :(得分:0)
是的,它将采用 UTC 因此,无论您的时区如何.. 检查您所在时区的当前时间。取 UTC 时间并加上 8 小时或贵公司提供的任何到期时间。看看这是否与该响应中给出的一个到期时间相匹配