session_test.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package session
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/aws/aws-sdk-go/aws"
  6. "github.com/aws/aws-sdk-go/aws/credentials/stscreds"
  7. "github.com/aws/aws-sdk-go/aws/session"
  8. "github.com/aws/aws-sdk-go/service/sts"
  9. "github.com/stretchr/testify/assert"
  10. fakesm "github.com/external-secrets/external-secrets/pkg/provider/aws/secretsmanager/fake"
  11. )
  12. func TestSession(t *testing.T) {
  13. tbl := []struct {
  14. test string
  15. aks string
  16. sak string
  17. region string
  18. role string
  19. sts STSProvider
  20. expectedKeyID string
  21. expectedSecretKey string
  22. }{
  23. {
  24. test: "test default role provider",
  25. aks: "2222",
  26. sak: "1111",
  27. region: "xxxxx",
  28. role: "",
  29. sts: DefaultSTSProvider,
  30. expectedSecretKey: "1111",
  31. expectedKeyID: "2222",
  32. },
  33. {
  34. test: "test custom sts provider",
  35. aks: "1111",
  36. sak: "2222",
  37. region: "xxxxx",
  38. role: "zzzzz",
  39. sts: func(*session.Session) stscreds.AssumeRoler {
  40. return &fakesm.AssumeRoler{
  41. AssumeRoleFunc: func(input *sts.AssumeRoleInput) (*sts.AssumeRoleOutput, error) {
  42. assert.Equal(t, *input.RoleArn, "zzzzz")
  43. return &sts.AssumeRoleOutput{
  44. AssumedRoleUser: &sts.AssumedRoleUser{
  45. Arn: aws.String("1123132"),
  46. AssumedRoleId: aws.String("xxxxx"),
  47. },
  48. Credentials: &sts.Credentials{
  49. SecretAccessKey: aws.String("3333"),
  50. AccessKeyId: aws.String("4444"),
  51. Expiration: aws.Time(time.Now().Add(time.Hour)),
  52. SessionToken: aws.String("6666"),
  53. },
  54. }, nil
  55. },
  56. }
  57. },
  58. expectedSecretKey: "3333",
  59. expectedKeyID: "4444",
  60. },
  61. }
  62. for i := range tbl {
  63. row := tbl[i]
  64. t.Run(row.test, func(t *testing.T) {
  65. sess, err := New(row.sak, row.aks, row.region, row.role, row.sts)
  66. assert.Nil(t, err)
  67. creds, err := sess.Config.Credentials.Get()
  68. assert.Nil(t, err)
  69. assert.Equal(t, row.expectedKeyID, creds.AccessKeyID)
  70. assert.Equal(t, row.expectedSecretKey, creds.SecretAccessKey)
  71. })
  72. }
  73. }