

# 객체 Lambda 액세스 포인트에 대한 IAM 정책 구성
<a name="olap-policies"></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) 섹션에서 자세히 알아보세요.

Amazon S3 액세스 포인트는 리소스, 사용자 또는 기타 조건별로 액세스 포인트 사용을 제어할 수 있는 AWS Identity and Access Management(IAM) 리소스 정책을 지원합니다. 객체 Lambda 액세스 포인트의 선택적 리소스 정책이나 지원 액세스 포인트의 리소스 정책을 통해 액세스를 제어할 수 있습니다. 단계별 예제는 [자습서: S3 객체 Lambda를 사용하여 애플리케이션의 데이터 변환](tutorial-s3-object-lambda-uppercase.md) 및 [자습서: S3 객체 Lambda 및 Amazon Comprehend를 사용하여 PII 데이터 감지 및 수정](tutorial-s3-object-lambda-redact-pii.md) 단원을 참조하십시오.

다음 4개 리소스에 객체 Lambda 액세스 포인트로 작업할 수 있는 권한을 부여해야 합니다.
+ 사용자 또는 역할과 같은 IAM 자격 증명입니다. IAM 자격 증명 및 모범 사례에 대한 자세한 내용은 **IAM 사용 설명서의 [IAM 자격 증명(사용자, 사용자 그룹 및 역할)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)을 참조하십시오.
+ S3 버킷 또는 Amazon FSx for OpenZFS 볼륨과 같은 기본 데이터 소스에 연결된 표준 액세스 포인트입니다. 객체 Lambda 액세스 포인트로 작업할 때 이 표준 액세스 포인트를 지원 액세스 포인트**라고 합니다.
+ 객체 Lambda 액세스 포인트
+ AWS Lambda 함수

**중요**  
정책을 저장하기 전에 AWS Identity and Access Management Access Analyzer의 보안 경고, 오류, 일반 경고 및 제안 사항을 해결해야 합니다. IAM Access Analyzer는 정책 확인은 실행하여 IAM [정책 문법](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) 및 [모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)에 대해 정책을 검증합니다. 이러한 확인은 결과를 생성하고 보안 모범 사례를 준수하고 작동하는 정책을 작성하는 데 도움이 되는 실행 가능한 권장 사항을 제공합니다.  
IAM Access Analyzer를 사용한 정책 검증에 대한 자세한 내용은 **IAM 사용 설명서의 [IAM Access Analyzer 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하십시오. IAM Access Analyzer에서 반환된 경고, 오류 및 제안 사항 목록을 보려면 [IAM Access Analyzer 정책 확인 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html)를 참조하십시오.

다음 정책 예시에서는 다음과 같은 리소스가 있다고 가정합니다.
+ Amazon S3 버킷에는 다음과 같은 Amazon S3 리소스 이름(ARN)이 포함되어 있습니다.

  `arn:aws:s3:::amzn-s3-demo-bucket1`
+ 다음 ARN이 있는 이 버킷의 Amazon S3 Standard 액세스 포인트 

  `arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point`
+ 다음 ARN이 있는 객체 Lambda 액세스 포인트: 

  `arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap`
+ 다음 ARN을 사용하는 AWS Lambda 함수 

  `arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction`

**참고**  
계정에서 Lambda 함수를 사용하는 경우 정책 문에 특정 함수 버전을 포함해야 합니다. 다음 예시 ARN에서 버전은 *1*로 표시됩니다.  
`arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1`  
Lambda는 버전 `$LATEST`에 IAM 정책을 추가하는 것을 지원하지 않습니다. Lambda 함수 버전에 대한 자세한 내용은 AWS Lambda 개발자 안내서**의 [Lambda 함수 버전](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)을 참조하십시오.

**Example - 표준 액세스 지점에 액세스 제어를 위임하는 버킷 정책**  
다음 S3 버킷 정책 예는 버킷에 대한 액세스 제어를 버킷의 표준 액세스 지점에 위임합니다. 이 정책은 버킷 소유자의 계정이 소유한 모든 액세스 지점에 대한 전체 액세스를 허용합니다. 따라서 이 버킷에 대한 모든 액세스는 해당 액세스 지점에 연결된 정책에 의해 제어됩니다. 사용자는 액세스 지점을 통해서만 버킷에서 읽을 수 있으므로 액세스 지점을 통해서만 작업이 호출될 수 있습니다. 자세한 내용은 [액세스 포인트에 액세스 제어 위임](access-points-policies.md#access-points-delegating-control) 섹션을 참조하세요.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement" : [
    {
        "Effect": "Allow",
        "Principal" : { "AWS":"account-ARN"},
        "Action" : "*",
        "Resource" : [
            "arn:aws:s3:::amzn-s3-demo-bucket", 
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ],
        "Condition": {
            "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" }
        }
    }]
}
```

**Example - 사용자에게 객체 Lambda 액세스 포인트를 사용하는 데 필요한 권한을 부여하는 IAM 정책**  
다음 IAM 정책은 사용자에게 Lambda 함수, 표준 액세스 포인트 및 객체 Lambda 액세스 포인트에 대한 권한을 부여합니다.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowLambdaInvocation",
      "Action": [
        "lambda:InvokeFunction"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": [
            "s3-object-lambda.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "AllowStandardAccessPointAccess",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": [
            "s3-object-lambda.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "AllowObjectLambdaAccess",
      "Action": [
        "s3-object-lambda:Get*",
        "s3-object-lambda:List*"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap"
    }
  ]
}
```

