교차 계정 Lambda 권한 부여자 구성 - Amazon API Gateway

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

이제는 다른 AWS 계정의 AWS Lambda 함수도 API 권한 부여자 함수로 사용할 수 있습니다. 각 계정은 Amazon API Gateway를 사용할 수 있는 모든 리전에 존재할 수 있습니다. 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. 권한 부여자 생성을 선택합니다.

  3. 권한 부여자 이름에 권한 부여자의 이름을 입력합니다.

  4. 권한 부여자 유형으로 Lambda를 선택합니다.

  5. Lambda 함수에서 두 번째 계정에서 생성한 Lambda 권한 부여자 함수의 정식 ARN을 입력합니다.

    참고

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

  6. aws lambda add-permission 명령 문자열과 함께 경고가 표시됩니다. 이 정책은 권한 부여자 Lambda 함수를 호출할 API Gateway 권한을 부여합니다. 나중에 사용하기 위해 명령을 복사하여 저장합니다. 권한 부여자를 생성한 후 명령을 실행합니다.

  7. API Gateway 콘솔이 리소스 기반 정책을 설정하도록 Lambda 호출 역할을 비워 둡니다. 이 정책은 API Gateway 권한 부여자 Lambda 함수를 호출할 권한을 부여합니다. API Gateway가 권한 부여자 Lambda 함수를 호출하도록 허용하는 IAM 역할을 입력할 수도 있습니다. 이러한 역할의 예는 맡을 수 있는 IAM 역할 생성를 참조하세요.

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

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

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

      • 토큰 소스에 인증 토큰이 포함된 헤더 이름을 입력합니다. API 클라이언트는 권한 부여 토큰을 Lambda 권한 부여자에게 전송하려면 이 이름의 헤더를 포함해야 합니다.

      • 선택적으로 토큰 검증에 정규 표현식 문을 입력합니다. API Gateway는 이 표현식에 대해 입력 토큰의 초기 확인을 수행하고 확인이 성공할 경우 권한 부여자를 호출합니다. 이렇게 하면 API 호출을 줄일 수 있습니다.

      • 권한 부여자에 의해 생성된 권한 부여 정책을 캐싱하려면 권한 부여 캐싱을 설정해 둡니다. 정책 캐싱을 활성화한 경우 TTL 값을 수정할 수 있습니다. TTL을 0으로 설정하면 정책 캐싱이 비활성화됩니다. 정책 캐싱을 비활성화한 경우 토큰 소스에 지정된 헤더 이름이 캐시 키가 됩니다. 요청에서 이 헤더에 여러 값이 전달되면 모든 값이 순서가 유지된 상태로 캐시 키가 됩니다.

        참고

        기본 TTL 값은 300초입니다. 최대 TTL 값은 3600초이며, 이 제한은 늘릴 수 없습니다.

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

      • 자격 증명 소스 유형에서 파리미터 유형을 선택합니다. 지원되는 파라미터 유형은 Header, Query string, Stage variableContext입니다. 자격 증명 소스를 더 추가하려면 파라미터 추가를 선택합니다.

      • 권한 부여자에 의해 생성된 권한 부여 정책을 캐싱하려면 권한 부여 캐싱을 설정해 둡니다. 정책 캐싱을 활성화한 경우 TTL 값을 수정할 수 있습니다. TTL을 0으로 설정하면 정책 캐싱이 비활성화됩니다.

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

        여러 개의 자격 증명 소스가 정의된 경우, 이들은 모두 권한 부여자의 캐시 키를 도출하는 데 사용됩니다. 캐시 키 부분을 변경하면 권한 부여자가 캐시된 정책 문서를 폐기하고 새로 생성합니다. 요청에서 여러 값이 있는 헤더가 전달되면 모든 값이 순서가 유지된 상태로 캐시 키의 일부가 됩니다.

      • 캐싱을 비활성화한 경우 자격 증명 소스를 지정할 필요가 없습니다.

    참고

    캐싱을 활성화하려면 권한 부여자가 API 전체의 모든 메서드에 적용 가능한 정책을 반환해야 합니다. 메서드별 정책을 적용하려는 경우 권한 부여자 캐싱을 해제할 수 있습니다.

  10. 권한 부여자 생성을 선택합니다.

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