github.com/versent/saml2aws@v2.17.0+incompatible/pkg/shell/env.go (about)

     1  package shell
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/versent/saml2aws/pkg/flags"
     6  	"github.com/versent/saml2aws/pkg/awsconfig"
     7  	"github.com/versent/saml2aws/pkg/cfg"
     8  )
     9  
    10  // BuildEnvVars build an array of env vars in the format required for exec
    11  func BuildEnvVars(awsCreds *awsconfig.AWSCredentials, account *cfg.IDPAccount, execFlags *flags.LoginExecFlags) []string {
    12  
    13  	environmentVars := []string  {
    14  		fmt.Sprintf("AWS_SESSION_TOKEN=%s", awsCreds.AWSSessionToken),
    15  		fmt.Sprintf("AWS_SECURITY_TOKEN=%s", awsCreds.AWSSecurityToken),
    16  		fmt.Sprintf("EC2_SECURITY_TOKEN=%s", awsCreds.AWSSecurityToken),
    17  	}
    18  
    19  	//To run exec with a non default (saml) profile 'AWS_ACCESS_KEY_ID' and 'AWS_SECRET_ACCESS_KEY' must not be set
    20  	if execFlags.ExecProfile == "" {
    21  		environmentVars = append(environmentVars, fmt.Sprintf("AWS_ACCESS_KEY_ID=%s", awsCreds.AWSAccessKey))
    22  		environmentVars = append(environmentVars, fmt.Sprintf("AWS_SECRET_ACCESS_KEY=%s", awsCreds.AWSSecretKey))
    23  		environmentVars = append(environmentVars, fmt.Sprintf("AWS_PROFILE=%s", account.Profile))
    24  		environmentVars = append(environmentVars, fmt.Sprintf("AWS_DEFAULT_PROFILE=%s", account.Profile))
    25  	} else {
    26  		environmentVars = append(environmentVars, fmt.Sprintf("AWS_PROFILE=%s", execFlags.ExecProfile))
    27  		environmentVars = append(environmentVars, fmt.Sprintf("AWS_DEFAULT_PROFILE=%s", execFlags.ExecProfile))
    28  	}
    29  	return environmentVars
    30  }