2

Elastic Beanstalk에 대한 액세스를 API 게이트웨이로만 제한하려면 어떻게합니까?AWS Elastic Beanstalk이 API 게이트웨이에만 열려 있음

비슷한 질문이 here인데, API 게이트웨이에서 인증서를 만드는 것이 좋습니다.

내 백엔드 솔루션은 이미지처럼 :

enter image description here

나는 API 게이트웨이 (AWS doc)에서 인증서를 만들었습니다.

1. API 게이트웨이에서 생성 한 PEM 인코딩 인증서를 사용하여 API를 인증해야하는 요소는 무엇입니까?

2. Elastic Load Balancer (ELB)에서이를 수행 할 수 있습니까? 아니면 nginx가 실행되는 App 인스턴스에서 실행해야합니까?

+0

이것이 문서 오류 또는 실제 문제인지는 모르지만 현재 API 게이트웨이와 호환되는 SSL 클라이언트 인증을 지원하지 않는 백엔드로 "알려진 문제점"의 nginx를 나열하고 있습니다 : http : // docs. aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html –

답변

0

ELB는 두 가지 SSL 인증을 지원하지 않으므로 nginx 서버에서 인증서를 인증해야합니다.

API 게이트웨이에서 클라이언트 인증서를 수락하기 위해 이와 같이 nginx 서버를 구성 할 수 있습니다.

server { 
    listen  443; 
    ssl on; 
    server_name example.com; 

    ssl_certificate  /etc/nginx/certs/server.crt; 
    ssl_certificate_key /etc/nginx/certs/server.key; 
    ssl_client_certificate /etc/nginx/certs/ca.crt; 
    ssl_verify_client optional; 

    location/{ 
     root   /var/www/example.com/html; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_param SCRIPT_FILENAME /var/www/example.com/lib/Request.class.php; 
     fastcgi_param VERIFIED $ssl_client_verify; 
     fastcgi_param DN $ssl_client_s_dn; 
     include  fastcgi_params; 
    } 
} 

그런 다음 API 게이트웨이 콘솔의 테스트 호출 기능을 사용하여 작동하는 경우이 설정을 테스트하십시오.