我想这很有可能,但我没有找到任何明确的信息表明这是真的。
从 AssumeRole 接收 Credentials 对象时,到期时间是 UTC 时间吗?
我想这很有可能,但我没有找到任何明确的信息表明这是真的。
从 AssumeRole 接收 Credentials 对象时,到期时间是 UTC 时间吗?
来自的响应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 格式的日期。这意味着,日期可以在任何时区,但时区是在日期本身中指定的。由于日期值末尾的“Z”,上面的示例是 UTC。
为了 100% 正确,您可能应该预期该值可能是非 UTC 值,您可能需要对值进行时区转换。但是,在实践中,该值很可能是 UTC。
当您使用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())
是的,它将在 UTC 所以无论您的时区如何.. 检查您的时区的当前时间。以 UTC 时间加上 8 小时或贵公司提供的任何到期时间。看看这是否与该响应中给出的一个到期时间相匹配