Skip to content

Commit

Permalink
Merge pull request #681 from kayac/fix/fallback-ssm-get
Browse files Browse the repository at this point in the history
fallback to ssm.GetParameter if failed to ssm.GetParameters
  • Loading branch information
fujiwara authored Mar 29, 2024
2 parents d491fc7 + e7f0bbe commit c015304
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion verify.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"github.com/aws/aws-sdk-go-v2/service/secretsmanager"
"github.com/aws/aws-sdk-go-v2/service/ssm"
"github.com/aws/aws-sdk-go-v2/service/sts"
"github.com/aws/smithy-go"
"github.com/fatih/color"
"github.com/kayac/ecspresso/v2/registry"
)
Expand Down Expand Up @@ -121,7 +122,21 @@ func (v *verifier) existsSecretValue(ctx context.Context, from string) error {
WithDecryption: aws.Bool(true),
})
if err != nil {
return fmt.Errorf("failed to get ssm parameter %s: %w", name, err)
var ae smithy.APIError
if errors.As(err, &ae) && ae.ErrorCode() == "AccessDeniedException" {
// fallback to GetParameter (older ecspresso implementation)
// TODO: This fallback will be removed in 2.4
Log("[WARNING] failed to get ssm parameters with GetParameters API, fallback to GetParameter API: %s", err)
_, err := v.ssm.GetParameter(ctx, &ssm.GetParameterInput{
Name: aws.String(name),
WithDecryption: aws.Bool(true),
})
if err != nil {
return fmt.Errorf("failed to get ssm parameter %s: %w", name, err)
}
} else {
return fmt.Errorf("failed to get ssm parameters %s: %w", name, err)
}
}
return nil
}
Expand Down

0 comments on commit c015304

Please sign in to comment.