mirror of
https://github.com/drone-plugins/drone-docker.git
synced 2026-06-04 18:24:24 +08:00
Fixed 'error getting ECR auth: WebIdentityErr: unable to read file at' issue
This commit is contained in:
committed by
OP (oppenheimer)
parent
11015f0ddb
commit
e7e8dd882d
+17
-2
@@ -218,9 +218,24 @@ func getECRClient(sess *session.Session, role string, externalId string, idToken
|
||||
if role == "" {
|
||||
return ecr.New(sess)
|
||||
}
|
||||
// Use STS AssumeRoleWithWebIdentity when idToken is provided
|
||||
|
||||
if idToken != "" {
|
||||
creds := stscreds.NewWebIdentityCredentials(sess, role, "", idToken)
|
||||
tempFile, err := ioutil.TempFile("/tmp", "idToken-*.jwt")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to create temporary file: %v", err)
|
||||
}
|
||||
defer tempFile.Close()
|
||||
|
||||
if err := os.Chmod(tempFile.Name(), 0600); err != nil {
|
||||
log.Fatalf("Failed to set file permissions: %v", err)
|
||||
}
|
||||
|
||||
if _, err := tempFile.WriteString(idToken); err != nil {
|
||||
log.Fatalf("Failed to write ID token to temporary file: %v", err)
|
||||
}
|
||||
|
||||
// Create credentials using the path to the ID token file
|
||||
creds := stscreds.NewWebIdentityCredentials(sess, role, "", tempFile.Name())
|
||||
return ecr.New(sess, &aws.Config{Credentials: creds})
|
||||
} else if externalId != "" {
|
||||
return ecr.New(sess, &aws.Config{
|
||||
|
||||
Reference in New Issue
Block a user