func()

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
}