in sdk/auth/credentials/cli_profile_credentials_provider.go [107:179]
func (provider *CLIProfileCredentialsProvider) getCredentialsProvider(conf *configuration, profileName string) (credentialsProvider CredentialsProvider, err error) {
p, err := conf.getProfile(profileName)
if err != nil {
return
}
switch p.Mode {
case "AK":
credentialsProvider, err = NewStaticAKCredentialsProviderBuilder().
WithAccessKeyId(p.AccessKeyID).
WithAccessKeySecret(p.AccessKeySecret).
Build()
case "StsToken":
credentialsProvider, err = NewStaticSTSCredentialsProviderBuilder().
WithAccessKeyId(p.AccessKeyID).
WithAccessKeySecret(p.AccessKeySecret).
WithSecurityToken(p.SecurityToken).
Build()
case "RamRoleArn":
previousProvider, err1 := NewStaticAKCredentialsProviderBuilder().
WithAccessKeyId(p.AccessKeyID).
WithAccessKeySecret(p.AccessKeySecret).
Build()
if err1 != nil {
return nil, err1
}
credentialsProvider, err = NewRAMRoleARNCredentialsProviderBuilder().
WithCredentialsProvider(previousProvider).
WithRoleArn(p.RoleArn).
WithRoleSessionName(p.RoleSessionName).
WithDurationSeconds(p.DurationSeconds).
WithStsRegion(p.StsRegion).
WithEnableVpc(p.EnableVpc).
WithPolicy(p.Policy).
WithExternalId(p.ExternalId).
Build()
case "EcsRamRole":
credentialsProvider, err = NewECSRAMRoleCredentialsProviderBuilder().WithRoleName(p.RoleName).Build()
case "OIDC":
credentialsProvider, err = NewOIDCCredentialsProviderBuilder().
WithOIDCTokenFilePath(p.OIDCTokenFile).
WithOIDCProviderARN(p.OIDCProviderARN).
WithRoleArn(p.RoleArn).
WithStsRegion(p.StsRegion).
WithEnableVpc(p.EnableVpc).
WithDurationSeconds(p.DurationSeconds).
WithRoleSessionName(p.RoleSessionName).
WithPolicy(p.Policy).
Build()
case "ChainableRamRoleArn":
var previousProvider CredentialsProvider
previousProvider, err1 := provider.getCredentialsProvider(conf, p.SourceProfile)
if err1 != nil {
err = fmt.Errorf("get source profile failed: %s", err1.Error())
return
}
credentialsProvider, err = NewRAMRoleARNCredentialsProviderBuilder().
WithCredentialsProvider(previousProvider).
WithRoleArn(p.RoleArn).
WithRoleSessionName(p.RoleSessionName).
WithDurationSeconds(p.DurationSeconds).
WithStsRegion(p.StsRegion).
WithEnableVpc(p.EnableVpc).
WithPolicy(p.Policy).
WithExternalId(p.ExternalId).
Build()
default:
err = fmt.Errorf("unsupported profile mode '%s'", p.Mode)
}
return
}