## Lambda 실행 역할에 대한 권한 활성화
<a name="olap-execution-role"></a>

객체 Lambda 액세스 포인트에 `GET` 요청이 있을 때 Lambda 함수는 S3 객체 Lambda 액세스 포인트에 데이터를 보낼 수 있는 권한이 필요합니다. 이 권한은 Lambda 함수의 실행 역할에 대한 `s3-object-lambda:WriteGetObjectResponse` 권한을 활성화하여 제공됩니다. 새로운 실행 역할을 생성하거나 기존 역할을 업데이트할 수 있습니다.

**참고**  
`GET` 요청인 경우에만 함수에 `s3-object-lambda:WriteGetObjectResponse` 권한이 필요합니다.

**IAM 콘솔에서 실행 역할을 생성하려면**

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. 왼쪽 탐색 창에서 **역할**을 선택합니다.

1. **역할 생성**을 선택합니다.

1. **Common use cases(일반 사용 사례)**에서 **Lambda**를 선택합니다.

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

1. **Add permissions**(권한 추가) 페이지에서 AWS 관리형 정책인 [https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$serviceLevelSummary](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$serviceLevelSummary)를 검색한 다음 정책 이름 옆의 확인란을 선택합니다.

   이 정책에는 `s3-object-lambda:WriteGetObjectResponse` 작업이 포함되어야 합니다.

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

1. **Name, review, and create**(이름, 검토 및 생성) 페이지에서 **Role name**(역할 이름)에 **s3-object-lambda-role**을 입력합니다.

1. (선택 사항) 이 역할에 대한 설명 및 태그를 추가합니다.

1. **역할 생성**을 선택합니다.

1. 새로 생성된 **s3-object-lambda-role**을 Lambda 함수의 실행 역할로 적용합니다. 이 작업은 Lambda 콘솔에서 Lambda 함수를 생성하는 동안 또는 이후에 수행할 수 있습니다.

실행 역할에 대한 자세한 내용은 *AWS Lambda 개발자 가이드*의 [Lambda 실행 역할](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)을 참조하십시오.

## 객체 Lambda 액세스 포인트에 컨텍스트 키 사용
<a name="olap-keys"></a>

S3 객체 Lambda는 요청의 연결 서명과 관련된 `s3-object-lambda:TlsVersion` 또는 `s3-object-lambda:AuthType`과 같은 컨텍스트 키를 평가합니다. `s3:prefix`와 같은 다른 모든 컨텍스트 키는 Amazon S3에 의해 평가됩니다.