Using golang aws sdk v2 with eks farget profile

496 Views Asked by At

I have service which using go sdk v2 to read data from parameter store. I have farget profile with pod execution role attached to it with required permissions.

func getClient() aws.Config {
cfg, err := awsconfig.LoadDefaultConfig(context.TODO())
if err != nil {
panic("configuration error, " + err.Error())
}

    return cfg

}

func ParameterStoreByName(parameterName string) (*ssm.GetParameterOutput, error) {
    input := &ssm.GetParameterInput{
        Name: &parameterName,
    }
    client := ssm.NewFromConfig(getClient())

    data, err := client.GetParameter(context.TODO(), input)
    if err != nil {
        fmt.Println(err.Error())
        return nil, err
    }
    return data, err
}

when I run this on worker (node group) node its working as expected and returns data, But when I run the same on farget profile I am getting following error

operation error SSM: GetParameter, failed to sign request: failed to retrieve credentials: failed to refresh cached credentials, no EC2 IMDS role found, operation error ec2imds: GetMetadata, request canceled, context deadline exceeded

EKS Version: 1.24

How can I make service to use aws components?

0

There are 0 best solutions below