in aws.go [105:131]
func (a *AWS) AssumeRoleWithMFA(roleARN string, sessionName string, mfaDeviceARN string, mfaToken string) (*TemporaryCredentials, error) {
req := &sts.AssumeRoleInput{
DurationSeconds: aws.Int64(int64(time.Hour.Seconds())),
RoleArn: aws.String(roleARN),
RoleSessionName: aws.String(sessionName),
}
if mfaDeviceARN != "" {
req.SerialNumber = aws.String(mfaDeviceARN)
}
if mfaToken != "" {
req.TokenCode = aws.String(mfaToken)
}
res, err := a.sts.AssumeRole(req)
if err != nil {
return nil, err
}
return &TemporaryCredentials{
AccessKeyID: *res.Credentials.AccessKeyId,
Expires: *res.Credentials.Expiration,
SecretAccessKey: *res.Credentials.SecretAccessKey,
SessionToken: *res.Credentials.SessionToken,
}, nil
}