in aws.go [356:395]
func (c *AWSConfig) SetCredentials(profileName string, creds *TemporaryCredentials) error {
section, err := c.credentialsIniSection(profileName)
if err != nil {
return err
}
if err := setIniKeyValue(section, "aws_access_key_id", creds.AccessKeyID); err != nil {
return err
}
if err := setIniKeyValue(section, "aws_secret_access_key", creds.SecretAccessKey); err != nil {
return err
}
if err := setIniKeyValue(section, "aws_session_token", creds.SessionToken); err != nil {
return err
}
profile, err := c.profileIniSection(profileName)
if err != nil {
return err
}
// Set the expiry time in the profile
if err := setIniKeyValue(profile, "expiration", creds.Expires.Format(time.RFC3339)); err != nil {
return err
}
// Save profile
if err := c.awsConfigIni.SaveTo(c.config.ConfigFilePath); err != nil {
return err
}
// Ensure dir exists
if err := os.MkdirAll(filepath.Dir(c.config.CredentialsFilePath), 0755); err != nil {
return err
}
return c.awsCredentialsIni.SaveTo(c.config.CredentialsFilePath)
}