보안 엔지니어가 MyLambdaFunction이라는 AWS Lambda 함수를 문제해결하고 있습니다. 함수가 DOC-EXAMPLE-BUCKET이라는 Amazon S3 버킷의 객체를 읽으려고 할 때 오류가 발생합니다. S3 버킷에는 다음 버킷 정책이 있습니다. 보안 엔지니어가 Lambda 함수가 버킷 객체를 읽을 수 있도록 정책에 어떤 변경을 해야 합니까?
- A. Condition 요소를 제거하고 Principal 요소를 다음으로 변경합니다.
- B. Action 요소를 다음으로 변경합니다.
- C. Resource 요소를 "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"로 변경합니다.✓ 정답
- D. Resource 요소를 "arn:aws:lambda:::function:MyLambdaFunction"로 변경하고 Principal 요소를 다음으로 변경합니다.
해설
【핵심 용어】 ▸ S3 Bucket Policy — 버킷 수준에서 리소스 접근을 제어하는 정책 ▸ Resource ARN — 정책이 적용되는 AWS 리소스의 식별자 【정답 포인트】 ▸ Lambda가 S3 객체를 읽으려면 s3:GetObject 권한이 필요합니다 ▸ Resource는 버킷 자체(arn:aws:s3:::bucket-name)가 아니라 버킷 내 객체(arn:aws:s3:::bucket-name/*)를 지정해야 합니다 ▸ 버킷 정책의 Resource 요소는 버킷의 객체에 대한 권한을 명시해야 함 【오답 체크】 (A) Condition 제거는 정책 제약을 약화시킬 뿐 근본 문제를 해결하지 못함 (B) Action 변경만으로는 Resource 범위 부족 문제를 해결하지 못함 (D) Lambda ARN은 S3 버킷 정책의 Resource로 부적절하며, Principal 변경도 필요하지 않음 【시험 포인트】 ▸ S3 버킷 정책에서 객체 접근은 "/*" 와일드카드로 지정 ▸ 정책 구조: Principal(누가) → Action(무엇) → Resource(어디에) ▸ GetObject 권한은 객체 수준이므로 Resource에 /* 필수