Object Lambda 액세스 포인트 만들기

Object Lambda 액세스 포인트 만들기

참고

2025년 11월 7일부터 S3 Object Lambda는 현재 서비스를 사용 중인 기존 고객과 선별된 AWS Partner Network(APN) 파트너에게만 제공돼요. S3 Object Lambda와 유사한 기능에 대해서는 Amazon S3 Object Lambda 제공 변경을 참고하세요.

Object Lambda 액세스 포인트는 생성할 때 지정하는 정확히 하나의 표준 액세스 포인트와 연결돼요. Object Lambda 액세스 포인트를 만들려면 다음 리소스가 필요해요.

  • 표준 S3 액세스 포인트. Object Lambda 액세스 포인트를 사용할 때 이 표준 액세스 포인트를 지원 액세스 포인트(supporting access point) 라고 하고, S3 버킷이나 Amazon FSx for OpenZFS 볼륨에 연결돼요. 표준 액세스 포인트 만들기에 대한 정보는 액세스 포인트 만들기를 참고하세요.
  • AWS Lambda 함수. 여러분만의 Lambda 함수를 만들거나 사전 구축된 함수를 사용할 수 있어요. Lambda 함수 만들기에 대한 자세한 내용은 S3 Object Lambda 액세스 포인트용 Lambda 함수 작성을 참고하세요. 사전 구축 함수에 대한 자세한 내용은 AWS 빌트 Lambda 함수 사용을 참고하세요.
  • (선택) AWS Identity and Access Management(IAM) 정책. Amazon S3 액세스 포인트는 리소스, 사용자, 또는 다른 조건에 따라 액세스 포인트 사용을 제어하는 데 사용할 수 있는 IAM 리소스 정책을 지원해요. 이 정책을 만드는 방법은 Object Lambda 액세스 포인트용 IAM 정책 구성을 참고하세요.

다음 섹션은 Object Lambda 액세스 포인트를 만드는 방법을 설명해요.

  • AWS Management Console
  • AWS Command Line Interface(AWS CLI)
  • AWS CloudFormation 템플릿
  • AWS Cloud Development Kit(AWS CDK)

REST API로 Object Lambda 액세스 포인트를 만드는 방법은 _Amazon Simple Storage Service API Reference_의 CreateAccessPointForObjectLambda를 참고하세요.

출처: 문서

본문

Object Lambda 액세스 포인트 만들기

다음 절차 중 하나를 사용해 Object Lambda 액세스 포인트를 만드세요.

콘솔로 Object Lambda 액세스 포인트 만들기

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.
  2. 탐색 표시줄에서 현재 표시된 AWS 리전의 이름을 선택합니다. 그다음 전환하려는 리전을 선택합니다.
  3. 왼쪽 탐색 창에서 Object Lambda Access Points를 선택합니다.
  4. Object Lambda Access Points 페이지에서 Create Object Lambda Access Point를 선택합니다.
  5. Object Lambda Access Point name에 액세스 포인트에 사용할 이름을 입력합니다. 표준 액세스 포인트와 마찬가지로 Object Lambda 액세스 포인트 이름에도 규칙이 있어요. 자세한 내용은 액세스 포인트 명명 규칙을 참고하세요.
  6. Supporting Access Point에 사용할 표준 액세스 포인트를 입력하거나 찾아봅니다. 액세스 포인트는 변환하려는 객체와 같은 AWS 리전에 있어야 합니다. 표준 액세스 포인트 만들기에 대한 정보는 액세스 포인트 만들기를 참고하세요.
  7. Transformation configuration에서 Object Lambda 액세스 포인트의 데이터를 변환하는 함수를 추가할 수 있습니다. 다음 중 하나를 수행하세요.
    • 계정에 AWS Lambda 함수가 이미 있다면 Invoke Lambda function에서 선택합니다. 여기서 AWS 계정의 Lambda 함수 Amazon Resource Name(ARN)을 입력하거나 드롭다운 메뉴에서 Lambda 함수를 선택할 수 있습니다.
    • AWS 빌트 함수를 사용하려면 AWS built function에서 함수 이름을 선택하고 Create Lambda function을 선택합니다. 그러면 Lambda 콘솔로 이동해 AWS 계정에 빌트 함수를 배포할 수 있습니다. 빌트 함수에 대한 자세한 내용은 AWS 빌트 Lambda 함수 사용을 참고하세요. S3 APIs에서 호출할 API 작업을 하나 이상 선택합니다. 선택한 각 API에 대해 호출할 Lambda 함수를 지정해야 합니다.
  8. (선택) Payload에서 Lambda 함수에 입력으로 제공할 JSON 텍스트를 추가합니다. 같은 Lambda 함수를 호출하는 서로 다른 Object Lambda 액세스 포인트에 서로 다른 매개변수로 페이로드를 구성할 수 있으므로 Lambda 함수의 유연성을 넓힐 수 있습니다.

