oidc_credential_provider.go 937 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package credentials
  2. import (
  3. "os"
  4. "github.com/alibabacloud-go/tea/tea"
  5. )
  6. type oidcCredentialsProvider struct{}
  7. var providerOIDC = new(oidcCredentialsProvider)
  8. func newOidcCredentialsProvider() Provider {
  9. return &oidcCredentialsProvider{}
  10. }
  11. func (p *oidcCredentialsProvider) resolve() (*Config, error) {
  12. roleArn, ok1 := os.LookupEnv(ENVRoleArn)
  13. oidcProviderArn, ok2 := os.LookupEnv(ENVOIDCProviderArn)
  14. oidcTokenFilePath, ok3 := os.LookupEnv(ENVOIDCTokenFile)
  15. if !ok1 || !ok2 || !ok3 {
  16. return nil, nil
  17. }
  18. config := &Config{
  19. Type: tea.String("oidc_role_arn"),
  20. RoleArn: tea.String(roleArn),
  21. OIDCProviderArn: tea.String(oidcProviderArn),
  22. OIDCTokenFilePath: tea.String(oidcTokenFilePath),
  23. RoleSessionName: tea.String("defaultSessionName"),
  24. }
  25. roleSessionName, ok := os.LookupEnv(ENVRoleSessionName)
  26. if ok {
  27. config.RoleSessionName = tea.String(roleSessionName)
  28. }
  29. return config, nil
  30. }