Amazon API Gateway를 사용하여 생성한 API에 대한 IAM 권한 부여를 구현하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2016년 8월 31일

Amazon API Gateway에서 API를 생성했으며 내 API에 대한 액세스를 위해 IAM 권한 부여를 구현하려고 합니다. 어떻게 해야 합니까?

간략한 설명

Amazon API Gateway를 사용하면 API Gateway 콘솔, AWS CLI, API Gateway 제어 서비스 REST API 및 플랫폼별 또는 언어별 SDK를 통해 API를 생성할 수 있습니다. 이 문서의 예제는 예제를 가져와 API Gateway API 구축 및 테스트에 설명된 대로 Amazon API Gateway 콘솔을 사용하여 생성되었습니다. 이 문서에서는 IAM 콘솔을 사용하여 Amazon API Gateway API에 대한 IAM 권한 부여를 구현하는 방법을 설명합니다.

​해결 방법

준비

  1. 아직 AWS 계정이 없는 경우 Amazon API Gateway 사용 준비를 참조하여 AWS 계정에 가입합니다.
  2. AWS 계정에서 IAM 사용자, 그룹 또는 역할 생성에 설명된 대로 IAM 사용자를 생성합니다. 이 IAM 사용자는 루트 자격 증명을 대신하여 다른 IAM 사용자에 대한 IAM 권한 부여를 지정하는 데 사용될 수 있습니다.
  3. IAM에 API Gateway 제어 및 실행 서비스에 대한 액세스 권한 부여의 단계를 완료하여, IAM 사용자에게 다른 IAM 사용자의 IAM 권한 부여를 지정하는 데 필요한 권한을 부여합니다.
  4. IAM 사용자에게 API Gateway에 대한 적절한 권한을 부여했으면 해당 사용자로 Amazon API Gateway 콘솔에 로그인하고 아직 API Gateway API를 생성하지 않은 경우 예제를 가져와 API Gateway API 구축 및 테스트의 단계를 따릅니다.

API에 대한 권한 부여 활성화

  1. API 목록에서 API를 선택하고 [Resources]를 선택합니다.
  2. API에 대한 API 리소스 목록 상단에 표시된 [POST] 메서드를 선택합니다.
  3. 오른쪽 창에서 [Method Request]를 선택합니다. 예제 API 지침을 사용하여 API를 생성한 경우 [Method Request]에 대한 [Auth] 설정이 [NONE]으로 기본 설정되어 있습니다.
  4. 권한 부여 설정 [NONE] 바로 오른쪽에 표시된 아이콘을 선택합니다. 이렇게 하면 API POST 메서드 요청에 대한 권한 부여 설정을 [NONE]에서 [AWS_IAM]으로 변경하는 데 사용할 수 있는 드롭다운 상자가 표시됩니다.
  5. [AWS_IAM]을 선택한 다음 오른쪽의 확인란을 선택하여 선택을 확인합니다. API POST 메서드 요청에 대한 권한 부여 설정을 [NONE]에서 [AWS_IAM]으로 변경한 후, IAM 정책을 사용하여 API에 대한 사용자 액세스를 명시적으로 부여해야 합니다.
  6. API 콘솔 가운데 있는 [Resources] 창에 표시된 새로 수정된 POST 메서드를 선택한 다음 가운데 창 상단에 있는 [Actions]를 선택하여 드롭다운 상자를 표시합니다.
  7. [Actions]에서 [Deploy API]를 선택합니다. 이렇게 하면 리소스에 대한 변경 사항이 배포되고 업데이트한 권한 부여 설정이 적용됩니다.

정책을 사용하여 IAM 사용자에게 API 권한 부여

개발 IAM 사용자 수준에서 API에 대한 사용자 액세스 권한을 부여할 수 있지만 IAM 그룹 수준에서 Amazon API Gateway API에 대한 액세스 권한을 부여하는 것이 좋습니다.

  1. AWS IAM 콘솔을 열고 [Groups]를 선택합니다.
  2. 기존 그룹 이름을 선택하거나 새 그룹을 생성하고 이 그룹 이름을 선택하여 [Group Summary] 페이지를 표시합니다. [Group Summary] 페이지에 [Users] 탭이 선택되어 있는지 확인하고 [Add Users to Group]을 선택하여 IAM 사용자를 나열합니다. API에 대한 액세스 권한은 이 그룹에 추가된 IAM 사용자에게 부여됩니다.
  3. 그룹에 추가할 하나 이상의 IAM 사용자를 선택한 다음 [Add Users]를 선택합니다. [Group Summary] 페이지가 다시 표시됩니다.
  4. [Permissions] 탭에서 [Attach Policy]를 선택합니다.
  5. [AmazonAPIGatewayInvokeFullAccess] 정책을 선택한 다음 [Attach Policy]를 선택합니다.

이 그룹의 각 멤버는 이제 AWS_IAM 권한 부여 설정을 구현하는 Amazon API Gateway API에 액세스할 수 있습니다. 그룹의 멤버가 아닌 IAM 사용자는 권한 부여 설정이 [NONE]인 AIP에 여전히 액세스할 수 있지만, AWS_IAM 권한 부여를 필요로 하는 메서드를 통해 API의 리소스에 대한 요청을 시도할 때 {"message":"Missing Authentication Token"} 오류 메시지가 표시될 수 있습니다.

권한 부여 설정 확인

  1. Amazon API Gateway 콘솔에서 API를 선택합니다.
  2. 왼쪽 창의 API 아래에 표시되는 범주에서 [Stages] 범주를 선택합니다.
  3. API Gateway 콘솔의 가운데 창에서 API의 맨 위 단계 옆에 있는 삼각형을 선택하여 API 메서드 및 옵션의 계층 구조를 확장합니다. 예제 API를 생성한 경우 계층 구조 맨 아래의 /pets/{petId} 단계 아래에 나열된 [GET] 메서드를 선택합니다.

이 페이지 상단에 나열된 [Invoke URL:]의 값을 기록해 둡니다. 예제 Amazon API Gateway API를 생성한 경우 이 URL은 다음과 유사한 형식을 가집니다.

https://uid.execute-api.regionidentifier.amazonaws.com/test/pets/{petId}

이 URL을 사용하면 예제 API의 /pets/{petId} 리소스를 호출할 수 있습니다. 이렇게 하려면 브라우저를 열고 {petId}를 정수 값으로 대체(예: /pets/555)합니다.

AmazonAPIGatewayInvokeFullAccess 정책이 연결된 그룹의 멤버인 IAM 사용자의 IAM 자격 증명을 사용하여 URL에 대해 SigV4로 서명된 요청(예: 서AWS 서명 인증 유형을 사용하여 Postman 애플리케이션 등을 사용)을 제출하여 AWS_IAM 권한 부여 설정이 작동 중인지 확인합니다. 문제 없이 URL에 연결할 수 있음을 확인했으면 Invoke URL에 대해 서명되지 않은 요청(IAM 자격 증명 없음)을 제출합니다.