[AWS] Lambda URL의 Auth 종류에 대하여

NewNewDaddy·2023년 9월 5일
0

AWS

목록 보기
3/13
post-thumbnail

0. INTRO

Lambda 함수 URL을 사용하면 HTTPS 엔드포인트에서 Lambda 함수를 호출할 수 있습니다. 이를 통해 HTTP 클라이언트를 사용하여 AWS 외부의 애플리케이션에 함수를 노출할 수 있습니다.

이전에는 Lambda 함수 노출을 위해서는 API Gateway 서비스를 이용하여 엔드포인트를 만든 후 Lambda와 연결을 해주어야 했으며 이 과정에서 추가적인 단계와 지식들을 필요로 했습니다. 물론 세세하고 깊이있는 API 설정들을 하기 위해서는 여전히 API Gateway 서비스를 사용해야하지만 Lambda URL 기능은 위의 프로세스를 훨씬 쉽게 할 수 있도록 도와줍니다.

즉, Lambda 함수 URL은 API Gateway 엔드포인트의 간소화된 버전이며 이 기능은 복잡한 API Gateway 엔드포인트 설정에 대해 걱정할 필요 없이 빠르게 HTTP URL을 설정하려는 사용자에게 유용합니다.

  • Configuration → Function URL 에서 간단히 생성이 가능하다.

1. Lambda URL 종류

  • NONE
    • None 타입을 선택하게 되면 유저가 누구든 상관없이 모두에게 해당 URL 접근 권한이 주어진다.
  • IAM AUTH
    • IAM에서 특정 권한이 부여된 USER들에 한해서 AWS Credentials 와 함께 URL에 접근이 가능하도록 하는 기능이다.
    • 보안적인 측면에서 우수하지만 브라우저에 바로 URL을 입력하면 당연히 접근이 되지 않기에 특정 부분에 있어서 불편할 수 있다.

2. AWS_IAM 타입으로 접근하는 방법

  1. IAM USER 생성 및 정책 연결
    • IAM > Role을 만들 때 InvokeFunctionUrl, InvokeFunction 정책을 Allow하여 생성 후 해당 user에 연결한다. 혹은 이미 연결된 Role에 위의 정책들을 추가해줘도 무방하다.
    • Resource의 경우 전체를 하려면 "*" 으로, 특정 lambda url만 허용하려면 해당 함수의 ARN 값을 넣어준다.
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "VisualEditor0",
                  "Effect": "Allow",
                  "Action": [
                      "lambda:InvokeFunctionUrl",
                      "lambda:InvokeFunction"
                  ],
                  "Resource": "arn:aws:lambda:ap-northeast-2:646664498184:function:CDK-URL-test"
              }
          ]
      }
  2. 해당 USER의 AWS Credential Key 발급
    • IAM > Users > Security Credentials > Create access key
  3. Postman을 이용하여 API Test
    1. 아래와 같이 Lambda URL을 넣어준 후 Auth > AWS Signature을 선택하고 4가지 값들(AccessKey, SecretKey, AWS Region, Service Name)을 입력해준다.
    2. Send를 누르게 되면 해당 Lambda URL 실행 권한이 입력한 AWS KEY를 통해 식별되면서 API가 접근이 가능하게된다.
      image
profile
데이터 엔지니어의 작업공간 / #PYTHON #CLOUD #SPARK #AWS #GCP #NCLOUD

0개의 댓글