Amazon API Gateway
개발자 안내서

교차 계정 Lambda 권한 부여자 구성

이제는 다른 AWS 계정의 AWS Lambda 함수도 API 권한 부여자 함수로 사용할 수 있습니다. 각 계정은 을 사용할 수 있는 모든 리전에 존재할 수 있습니다. Lambda 권한 부여자 함수는 OAuth 또는 SAML 같은 보유자 토큰 인증 전략을 사용할 수 있습니다. 따라서 여러 API Gateway API에 대해 Lambda 권한 부여자 함수를 중앙에서 손쉽게 관리 및 공유할 수 있습니다.

이 단원에서는 Amazon API Gateway 콘솔을 사용하여 교차 계정 Lambda 권한 부여자 함수를 구성하는 방법을 보여줍니다.

이 지침에서는 한 AWS 계정에서 API Gateway API를, 다른 계정에서는 Lambda 권한 부여자 함수를 이미 생성했다고 가정합니다.

API Gateway 콘솔을 사용하여 교차 계정 Lambda 권한 부여자 구성

첫 번째 계정(API를 포함하고 있는 계정)에서 Amazon API Gateway 콘솔에 로그인하고 다음을 수행합니다.

  1. API의 위치를 찾고 권한 부여자를 선택합니다.

  2. Create New Authorizer(새로운 권한 부여자 생성)를 선택합니다.

  3. 권한 부여자 생성에서 이름 입력 필드에 권한 부여자 이름을 입력합니다.

  4. 유형에서 Lambda 옵션을 선택합니다.

  5. Lambda 함수에서 두 번째 계정에서 생성한 Lambda 권한 부여자 함수의 정식 ARN을 복사해 붙여 넣습니다.

    참고

    Lambda 콘솔 창의 오른쪽 위 모서리에서 함수의 ARN을 찾을 수 있습니다.

  6. Lambda 호출 역할은 API Gateway 콘솔이 리소스 기반 정책을 설정하도록 비워 둡니다. 이 정책은 권한 부여자 Lambda 함수를 호출할 수 있는 권한을 API Gateway에 부여합니다. API Gateway가 권한 부여자 Lambda 함수를 호출하도록 허용하는 IAM 역할의 이름을 입력할 수도 있습니다. 이러한 역할의 예는 수임 가능한 IAM 역할 만들기를 참조하십시오.

    API Gateway 콘솔이 리소스 기반 정책을 설정하도록 허용할 경우, Add Permission to Lambda Function(Lambda 함수에 대한 권한 추가) 대화 상자가 표시됩니다. 확인을 선택합니다. 권한 부여가 생성된 후, 적절한 권한 부여 토큰 값으로 테스트하여 예상대로 작동하는지 확인할 수 있습니다.

  7. Lambda 이벤트 페이로드에서, TOKEN 권한 부여자의 경우 토큰, REQUEST 권한 부여자의 경우 요청을 선택합니다.

  8. 이전 단계에서의 선택에 따라 다음 중 하나를 수행합니다.

    1. 토큰 옵션의 경우 다음을 수행합니다.

      1. Token Source(토큰 원본)에 헤더의 이름을 입력합니다. API 클라이언트는 권한 부여 토큰을 권한 부여자에게 전송하려면 이 이름의 헤더를 포함해야 합니다.

      2. 선택적으로 Token Validation(토큰 확인) 입력 필드에 RegEx 문을 제공합니다. API Gateway는 이 표현식에 대해 입력 토큰의 초기 확인을 수행하고 확인이 성공할 경우 권한 부여자를 호출합니다. 그러면 잘못된 토큰에 대해 요금이 부과될 가능성을 줄일 수 있습니다.

      3. Authorization Caching(권한 부여 캐싱)에서, 권한 부여자에 의해 생성되는 권한 부여 정책을 캐싱할지 여부에 따라 활성 옵션을 선택하거나 선택 취소합니다. 정책 캐싱을 활성화한 경우 TTL 값을 기본값(300)에서 수정할 수 있습니다. TTL=0으로 설정하면 정책 캐싱이 비활성화됩니다. 정책 캐싱을 비활성화한 경우 Token Source(토큰 원본)에 지정된 헤더 이름이 캐시 키가 됩니다.

    2. 요청 옵션의 경우 다음을 수행합니다.

      1. 자격 증명 원본에 선택한 파라미터 유형의 요청 파라미터 이름을 입력합니다. 지원되는 파라미터 유형은 Header, Query String, Stage VariableContext입니다. 자격 증명 원본을 더 추가하려면 Add Identity Source(자격 증명 원본 추가)를 선택합니다.

        API Gateway는 지정된 자격 증명 원본을 요청 권한 부여자 캐싱 키로 사용합니다. 캐싱을 활성화한 경우 API Gateway가 런타임 시 모든 지정된 자격 증명 원본이 존재하는 것을 성공적으로 확인한 경우에만 권한 부여자의 Lambda 함수를 호출합니다. 지정된 자격 증명 원본이 없거나, null이거나, 비어 있을 경우 API Gateway가 권한 부여자 Lambda 함수를 호출하지 않고 401 Unauthorized 응답을 반환합니다.

        여러 개의 자격 증명 소스가 정의된 경우, 이들은 모두 권한 부여자의 캐시 키를 도출하는 데 사용됩니다. 캐시 키 부분을 변경하면 권한 부여자가 캐시된 정책 문서를 폐기하고 새로 생성합니다.

      2. 권한 부여 캐싱(Authorization Caching)에서 활성 옵션을 선택된 상태로 둡니다. TTL 값을 기본값(300) 그대로 둡니다.

  9. 생성을 선택하여 선택된 API에 대해 새 Lambda 권한 부여자를 생성합니다.

  10. Lambda 함수에 권한 추가: Lambda 함수를 다른 계정에서 선택했습니다. Please ensure that you have the appropriate Function Policy on this function. 이를 위해서는 계정 123456789012에서 다음 AWS CLI 명령을 실행하면 됩니다. , 뒤이어 aws lambda add-permission 명령 문자열이 나타납니다.

  11. aws lambda add-permission 명령 문자열을 복사해 두 번째 계정에 대해 구성된 AWS CLI 창에 붙여 넣습니다. 이렇게 하면 첫 번째 계정이 두 번째 계정의 Lambda 권한 부여자 함수에 액세스할 수 있는 권한이 부여됩니다.

  12. 이전 단계의 팝업 메시지에서 확인을 선택합니다.