Untitled

 avatar
unknown
plain_text
10 months ago
1.1 kB
13
Indexable
type FileCredentialsProvider struct {
    path string
}

func (p *FileCredentialsProvider) Retrieve(ctx context.Context) (aws.Credentials, error) {
    data, err := os.ReadFile(p.path)
    if err != nil {
        return aws.Credentials{}, err
    }

    var creds struct {
        AccessKeyID     string `json:"accessKeyId"`
        SecretAccessKey string `json:"secretAccessKey"`
        SessionToken    string `json:"sessionToken,omitempty"`
    }
    if err := json.Unmarshal(data, &creds); err != nil {
        return aws.Credentials{}, err
    }

    return aws.Credentials{
        AccessKeyID:     creds.AccessKeyID,
        SecretAccessKey: creds.SecretAccessKey,
        SessionToken:    creds.SessionToken,
        Source:          "FileCredentialsProvider",
    }, nil
}






cfg, err := config.LoadDefaultConfig(context.TODO(),
    config.WithCredentialsProvider(&FileCredentialsProvider{
        path: "/etc/myapp/rotated-credentials.json",
    }),
)
if err != nil {
    log.Fatal(err)
}

s3Client := s3.NewFromConfig(cfg) // <- nur einmal gebaut
Editor is loading...
Leave a Comment