Untitled
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