중요

Object Lambda 액세스 포인트를 사용할 때 페이로드에 기밀 정보가 포함되지 않도록 하세요.

  1. (선택) Range and part number에서 범위·파트 번호 헤더가 있는 GET과 HEAD 요청을 처리하려면 이 옵션을 활성화해야 합니다. 이 옵션을 활성화하면 Lambda 함수가 이런 요청을 인식하고 처리할 수 있음을 확인하게 됩니다. 범위 헤더와 파트 번호에 대한 자세한 내용은 Range 및 partNumber 헤더 작업하기를 참고하세요.
  2. (선택) Request metrics에서 Enable 또는 Disable을 선택해 Object Lambda 액세스 포인트에 Amazon S3 모니터링을 추가합니다. 요청 메트릭은 표준 Amazon CloudWatch 요율로 청구됩니다.
  3. (선택) Object Lambda Access Point policy에서 리소스 정책을 설정합니다. 리소스 정책은 지정된 Object Lambda 액세스 포인트에 대한 권한을 부여하고 리소스, 사용자, 또는 다른 조건에 따라 액세스 포인트 사용을 제어할 수 있습니다. Object Lambda 액세스 포인트 리소스 정책에 대한 자세한 내용은 Object Lambda 액세스 포인트용 IAM 정책 구성을 참고하세요.
  4. Block Public Access settings for this Object Lambda Access Point에서 적용할 공개 액세스 차단 설정을 선택합니다. 모든 공개 액세스 차단 설정은 새 Object Lambda 액세스 포인트에 대해 기본적으로 활성화되어 있으며, 기본 설정을 그대로 두는 것을 권장합니다. Amazon S3는 현재 Object Lambda 액세스 포인트가 생성된 후에는 공개 액세스 차단 설정 변경을 지원하지 않습니다. Amazon S3 Block Public Access 사용에 대한 자세한 내용은 일반 용도 버킷의 액세스 포인트 공개 액세스 관리를 참고하세요.
  5. Create Object Lambda Access Point를 선택합니다.

AWS CloudFormation 템플릿으로 Object Lambda 액세스 포인트 만들기

참고

다음 명령을 사용하려면 user input placeholders를 여러분의 정보로 바꾸세요.

  1. S3 Object Lambda 기본 구성에서 AWS Lambda 함수 배포 패키지 s3objectlambda_deployment_package.zip을 다운로드합니다.
  2. 다음 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 Object Lambda 기본 구성에서 AWS CloudFormation 템플릿 s3objectlambda_defaultconfig.yaml을 다운로드합니다.
  2. 다음 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

이 AWS CloudFormation 템플릿을 구성해 GET, HEAD, LIST API 작업에 대해 Lambda를 호출할 수 있어요. 템플릿의 기본 구성을 수정하는 방법은 CloudFormation 템플릿으로 S3 Object Lambda 설정 자동화를 참고하세요.

