API gateway cannot invoke endpoint after setting resource policy

0

Hi, I have set a resource policy for my API that enables invoke access for only one user. The user credentials are set in my machine. However, when I do curl/ do the get request from browser, I get the following error message.

{"Message":"User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:eu-central-1:********2:e5460wg6i/Prod/GET/"}

What I want to do is, invoke the endpoint only from EC2s that have roles attached which are allowed via the API gateway resource policy.

2 Respuestas
1

When you run curl from your EC2 instance it doesn't automatically use the associated role credentials when making the HTTP request and this is why you see the request as "anonymous".

You need to make an HTTP request that is signed by using AWS Signature Version 4.

You can follow the guide here on how to craft an HTTP request that is SigV4 signed. Alternatively, you can use awscurl tool that will simplify this process for you. And, there are also browser extensions (for example this one for chrome) that can do it (though I haven't tried them personally, so use at your own risk).

AWS
respondido hace 23 días
profile pictureAWS
EXPERTO
revisado hace 23 días
0

I found the Knowledge, hope it will help you.
Please check it out.

Resolve "User: anonymous is not authorized to perform: execute-api:Invoke on resource:" errors

How do I troubleshoot issues when connecting to an API Gateway private API endpoint?
https://repost.aws/knowledge-center/api-gateway-private-endpoint-connection

AWS
EXPERTO
hyp
respondido hace 23 días

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas