

# 객체 Lambda 액세스 포인트 생성
<a name="olap-create"></a>

**참고**  
2025년 11월 7일부터 S3 Object Lambda는 현재 서비스를 사용하고 있는 기존 고객과 AWS 파트너 네트워크(APN) 파트너를 선택하는 고객만 사용할 수 있습니다. S3 Object Lambda와 유사한 기능의 경우 [Amazon S3 Object Lambda 가용성 변경](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html) 섹션에서 자세히 알아보세요.

Object Lambda 액세스 포인트는 생성 중에 지정하는 정확히 하나의 표준 액세스 포인트와 연결됩니다. 객체 Lambda 액세스 포인트를 생성하려면 다음 리소스가 필요합니다.
+ **표준 S3 액세스 지점.** Object Lambda 액세스 포인트를 사용할 때 이 표준 액세스 포인트를 *지원 액세스 포인트*라고 하며, S3 버킷 또는 Amazon FSx for OpenZFS 볼륨에 연결됩니다. 표준 액세스 지점 생성에 대한 자세한 내용은 [액세스 포인트 생성](creating-access-points.md) 섹션을 참조하세요.
+ ** AWS Lambda 함수.** 직접 Lambda 함수를 만들 수도 있고 사전 빌드된 함수를 사용할 수도 있습니다. Lambda 함수 생성에 대한 자세한 내용은 [S3 객체 Lambda 액세스 포인트에 대한 Lambda 함수 작성](olap-writing-lambda.md) 섹션을 참조하세요. 미리 빌드된 함수에 대한 자세한 내용은 [AWS 빌드 Lambda 함수 사용](olap-examples.md) 섹션을 참조하십시오.
+ **(선택 사항) AWS Identity and Access Management (IAM) 정책.** Amazon S3 액세스 지점은 리소스, 사용자 또는 기타 조건별로 액세스 지점 사용을 제어할 수 있는 IAM 리소스 정책을 지원합니다. 이러한 정책 생성에 대한 자세한 내용은 [객체 Lambda 액세스 포인트에 대한 IAM 정책 구성](olap-policies.md) 섹션을 참조하십시오.

다음 섹션에서는 다음을 사용하여 객체 Lambda 액세스 포인트를 생성하는 방법에 대해 설명합니다.
+ AWS Management Console은
+ AWS Command Line Interface(AWS CLI)
+ AWS CloudFormation 템플릿
+ AWS Cloud Development Kit (AWS CDK)은

REST API를 사용하여 객체 Lambda 액세스 포인트를 생성하는 방법에 대한 자세한 내용은 **Amazon Simple Storage Service API 참조의 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html) 섹션을 참조하십시오.

## Object Lambda 액세스 포인트 생성
<a name="create-olap"></a>

다음 절차 중 하나를 사용하여 객체 Lambda 액세스 포인트를 생성합니다.

### S3 콘솔 사용
<a name="olap-create-console"></a>

**콘솔을 사용하여 객체 Lambda 액세스 포인트 생성**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

1. 탐색 모음에서 현재 표시된 AWS 리전의 이름을 선택합니다. 그런 다음 전환하려는 리전을 선택합니다.

1. 왼쪽 탐색 창에서 **객체 Lambda 액세스 포인트(Object Lambda Access Points)**를 선택합니다.

1. **객체 Lambda 액세스 포인트(Object Lambda Access Points)** 페이지에서 **객체 Lambda 액세스 포인트 생성(Create Object Lambda Access Point)**을 선택합니다.