AWS CLI로 Object Lambda 액세스 포인트 만들기

참고

다음 명령을 사용하려면 user input placeholders를 여러분의 정보로 바꾸세요.

다음 예시는 계정 111122223333의 amzn-s3-demo-bucket1 버킷에 대해 my-object-lambda-ap라는 Object Lambda 액세스 포인트를 만들어요. 이 예시는 example-ap라는 표준 액세스 포인트가 이미 만들어졌다고 가정해요. 표준 액세스 포인트 만들기에 대한 정보는 액세스 포인트 만들기를 참고하세요.

이 예시는 AWS 사전 구축 함수 decompress를 사용해요. 사전 구축 함수에 대한 자세한 내용은 AWS 빌트 Lambda 함수 사용을 참고하세요.

  1. 버킷을 만듭니다. 이 예시에서는 amzn-s3-demo-bucket1을 사용할게요. 버킷 만들기에 대한 정보는 일반 용도 버킷 만들기를 참고하세요.
  2. 표준 액세스 포인트를 만들고 버킷에 연결합니다. 이 예시에서는 example-ap를 사용할게요. 표준 액세스 포인트 만들기에 대한 정보는 액세스 포인트 만들기를 참고하세요.
  3. 다음 중 하나를 수행하세요.
  4. my-olap-configuration.json이라는 JSON 구성 파일을 만듭니다. 이 구성에 지원 액세스 포인트와 이전 단계에서 만든 Lambda 함수의 Amazon Resource Name(ARN) 또는 사용 중인 사전 구축 함수의 ARN을 제공합니다.

예시

{
    "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 명령을 실행해 Object 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 정책 파일을 만듭니다. Object Lambda 액세스 포인트 리소스 정책을 추가하면 리소스, 사용자, 또는 다른 조건에 따라 액세스 포인트 사용을 제어할 수 있어요. 이 리소스 정책은 계정 444455556666에 지정된 Object Lambda 액세스 포인트에 대한 GetObject 권한을 부여해요.

예시

{
    "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 함수를 호출하는 서로 다른 Object Lambda 액세스 포인트에 서로 다른 매개변수로 페이로드를 구성할 수 있으므로 Lambda 함수의 유연성을 넓힐 수 있어요.

다음 Object Lambda 액세스 포인트 구성은 두 매개변수가 있는 페이로드를 보여줘요.

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

다음 Object Lambda 액세스 포인트 구성은 한 매개변수가 있는 페이로드를 보여주고, 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\"}"
            }
        }
    }]
}

중요

Object Lambda 액세스 포인트를 사용할 때 페이로드에 기밀 정보가 포함되지 않도록 하세요.

Amazon S3가 제공하는 기본 구성을 사용해 Object Lambda 액세스 포인트를 만들 수 있어요. GitHub 저장소에서 AWS CloudFormation 템플릿과 Lambda 함수 소스 코드를 다운로드하고 이 리소스를 배포해 작동하는 Object Lambda 액세스 포인트를 설정할 수 있어요.

AWS CloudFormation 템플릿의 기본 구성을 수정하는 방법은 CloudFormation 템플릿으로 S3 Object Lambda 설정 자동화를 참고하세요. 템플릿 없이 CloudFormation으로 Object Lambda 액세스 포인트를 구성하는 방법은 _AWS CloudFormation User Guide_의 AWS::S3ObjectLambda::AccessPoint를 참고하세요.

Lambda 함수 배포 패키지 업로드

  1. S3 Object Lambda 기본 구성에서 AWS Lambda 함수 배포 패키지 s3objectlambda_deployment_package.zip을 다운로드합니다.
  2. 패키지를 Amazon S3 버킷에 업로드합니다.

AWS CloudFormation 콘솔로 Object Lambda 액세스 포인트 만들기

  1. S3 Object Lambda 기본 구성에서 AWS CloudFormation 템플릿 s3objectlambda_defaultconfig.yaml을 다운로드합니다.

  2. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudformation에서 AWS CloudFormation 콘솔을 엽니다.

  3. 다음 중 하나를 수행하세요.

    • AWS CloudFormation을 사용한 적이 없다면 AWS CloudFormation 홈 페이지에서 Create stack을 선택합니다.
    • AWS CloudFormation을 사용한 적이 있다면 왼쪽 탐색 창에서 Stacks를 선택합니다. Create stack을 선택한 다음 **With new resources (standard)**를 선택합니다.
  4. Prerequisite - Prepare template에서 Template is ready를 선택합니다.

  5. Specify template에서 Upload a template file을 선택하고 s3objectlambda_defaultconfig.yaml을 업로드합니다.

  6. Next를 선택합니다.

  7. Specify stack details 페이지에서 스택 이름을 입력합니다.

  8. Parameters 섹션에서 스택 템플릿에 정의된 다음 매개변수를 지정합니다.

    1. CreateNewSupportingAccessPoint에서 다음 중 하나를 수행합니다.
      • 템플릿을 업로드한 S3 버킷에 지원 액세스 포인트가 이미 있다면 false를 선택합니다.
      • 이 버킷에 새 액세스 포인트를 만들려면 true를 선택합니다.
    2. EnableCloudWatchMonitoring에서 Amazon CloudWatch 요청 메트릭과 알람을 활성화할지에 따라 true 또는 false를 선택합니다.
    3. (선택) LambdaFunctionPayload에서 Lambda 함수에 입력으로 제공할 JSON 텍스트를 추가합니다. 같은 Lambda 함수를 호출하는 서로 다른 Object Lambda 액세스 포인트에 서로 다른 매개변수로 페이로드를 구성할 수 있으므로 Lambda 함수의 유연성을 넓힐 수 있습니다.

    중요

    Object Lambda 액세스 포인트를 사용할 때 페이로드에 기밀 정보가 포함되지 않도록 하세요.

    1. LambdaFunctionRuntime에 Lambda 함수용 선호 런타임을 입력합니다. 사용 가능한 선택지는 nodejs14.x, python3.9, java11입니다.
    2. LambdaFunctionS3BucketName에 배포 패키지를 업로드한 Amazon S3 버킷 이름을 입력합니다.
    3. LambdaFunctionS3Key에 배포 패키지를 업로드한 Amazon S3 객체 키를 입력합니다.
    4. LambdaFunctionS3ObjectVersion에 배포 패키지를 업로드한 Amazon S3 객체 버전을 입력합니다.
    5. ObjectLambdaAccessPointName에 Object Lambda 액세스 포인트 이름을 입력합니다.
    6. S3BucketName에 Object Lambda 액세스 포인트와 연결할 Amazon S3 버킷 이름을 입력합니다.
    7. SupportingAccessPointName에 지원 액세스 포인트의 이름을 입력합니다.

    참고

    이것은 이전 단계에서 선택한 Amazon S3 버킷과 연결된 액세스 포인트예요. Amazon S3 버킷과 연결된 액세스 포인트가 없다면 CreateNewSupportingAccessPoint에서 true를 선택해 템플릿이 액세스 포인트를 만들어 주도록 구성할 수 있어요.

  9. Next를 선택합니다.

  10. Configure stack options 페이지에서 Next를 선택합니다. 이 페이지의 선택적 설정에 대한 자세한 내용은 _AWS CloudFormation User Guide_의 AWS CloudFormation 스택 옵션 설정을 참고하세요.

  11. Review 페이지에서 Create stack을 선택합니다.

AWS CDK로 Object Lambda 액세스 포인트를 구성하는 방법은 _AWS Cloud Development Kit(AWS CDK) API Reference_의 AWS::S3ObjectLambda Construct Library를 참고하세요.

더 알아보기 (Learn more)