sts.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package utils
  2. import (
  3. "fmt"
  4. "github.com/aliyun/alibaba-cloud-sdk-go/services/sts"
  5. "gitlab.alibaba-inc.com/pai_biz_arch/pairec/log"
  6. "gitlab.alibaba-inc.com/pai_biz_arch/pairec/recconf"
  7. )
  8. var (
  9. accessKeyId = "LTAIm398VwCMfDhK"
  10. accessKeySecret = "vFNt9TQTQTlbzwtzlIH4HTegWHqJrw"
  11. EndpointMap = map[string]string{
  12. "cn-beijing": "sts-vpc.cn-beijing.aliyuncs.com",
  13. }
  14. )
  15. func AssumedRoleUser(regionId, rolearn, roleSessionName string) (*sts.AssumeRoleResponse, error) {
  16. client, err := sts.NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret)
  17. if err != nil {
  18. log.Error(fmt.Sprintf("error=%v", err))
  19. return nil, err
  20. }
  21. client.SetHTTPSInsecure(true)
  22. if recconf.Config.RunMode == "production" {
  23. if endpoint, ok := EndpointMap[regionId]; ok {
  24. client.Domain = endpoint
  25. }
  26. } else {
  27. client.Domain = "sts.cn-beijing.aliyuncs.com"
  28. }
  29. // client.Domain = "sts.cn-beijing.aliyuncs.com"
  30. request := sts.CreateAssumeRoleRequest()
  31. request.RoleSessionName = roleSessionName
  32. request.RoleArn = rolearn
  33. request.DurationSeconds = "3600"
  34. request.SetScheme("https")
  35. response, err := client.AssumeRole(request)
  36. if err != nil {
  37. log.Error(fmt.Sprintf("error=%v", err))
  38. return nil, err
  39. }
  40. fmt.Println("AssumedRoleUser", client, response)
  41. return response, nil
  42. }