API Gateway 리소스 정책을 생성하여 API에 연결 - Amazon API Gateway

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

API Gateway 리소스 정책을 생성하여 API에 연결

사용자가 API 실행 서비스를 호출하여 API에 액세스하도록 허용하려면 API Gateway 리소스에 대한 액세스를 제어하는 API Gateway 리소스 정책을 생성하고 이를 API에 연결해야 합니다.

중요

API Gateway 리소스 정책을 업데이트하려면 apigateway:UpdateRestApiPolicy 권한 외에 apigateway:PATCH 권한도 있어야 합니다.

리소스 정책은 API를 생성할 때 API에 연결하거나 나중에 연결할 수 있습니다. 프라이빗 API의 경우, 리소스 정책을 프라이빗 API에 연결할 때까지는 해당 API에 대한 모든 호출이 실패합니다.

중요

API가 생성된 후에 리소스 정책을 업데이트하려면 업데이트된 정책을 연결한 후에 변경 내용이 전파되도록 API를 배포해야 합니다. 정책을 업데이트 또는 저장하는 것만으로는 API의 실행 시간 동작이 변경되지 않습니다. API 배포에 대한 자세한 내용은 Amazon API Gateway에서 REST API 배포 단원을 참조하세요.

조건, 소스 VPC AWS 계정, 소스 VPC 엔드포인트 또는 IP 범위를 비롯한 IAM 조건 요소로 액세스를 제어할 수 있습니다. 정책의 Principal"*"로 설정된 경우, 리소스 정책과 함께 다른 권한 부여 유형을 사용할 수 있습니다. Principal"AWS"로 설정된 경우에는 보안되지 않은 리소스를 포함하여 AWS_IAM 권한 부여를 통해 보호되지 않는 모든 리소스에 대해 권한 부여가 실패합니다.

다음 단원에서는 자체적으로 API Gateway 리소스 정책을 생성하여 이를 API에 연결하는 방법을 설명합니다. 정책을 연결하면 정책의 해당 권한이 API의 메서드에 적용됩니다.

중요

API Gateway 콘솔을 사용하여 배포된 API에 리소스 정책을 연결하거나 기존의 리소스 정책을 업데이트할 때는 API를 해당 콘솔에 다시 배포해야 변경 사항이 적용됩니다.

API Gateway 리소스 정책 연결(콘솔)

AWS 관리 콘솔을 사용하여 API Gateway API에 리소스 정책을 연결할 수 있습니다.

API Gateway API에 리소스 정책을 연결하려면
  1. https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔에 로그인합니다.

  2. REST API를 선택합니다.

  3. 기본 탐색 창에서 리소스 정책을 선택합니다.

  4. 정책 생성을 선택합니다.

  5. (선택 사항) 예제 정책을 생성하려면 템플릿 선택을 선택합니다.

    여기 나온 정책 예제에서는 자리 표시자가 이중 중괄호("{{placeholder}}")로 묶여 있습니다. 중괄호를 포함한 각각의 자리 표시자를 필요한 정보로 바꿉니다.

  6. 템플릿 예제 중 하나를 사용하지 않는 경우에는 리소스 정책을 입력합니다.

  7. 변경 사항 저장를 선택합니다.

API Gateway 콘솔에서 이미 배포한 API라면 다시 배포해야 리소스 정책이 적용됩니다.

API Gateway 리소스 정책 (AWS CLI) 연결

를 AWS CLI 사용하여 새 API를 만들고 여기에 리소스 정책을 연결하려면 다음과 같이 create-rest-api명령을 호출합니다.

aws apigateway create-rest-api \ --name "api-name" \ --policy "{\"jsonEscapedPolicyDocument\"}"

를 사용하여 기존 API에 리소스 정책을 AWS CLI 연결하려면 다음과 같이 update-rest-api명령을 호출합니다.

aws apigateway update-rest-api \ --rest-api-id api-id \ --patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'

API Gateway 리소스 정책 연결 ()AWS CloudFormation

를 사용하여 AWS CloudFormation 리소스 정책을 사용하여 API를 생성할 수 있습니다. 다음 예시에서는 예제 리소스 정책을 사용하여 REST API를 만듭니다예제: 소스 IP 주소 또는 범위에 따라 API 트래픽 거부.

AWSTemplateFormatVersion: 2010-09-09 Resources: Api: Type: 'AWS::ApiGateway::RestApi' Properties: Name: testapi Policy: Statement: - Action: 'execute-api:Invoke' Effect: Allow Principal: '*' Resource: 'execute-api/*' - Action: 'execute-api:Invoke' Effect: Deny Principal: '*' Resource: 'execute-api/*' Condition: IpAddress: 'aws:SourceIp': ["192.0.2.0/24", "198.51.100.0/24" ] Version: 2012-10-17 Resource: Type: 'AWS::ApiGateway::Resource' Properties: RestApiId: !Ref Api ParentId: !GetAtt Api.RootResourceId PathPart: 'helloworld' MethodGet: Type: 'AWS::ApiGateway::Method' Properties: RestApiId: !Ref Api ResourceId: !Ref Resource HttpMethod: GET ApiKeyRequired: false AuthorizationType: NONE Integration: Type: MOCK ApiDeployment: Type: 'AWS::ApiGateway::Deployment' DependsOn: - MethodGet Properties: RestApiId: !Ref Api StageName: test