1. **Object Lambda access point name**(객체 Lambda 액세스 지점 이름)에 액세스 지점에 사용할 이름을 입력합니다.

   표준 액세스 포인트와 마찬가지로 객체 Lambda 액세스 포인트에 대한 명명 규칙이 있습니다. 자세한 내용은 [액세스 포인트 이름 지정 규칙](access-points-restrictions-limitations-naming-rules.md#access-points-names) 섹션을 참조하세요.

1. **Supporting Access Point**(지원 액세스 지점)에 사용하려는 표준 액세스 지점을 입력하거나 찾아봅니다. 액세스 포인트는 변환하려는 객체와 동일한 AWS 리전에 있어야 합니다. 표준 액세스 지점 생성에 대한 자세한 내용은 [액세스 포인트 생성](creating-access-points.md) 섹션을 참조하세요.

1. **변환 구성**에서 객체 Lambda 액세스 포인트의 데이터를 변환하는 함수를 추가할 수 있습니다. 다음 중 하나를 수행하세요.
   + 계정에 이미 AWS Lambda 함수가 있는 경우 **Invoke Lambda function**(Lambda 함수 호출)에서 해당 함수를 선택할 수 있습니다. 여기에서 AWS 계정에 있는 Lambda 함수의 Amazon 리소스 이름(ARN)을 입력하거나 드롭다운 메뉴에서 Lambda 함수를 선택할 수 있습니다.
   + AWS에서 빌드한 함수를 사용하려면 **AWS built function**( 빌드 함수)에서 함수 이름을 선택하고 **Create Lambda function**(Lambda 함수 생성)을 선택합니다. 그러면 빌드된 함수를 AWS 계정에 배포할 수 있는 Lambda 콘솔로 이동합니다. 빌드된 함수에 대한 자세한 내용은 [AWS 빌드 Lambda 함수 사용](olap-examples.md) 섹션을 참조하십시오.

   **S3 APIs**(S3 API)에서 호출할 API 작업을 하나 이상 선택합니다. 선택한 각 API에 대해 호출할 Lambda 함수를 지정해야 합니다.

1. (선택 사항) **Payload**(페이로드) 아래에서 Lambda 함수에 입력으로 제공할 JSON 텍스트를 추가합니다. 동일한 Lambda 함수를 호출하는 여러 객체 Lambda 액세스 포인트에 대해 서로 다른 파라미터를 사용하여 페이로드를 구성할 수 있으므로 Lambda 함수의 유연성을 높일 수 있습니다.
**중요**  
객체 Lambda 액세스 포인트를 사용할 때 페이로드에는 기밀 정보를 포함하지 않아야 합니다.

1. (선택 사항) **Range and part number**(범위 및 부분 번호)의 경우 범위 및 부분 번호 헤더가 있는 `GET` 및 `HEAD` 요청을 처리하려면 이 옵션을 활성화해야 합니다. 이 옵션을 사용하면 Lambda 함수로 이러한 요청을 인식하고 처리할 수 있음을 확인하는 것입니다. 범위 헤더 및 부분 번호에 대한 자세한 내용은 [Range 및 partNumber 헤더 작업](range-get-olap.md) 섹션을 참조하십시오.

1. (선택 사항) **요청 지표**에서 **활성화** 또는 **비활성화**를 선택하여 객체 Lambda 액세스 포인트에 Amazon S3 모니터링을 추가합니다. 요청 지표는 표준 Amazon CloudWatch 요금으로 청구됩니다.

1. (선택 사항) **Object Lambda Access Point Policy**(객체 Lambda 액세스 지점 정책)에서 리소스 정책을 설정합니다. 리소스 정책은 지정된 객체 Lambda 액세스 포인트에 대한 권한을 부여하며 리소스, 사용자 또는 기타 조건별로 액세스 포인트 사용을 제어할 수 있습니다. 객체 Lambda 액세스 지점 리소스 정책에 대한 자세한 내용은 [객체 Lambda 액세스 포인트에 대한 IAM 정책 구성](olap-policies.md) 섹션을 참조하십시오.

1. **Block Public Access settings for this Object Lambda Access Point**(이 객체 Lambda 액세스 포인트에 대한 퍼블릭 액세스 차단 설정)에서, 적용할 퍼블릭 액세스 차단 설정을 선택합니다. 새 객체 Lambda 액세스 지점에는 기본적으로 모든 퍼블릭 액세스 차단 설정이 활성화되어 있으며 기본 설정을 그대로 유지하는 것이 좋습니다. Amazon S3에서는 현재 객체 Lambda 액세스 지점이 생성된 후 객체 Lambda 액세스 지점의 퍼블릭 액세스 차단 설정을 변경하도록 지원하지 않습니다.

   Amazon S3 퍼블릭 액세스 차단 사용에 대한 자세한 내용은 [범용 버킷의 액세스 포인트에 대한 퍼블릭 액세스 관리](access-points-bpa-settings.md) 섹션을 참조하십시오.

1. **Create Object Lambda Access Point**(객체 Lambda 액세스 지점 생성)를 선택합니다.

### AWS CLI 사용
<a name="olap-create-cli"></a>

**AWS CloudFormation 템플릿을 사용하여 객체 Lambda 액세스 포인트 생성**
**참고**  
다음 명령을 사용하려면 `user input placeholders`를 실제 정보로 대체합니다.

1. [S3 객체 Lambda 기본 구성](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration)에서 AWS Lambda 함수 배포 패키지 `s3objectlambda_deployment_package.zip`을 다운로드합니다.

1. 다음 `put-object` 명령을 실행하여 Amazon S3 버킷에 패키지를 업로드합니다.

   ```
   aws s3api put-object --bucket Amazon S3 bucket name --key s3objectlambda_deployment_package.zip --body release/s3objectlambda_deployment_package.zip
   ```

1. [S3 객체 Lambda 기본 구성](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration)에서 AWS CloudFormation 템플릿 `s3objectlambda_defaultconfig.yaml`을 다운로드합니다.

1. 다음 `deploy` 명령을 실행하여 템플릿을 AWS 계정에 배포합니다.

   ```
   aws cloudformation deploy --template-file s3objectlambda_defaultconfig.yaml \
    --stack-name CloudFormation stack name \ 
    --parameter-overrides ObjectLambdaAccessPointName=Object Lambda Access Point name \
     SupportingAccessPointName=Amazon S3 access point S3BucketName=Amazon S3 bucket \
     LambdaFunctionS3BucketName=Amazon S3 bucket containing your Lambda package \ 
     LambdaFunctionS3Key=Lambda object key LambdaFunctionS3ObjectVersion=Lambda object version \ 
     LambdaFunctionRuntime=Lambda function runtime --capabilities capability_IAM
   ```

`GET`, `HEAD` 및 `LIST` API 작업에 대해 Lambda를 호출하도록 이 AWS CloudFormation 템플릿을 구성할 수 있습니다. 템플릿의 기본 구성 수정에 대한 자세한 내용은 [CloudFormation 템플릿을 사용하여 S3 객체 Lambda 설정 자동화](olap-using-cfn-template.md) 섹션을 참조하십시오.<a name="olap-create-cli-specific"></a>

**AWS CLI를 사용하여 객체 Lambda 액세스 포인트 생성**
**참고**  
다음 명령을 사용하려면 `user input placeholders`를 실제 정보로 대체합니다.

다음 예시에서는 계정 *`111122223333`*의 *`amzn-s3-demo-bucket1`* 버킷에 대해 이름이 *`my-object-lambda-ap`*인 객체 Lambda 액세스 포인트를 생성합니다. 이 예제에서는 이름이 *`example-ap`*인 표준 액세스 포인트 정책이 이미 생성되어 있다고 가정합니다. 표준 액세스 포인트 생성에 대한 자세한 내용은 [액세스 포인트 생성](creating-access-points.md) 섹션을 참조하십시오.

이 예제에서는 AWS의 미리 빌드된 함수 `decompress`를 사용합니다. 미리 빌드된 함수에 대한 자세한 내용은 [AWS 빌드 Lambda 함수 사용](olap-examples.md) 섹션을 참조하십시오.

1. 버킷을 만듭니다. 이 예제에서는 *`amzn-s3-demo-bucket1`*을 사용합니다. 버킷 생성에 대한 자세한 내용은 [범용 버킷 생성](create-bucket-overview.md) 섹션을 참조하십시오.

1. 표준 액세스 포인트를 생성하여 버킷에 연결합니다. 이 예제에서는 *`example-ap`*을 사용합니다. 표준 액세스 지점 생성에 대한 자세한 내용은 [액세스 포인트 생성](creating-access-points.md) 섹션을 참조하십시오.

1. 다음 중 하나를 수행하세요.
   + 계정에 Amazon S3 객체를 변환하는 데 사용할 Lambda 함수를 생성합니다. Lambda 함수 생성에 대한 자세한 내용은 [S3 객체 Lambda 액세스 포인트에 대한 Lambda 함수 작성](olap-writing-lambda.md) 섹션을 참조하십시오. AWS CLI에서 사용자 지정 함수를 사용하려면 AWS Lambda 개발자 안내서의** [AWS CLI에서 Lambda 사용](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html)을 참조하십시오.
   + AWS의 사전 빌드된 Lambda 함수를 사용합니다. 미리 빌드된 함수에 대한 자세한 내용은 [AWS 빌드 Lambda 함수 사용](olap-examples.md) 섹션을 참조하십시오.

1. 이름이 `my-olap-configuration.json`인 JSON 구성 파일을 생성합니다. 이 구성에서는 이전 단계에서 생성한 Lambda 함수의 지원 액세스 지점과 Amazon 리소스 이름(ARN) 또는 사용 중인 사전 빌드된 함수의 ARN을 제공합니다.  
**Example**  

   

   ```
   {
       "SupportingAccessPoint" : "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap",
       "TransformationConfigurations": [{
           "Actions" : ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"],
           "ContentTransformation" : {
               "AwsLambda": {
                   "FunctionPayload" : "{\"compressionType\":\"gzip\"}",
                   "FunctionArn" : "arn:aws:lambda:us-east-1:111122223333:function/compress"
               }
           }
       }]
   }
   ```

1. `create-access-point-for-object-lambda` 명령을 실행하여 객체 Lambda 액세스 포인트를 생성합니다.

   ```
   aws s3control create-access-point-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --configuration file://my-olap-configuration.json
   ```

1. (선택 사항) 이름이 `my-olap-policy.json`인 JSON 정책 파일을 생성합니다.

   객체 Lambda 액세스 지점 리소스 정책을 추가하면 리소스, 사용자 또는 기타 조건별로 액세스 지점 사용을 제어할 수 있습니다. 이 리소스 정책은 계정 *`444455556666`*에 대한 `GetObject` 권한을 객체 Lambda 액세스 포인트에 부여합니다.  
**Example**  

   

   ```
   {
       "Version": "2008-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Grant account 444455556666 GetObject access",
               "Effect": "Allow",
               "Action": "s3-object-lambda:GetObject",
               "Principal": {
                   "AWS": "arn:aws:iam::444455556666:root"
               },
               "Resource": "your-object-lambda-access-point-arn"
           }
       ]
   }
   ```

1. (선택 사항) `put-access-point-policy-for-object-lambda` 명령을 실행하여 리소스 정책을 설정합니다.

   ```
   aws s3control put-access-point-policy-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --policy file://my-olap-policy.json
   ```

1. (선택 사항) 페이로드를 지정합니다.

   페이로드는 AWS Lambda 함수에 입력으로 제공할 수 있는 선택적 JSON입니다. 동일한 Lambda 함수를 호출하는 여러 객체 Lambda 액세스 포인트에 대해 서로 다른 파라미터를 사용하여 페이로드를 구성할 수 있으므로 Lambda 함수의 유연성을 높일 수 있습니다.

   다음 객체 Lambda 액세스 포인트 구성은 파라미터 2개가 있는 페이로드를 보여줍니다.

   ```
   {
   	"SupportingAccessPoint": "AccessPointArn",
   	"CloudWatchMetricsEnabled": false,
   	"TransformationConfigurations": [{
   		"Actions": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"],
   		"ContentTransformation": {
   			"AwsLambda": {
   				"FunctionArn": "FunctionArn",
   				"FunctionPayload": "{\"res-x\": \"100\",\"res-y\": \"100\"}"
   			}
   		}
   	}]
   }
   ```

   다음 객체 Lambda 액세스 포인트 구성은 파라미터 1개가 있고 `GetObject-Range`, `GetObject-PartNumber`, `HeadObject-Range` 및 `HeadObject-PartNumber`가 활성화된 페이로드를 보여줍니다.

   ```
   {
       "SupportingAccessPoint":"AccessPointArn",
       "CloudWatchMetricsEnabled": false,
       "AllowedFeatures": ["GetObject-Range", "GetObject-PartNumber", "HeadObject-Range", "HeadObject-PartNumber"],        
       "TransformationConfigurations": [{
           "Action": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"],
           "ContentTransformation": {
               "AwsLambda": {
                   "FunctionArn":"FunctionArn",
                   "FunctionPayload": "{\"compression-amount\": \"5\"}"
               }
           }
       }]
   }
   ```
**중요**  
객체 Lambda 액세스 포인트를 사용할 때 페이로드에는 기밀 정보를 포함하지 않아야 합니다.

### AWS CloudFormation 콘솔 및 템플릿 사용
<a name="olap-create-cfn-console"></a>

Amazon S3에서 제공하는 기본 구성을 사용하여 객체 Lambda 액세스 포인트를 생성할 수 있습니다. [GitHub 리포지토리](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration)에서 AWS CloudFormation 템플릿 및 Lambda 함수 소스 코드를 다운로드하고 이러한 리소스를 배포하여 기능적 객체 Lambda 액세스 포인트를 설정할 수 있습니다.

AWS CloudFormation 템플릿의 기본 구성 수정에 대한 내용은 [CloudFormation 템플릿을 사용하여 S3 객체 Lambda 설정 자동화](olap-using-cfn-template.md) 섹션을 참조하십시오.

템플릿 없이 CloudFormation을 사용하여 객체 Lambda 액세스 포인트를 구성하는 방법에 대한 자세한 내용은 **AWS CloudFormation 사용 설명서의 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html)를 참조하십시오.

**Lambda 함수 배포 패키지 업로드**

1. [S3 객체 Lambda 기본 구성](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration)에서 AWS Lambda 함수 배포 패키지 `s3objectlambda_deployment_package.zip`을 다운로드합니다.

1. Amazon S3 버킷에 패키지를 업로드합니다.

**AWS CloudFormation 콘솔을 사용하여 객체 Lambda 액세스 포인트 생성**

1. [S3 객체 Lambda 기본 구성](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration)에서 AWS CloudFormation 템플릿 `s3objectlambda_defaultconfig.yaml`을 다운로드합니다.

1. AWS 관리 콘솔에 로그인하고 [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)에서 AWS CloudFormation 콘솔을 엽니다.

1. 다음 중 하나를 수행하십시오.
   + AWS CloudFormation을 한 번도 사용해 본 적이 없다면 AWS CloudFormation 홈페이지에서 **Create stack**(스택 생성)을 선택합니다.
   + AWS CloudFormation을 이전에 사용한 적이 있다면 왼쪽 탐색 창에서 **Stacks**(스택)를 선택합니다. **Create stack**(스택 생성)을 선택한 다음 **With new resources (standard)**새 리소스 사용(표준)를 선택합니다.

1. **사전 조건 - 템플릿 준비(Prerequisite - Prepare template)**에서 **템플릿 준비 완료**를 선택합니다.

1. **Specify template**(템플릿 지정)에서 **Upload a template file**(템플릿 파일 업로드)를 선택하고 `s3objectlambda_defaultconfig.yaml`을 업로드합니다.

1. **다음**을 선택합니다.

1. **스택 세부 정보 지정(Specify stack details)** 페이지에서 스택 이름을 입력합니다.

1. **Parameters**(파라미터) 섹션에서 스택 템플릿에 정의된 다음 파라미터를 지정합니다.

   1. **CreateNewSupportingAccessPoint**의 경우 다음 중 하나를 수행합니다.
      + 템플릿을 업로드한 S3 버킷에 대한 지원 액세스 지점이 이미 있는 경우 **false**(거짓)를 선택합니다.
      + 이 버킷에 대한 새 액세스 지점을 생성하려면 **true**(참)를 선택합니다.

   1. **EnableCloudWatchMonitoring**의 경우 Amazon CloudWatch 요청 지표 및 경보를 활성화할지 여부에 따라 **true**(참) 또는 **false**(거짓)를 선택합니다.

   1. (선택 사항) **LambdaFunctionPayload**에서 Lambda 함수에 입력으로 제공할 JSON 텍스트를 추가합니다. 동일한 Lambda 함수를 호출하는 여러 객체 Lambda 액세스 포인트에 대해 서로 다른 파라미터를 사용하여 페이로드를 구성할 수 있으므로 Lambda 함수의 유연성을 높일 수 있습니다.
**중요**  
객체 Lambda 액세스 포인트를 사용할 때 페이로드에는 기밀 정보를 포함하지 않아야 합니다.

   1. **LambdaFunctionRuntime**에 Lambda 함수의 원하는 런타임을 입력합니다. 사용 가능한 선택 항목은 `nodejs14.x`, `python3.9`, `java11`입니다.

   1. **LambdaFunctionS3BucketName**에 배포 패키지를 업로드한 Amazon S3 버킷 이름을 입력합니다.

   1. **LambdaFunctionS3Key**에 배포 패키지를 업로드한 Amazon S3 객체 키를 입력합니다.

   1. **LambdaFunctionS3ObjectVersion**에 배포 패키지를 업로드한 Amazon S3 객체 버전을 입력합니다.

   1. **ObjectLambdaAccessPointName**에 객체 Lambda 액세스 포인트의 이름을 입력합니다.

   1. **S3BucketName**에 객체 Lambda 액세스 포인트와 연결될 Amazon S3 버킷 이름을 입력합니다.

   1. **SupportingAccessPointName**에 지원 액세스 지점의 이름을 입력합니다.
**참고**  
이것이 이전 단계에서 선택한 Amazon S3 버킷과 연결된 액세스 지점입니다. Amazon S3 버킷과 연결된 액세스 지점이 없는 경우 **CreateNewSupportingAccessPoint**에서 **true**(참)를 선택하여 액세스 지점을 생성하도록 템플릿을 구성할 수 있습니다.

1. **다음**을 선택합니다.

1. **스택 옵션 구성** 페이지에서 **다음**을 선택합니다.

   이 페이지의 선택적 설정에 대한 자세한 내용은 AWS CloudFormation 사용 설명서**의 [AWS CloudFormation 스택 옵션 설정](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html)을 참조하십시오.

1. **검토** 페이지에서 **스택 생성**을 선택합니다.

### AWS Cloud Development Kit (AWS CDK) 사용
<a name="olap-create-cdk"></a>

AWS CDK을 사용하여 객체 Lambda 액세스 포인트를 구성하는 방법에 대한 자세한 내용은 AWS Cloud Development Kit (AWS CDK) API 참조**의 [`AWS::S3ObjectLambda` 구성 라이브러리](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3objectlambda-readme.html)를 참조하십시오.