API Gateway의 프라이빗 API에 대한 VPC 종단점 정책 사용 - Amazon API Gateway

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

API Gateway의 프라이빗 API에 대한 VPC 종단점 정책 사용

인터페이스 VPC 엔드포인트를 사용하도록 API Gateway를 구성하여 프라이빗 API의 보안을 향상할 수 있습니다. 인터페이스 엔드포인트는 사설 IP 주소를 사용하여 비공개로 AWS PrivateLink 서비스에 액세스할 수 있게 해주는 AWS 기술을 통해 제공됩니다. VPC 종단점에 대한 자세한 내용은 인터페이스 엔드포인트 생성을 참조하십시오.

VPC 종단점 정책은 인터페이스 VPC 종단점에 연결하여 엔드포인트에 대한 액세스를 제어할 수 있는 IAM 리소스 정책입니다. 자세한 정보는 VPC 종단점을 통해 서비스에 대한 액세스 제어를 참조하십시오. 엔드포인트 정책을 사용하여 내부 네트워크에서 프라이빗 API에 액세스하는 트래픽을 제한할 수 있습니다. VPC 종단점을 통해 액세스할 수 있는 특정 프라이빗 API에 대한 액세스를 허용 또는 거부하도록 선택할 수 있습니다.

VPC 종단점 정책은 API Gateway 리소스 정책과 함께 사용할 수 있습니다. 리소스 정책에서는 해당 리소스에 액세스할 수 있는 보안 주체를 지정합니다. 엔드포인트 정책은 VPC 종단점을 통해 호출할 수 있는 프라이빗 API를 지정합니다. 리소스 정책에 대한 자세한 내용은 API Gateway 리소스 정책을 사용하여 API에 대한 액세스 제어 단원을 참조하십시오.

VPC 엔드포인트 정책 고려 사항

  • 정책에서 IAM 보안 주체를 제한하는 경우 메서드의 authorizationTypeAWS_IAM 또는 NONE으로 설정해야 합니다.

  • 호출자의 ID는 Authorization 헤더 값을 기반으로 평가됩니다. 사용자의 authorizationType에 따라 다르지만 이로 인해 403 IncompleteSignatureException 또는 403 InvalidSignatureException 오류가 발생할 수 있습니다. 다음 표에는 각 authorizationTypeAuthorization 헤더 값이 나와 있습니다.

    authorizationType

    Authorization 헤더 평가 여부

    허용되는 Authorization 헤더 값

    NONE(기본 전체 액세스 정책 사용) 아니요 전달되지 않음
    NONE(사용자 지정 액세스 정책 사용) 유효한 SigV4 값이어야 함
    IAM 유효한 SigV4 값이어야 함
    CUSTOM 또는 COGNITO_USER_POOLS 아니요 전달되지 않음

VPC 종단점 정책 예제

Amazon API Gateway에 대한 Amazon Virtual Private Cloud 엔드포인트 정책을 생성하여 다음을 지정할 수 있습니다.

  • 작업을 수행할 수 있는 보안 주체.

  • 수행할 수 있는 작업입니다.

  • 수행되는 작업을 가질 수 있는 리소스입니다.

VPC 종단점에 정책을 첨부하려면 VPC 콘솔을 사용해야 합니다. 자세한 정보는 VPC 종단점을 통해 서비스에 대한 액세스 제어를 참조하십시오.

예제 1: 두 API에 대한 액세스 권한을 부여하는 VPC 종단점 정책

다음 예제 정책은 정책이 첨부된 VPC 종단점을 통해 두 개의 특정 API로만 액세스 권한을 부여합니다.

{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/*", "arn:aws:execute-api:us-east-1:123412341234:aaaaa11111/*" ] } ] }

예제 2: GET 메서드에 대한 액세스 권한을 부여하는 VPC 종단점 정책

다음 예제 정책은 해당 정책이 연결된 VPC 종단점을 통해 특정 API에 대한 GET 메서드에 대한 액세스 권한을 사용자에게 부여합니다.

{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/stageName/GET/*" ] } ] }

예제 3: 특정 API에 특정 사용자 액세스 권한을 부여하는 VPC 종단점 정책

다음 예제 정책은 정책이 연결된 VPC 종단점을 통한 특정 API에 대한 특정 사용자 액세스 권한을 부여합니다.

{ "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123412341234:user/MyUser" ] }, "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/*" ] } ] }