Object Lambda 접근 지점용 IAM 정책 구성
Object Lambda 접근 지점용 IAM 정책 구성 (Configuring IAM policies for Object Lambda Access Points)
Object Lambda 접근 지점을 사용하려면 네 가지 리소스가 모두 알맞은 권한을 가져야 해요. 권한을 어떻게 구성하는지 하나씩 살펴볼게요.
참고 2025년 11월 7일부터 S3 Object Lambda는 현재 이 서비스를 사용 중인 기존 고객과 일부 AWS 파트너 네트워크(APN) 파트너만 이용할 수 있어요. S3 Object Lambda와 비슷한 기능이 필요하다면 Amazon S3 Object Lambda 가용성 변경 문서를 확인해 주세요.
출처: 문서
본문
Amazon S3 접근 지점은 AWS Identity and Access Management(IAM) 리소스 정책을 지원해요. 이를 사용해 리소스, 사용자 또는 기타 조건별로 접근 지점 사용을 제어할 수 있죠. Object Lambda 접근 지점의 선택적 리소스 정책이나 지원 접근 지점의 리소스 정책을 통해 접근을 제어할 수 있어요. 단계별 예제는 S3 Object Lambda로 애플리케이션용 데이터 변환 자습서와 S3 Object Lambda와 Amazon Comprehend로 PII 데이터 감지 및 편집 자습서를 참고하세요.
Object Lambda 접근 지점을 사용하려면 다음 네 가지 리소스에 권한을 부여해야 해요.
- IAM 자격 증명 — 사용자나 역할 같은 IAM 자격 증명. IAM 자격 증명과 모범 사례에 대한 자세한 내용은 IAM 사용자 안내서의 IAM 자격 증명(사용자, 사용자 그룹, 역할)을 참고하세요.
- 표준 접근 지점 — S3 버킷이나 Amazon FSx for OpenZFS 볼륨 같은 기본 데이터 소스에 연결된 표준 접근 지점. Object Lambda 접근 지점에서 작업할 때 이 표준 접근 지점을 **지원 접근 지점(supporting access point)**이라고 불러요.
- Object Lambda 접근 지점.
- AWS Lambda 함수.
중요 정책을 저장하기 전에 AWS Identity and Access Management Access Analyzer의 보안 경고, 오류, 일반 경고와 제안을 모두 해결했는지 확인하세요. IAM Access Analyzer는 IAM 정책 문법과 모범 사례에 대해 정책 검사(policy checks)를 실행해 정책을 검증해요. 이 검사는 소견을 생성하고 실행 가능한 권장 사항을 제공해서, 기능적이면서 보안 모범 사례에 부합하는 정책을 작성하도록 도와줘요. IAM Access Analyzer로 정책을 검증하는 방법에 대한 자세한 내용은 IAM 사용자 안내서의 IAM Access Analyzer 정책 검증을 참고하세요. IAM Access Analyzer가 반환하는 경고, 오류, 제안 목록은 IAM Access Analyzer 정책 검사 참조를 확인하세요.
다음 정책 예제들은 다음 리소스가 있다고 가정해요.
- ARN이
arn:aws:s3:::amzn-s3-demo-bucket1인 Amazon S3 버킷 - 해당 버킷 위에 ARN이
arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point인 표준 접근 지점 - ARN이
arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap인 Object Lambda 접근 지점 - ARN이
arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction인 AWS Lambda 함수
참고 계정의 Lambda 함수를 사용한다면 정책 문에 특정 함수 버전을 포함해야 해요. 다음 예제 ARN에서 버전은
1로 표시돼요.arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1. Lambda는$LATEST버전에 IAM 정책을 추가하는 것을 지원하지 않아요. Lambda 함수 버전에 대한 자세한 내용은 AWS Lambda 개발자 안내서의 Lambda 함수 버전을 참고하세요.
예제 — 표준 접근 지점에 접근 제어를 위임하는 버킷 정책
다음 S3 버킷 정책 예제는 버킷의 표준 접근 지점에 버킷에 대한 접근 제어를 위임해요. 이 정책은 버킷 소유자 계정이 소유한 모든 접근 지점에 대한 전체 접근을 허용해요. 따라서 이 버킷에 대한 모든 접근은 접근 지점에 연결된 정책으로 제어돼요. 사용자는 접근 지점을 통해서만 버킷에서 읽을 수 있는데, 이는 작업이 접근 지점을 통해서만 호출될 수 있다는 뜻이에요. 자세한 내용은 접근 지점에 접근 제어 위임을 참고하세요.
{
"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"
}
}
}
]
}
예제 — 사용자에게 Object Lambda 접근 지점 사용에 필요한 권한을 부여하는 IAM 정책
다음 IAM 정책은 사용자에게 Lambda 함수, 표준 접근 지점, Object 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 실행 역할 권한 활성화
Object Lambda 접근 지점에 GET 요청을 보내면, 여러분의 Lambda 함수는 데이터를 S3 Object Lambda 접근 지점으로 보낼 권한이 필요해요. 이 권한은 Lambda 함수의 실행 역할에 s3-object-lambda:WriteGetObjectResponse 권한을 활성화해 제공돼요. 새 실행 역할을 만들거나 기존 역할을 업데이트하면 돼요.
참고 함수에
s3-object-lambda:WriteGetObjectResponse권한이 필요한 것은GET요청을 보낼 때뿐이에요.
IAM 콘솔에서 실행 역할을 만들려면 다음 단계를 따라 주세요.
- https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.
- 왼쪽 탐색 창에서 **역할(Roles)**을 선택해요.
- **역할 만들기(Create role)**를 선택해요.
- **일반 사용 사례(Common use cases)**에서 Lambda를 선택해요.
- **다음(Next)**을 선택해요.
- 권한 추가(Add permissions) 페이지에서 AWS 관리형 정책인
AmazonS3ObjectLambdaExecutionRolePolicy를 검색하고 정책 이름 옆의 확인란을 선택해요. 이 정책에는s3-object-lambda:WriteGetObjectResponse액션이 포함되어야 해요. - **다음(Next)**을 선택해요.
- 이름, 검토 및 만들기(Name, review, and create) 페이지의 **역할 이름(Role name)**에
s3-object-lambda-role을 입력해요. - (선택 사항) 이 역할에 설명과 태그를 추가해요.
- **역할 만들기(Create role)**를 선택해요.
새로 만든 s3-object-lambda-role을 Lambda 함수의 실행 역할로 적용해요. 이 작업은 Lambda 콘솔에서 함수를 만들 때나 만든 뒤에 할 수 있어요. 실행 역할에 대한 자세한 내용은 AWS Lambda 개발자 안내서의 Lambda 실행 역할을 참고하세요.
Object Lambda 접근 지점과 함께 컨텍스트 키 사용하기
S3 Object Lambda는 요청의 연결 또는 서명과 관련된 s3-object-lambda:TlsVersion이나 s3-object-lambda:AuthType 같은 컨텍스트 키를 평가해요. s3:prefix 같은 나머지 모든 컨텍스트 키는 Amazon S3가 평가해요.