Amazon API Gateway
개발자 안내서

API Gateway 리소스 정책 예제

이 페이지에서는 API Gateway 리소스 정책의 일반적인 사용 사례에 대한 몇 가지 예제를 제시합니다. 이 정책들은 리소스 값으로 account-idapi-id 문자열을 사용합니다. 이러한 정책을 테스트하려면 이 문자열을 자체 계정 ID 및 API ID로 대체해야 합니다. 액세스 정책 언어에 대한 자세한 내용은 Amazon API Gateway에 대한 액세스 정책 언어 개요 단원을 참조하십시오.

예제: 다른 AWS 계정의 사용자들이 API를 사용하도록 허용

다음의 리소스 정책 예제는 서명 버전 4(SigV4) 프로토콜을 통해 한 AWS 계정의 API 액세스 권한을 다른 AWS 계정의 사용자 두 명에게 부여합니다. 예를 들면 account-id-2로 식별된 AWS 계정의 루트 사용자와 Alice에게, account-id-1로 식별된 AWS 계정의 pets 리소스(API)에서 GET 작업을 실행할 수 있는 execute-api:Invoke 작업에 대한 권한이 부여됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/Alice", "account-id-2" ] }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id-1:api-id/stage/GET/pets" ] } ] }

예제: 소스 IP 주소 또는 범위에 따라 API 트래픽 거부

아래의 리소스 정책 예제는 2개의 지정된 소스 IP 주소 블록에서 API로 들어오는 트래픽을 거부(차단)하는 "블랙리스트" 정책입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id:api-id/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id:api-id/*" ], "Condition" : { "IpAddress": { "aws:SourceIp": ["192.0.2.0/24", "198.51.100.0/24" ] } } } ] }

예제: 소스 VPC 또는 VPC 종단점에 따라 프라이빗 API 트래픽 허용

다음 예제의 리소스 정책에서는 지정된 가상 사설 클라우드(VPC) 또는 VPC 종단점에서 오는 수신 트래픽만 프라이빗 API에 액세스하도록 허용합니다.

이 리소스 정책 예제는 소스 VPC를 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id:api-id/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id:api-id/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpc": "vpc-1a2b3c4d" } } } ] }

이 리소스 정책 예제는 소스 VPC 종단점을 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id:api-id/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id:api-id/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }