API Gateway API의 IAM 인증을 활성화하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 12월 19일

Amazon API Gateway API에 액세스하기 위해 AWS Identity and Access Management(IAM) 인증을 활성화하려고 합니다. 어떻게 설정해야 합니까?

간략한 설명

API Gateway 콘솔에서 API 메서드의 IAM 인증을 활성화합니다. 그런 다음 리소스 정책과 함께 IAM 정책을 사용하여 API 사용자의 권한을 지정합니다.

API Gateway에서 사용할 수 있는 다양한 보안 기능에 대한 자세한 내용은 API Gateway에서 REST API에 대한 액세스 제어 및 관리를 참조하십시오.

해결 방법

API에 대한 IAM 인증 활성화

  1. API Gateway 콘솔에서 API 이름을 선택합니다.
  2. [리소스] 창에서 IAM 인증을 활성화하려는 메서드(예: GET 또는 POST)를 선택합니다.
  3. [메서드 실행] 창에서 [메서드 요청]을 선택합니다.
  4. [설정]의 [권한 부여]에서 연필 아이콘(편집)을 선택하고 드롭다운 메뉴에서 [AWS_IAM]을 선택한 다음 확인 표시 아이콘(업데이트)을 선택합니다.
  5. (선택 사항) IAM 인증을 활성화하려는 추가 API 메서드마다 2~4단계를 반복합니다.
  6. 변경 사항이 적용되도록 API를 배포합니다.
  7. [단계 편집기] 창에서 나중에 테스트에 사용할 [URL 호출]을 적어 둡니다.

자세한 내용은 API Gateway 콘솔을 사용하여 메서드 설정API Gateway 콘솔에서 API의 호출 URL 확인을 참조하십시오.

IAM 사용자 그룹에 API 권한 부여

  1. API 사용자에게 부여하려는 권한을 결정합니다. 예를 들어 사용자가 API만 호출할 수 있도록 권한을 부여하거나, 사용자가 AWS 계정에서 API를 생성 및 관리할 수 있도록 허용하는 권한을 부여할 수 있습니다. 자세한 내용과 고려 사항은 IAM 권한을 사용하여 API에 대한 액세스 제어를 참조하십시오.
  2. 필요한 권한이 있는 IAM 정책 문서를 생성합니다. 예제 및 형식 지침은 다음을 참조하십시오.
    API 호출을 위한 액세스 제어
    API 실행 권한에 대한 IAM 정책 예제
    API Gateway API 관리를 위한 IAM 정책 예제
    참고: 이 문서의 끝에 나오는 테스트 지침을 완료하려면 호출 권한을 허용해야 합니다.
  3. 다음 중 하나를 수행하여 IAM 정책을 IAM 그룹에 연결합니다.
    기존 IAM 그룹에 정책 연결
    새 IAM 그룹 생성 시 정책 연결

자세한 내용은 정책을 생성하여 IAM 사용자에 연결을 참조하십시오.

참고: 개별 IAM 사용자에게 API 액세스 권한을 부여할 수 있지만 IAM 그룹 수준에서 액세스 권한을 부여하는 것이 좋습니다.

(선택 사항) API Gateway 리소스 정책 구성

API Gateway 리소스 정책(리소스 기반 권한)과 IAM 정책(자격 증명 기반 권한)을 사용하여 API Gateway API에 대한 액세스를 추가로 관리할 수 있습니다. 자세한 내용은 IAM 인증 및 리소스 정책자격 증명 기반 정책 및 리소스 기반 정책을 참조하십시오.

참고: 리소스 정책을 사용하여 API에 대한 액세스를 거부하고 IAM 정책으로 액세스를 허용할 경우(또는 그 반대로) 액세스는 여전히 거부됩니다. 이러한 보안 기능이 사용 사례에서 예상대로 연동되도록 권한 구조를 설계해야 합니다. 자세한 내용은 정책 평가 결과 테이블을 참조하십시오.

인증 설정을 테스트하기 위한 요청 전송

테스트로서 Postman 앱을 사용하여 IAM 인증을 활성화한 메서드(예: GET 또는 POST)를 통해 API 리소스에 요청을 보냅니다.

참고: 다른 도구 또는 환경을 사용하여 API Gateway로 전송되는 요청을 수동으로 인증하려면 서명 버전 4 서명 프로세스를 사용해야 합니다. 자세한 내용은 API Gateway REST API 참조의 서명 요청을 참조하십시오.

  1. Postman의 [권한 부여] 탭에서 다음을 수행합니다.
    [유형]에서 [AWS 서명]을 선택합니다.
    [AccessKey] 및 [SecretKey]에 API에 대한 액세스 권한이 있는 IAM 그룹에 속한 IAM 사용자의 IAM 액세스 키 ID 및 보안 액세스 키를 입력합니다.
  2. [URL] 필드(요청 URL 입력)에서 이전에 기록해 둔 호출 URL을 붙여 넣습니다. 특정 API 리소스에 대한 메서드에서 IAM 인증을 활성화한 경우 호출 URL의 끝에 리소스 이름을 추가합니다. 리소스 이름이 포함된 전체 요청 URL은 다음과 같습니다.
    https://restApiId.execute-api.region.amazonaws.com/stageName/resourceName

성공적으로 인증된 요청은 200 OK 응답 코드를 반환합니다. “인증 토큰 누락” 메시지와 403 Forbidden 응답 코드를 반환하는 무단 요청.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?