View a markdown version of this page

Amazon S3 Files 액세스 구성 - AWS Lambda

Amazon S3 Files 액세스 구성

Amazon S3 Files는 모든 AWS 컴퓨팅 리소스를 Amazon S3의 데이터에 직접 연결하는 공유 파일 시스템을 제공합니다. Amazon S3 Files를 사용하면 로컬 탑재 경로에서 읽기 및 쓰기와 같은 표준 파일 시스템 작업을 통해 Amazon S3 객체를 파일로 액세스할 수 있습니다. Amazon S3 Files에 대해 자세히 알아보세요.

사전 조건 및 설정

Lambda 함수로 Amazon S3 Files를 설정하기 전에 다음 조건을 갖추었는지 확인합니다.

  • Lambda 함수와 동일한 계정 및 AWS 리전에서 사용 가능한 상태의 Amazon S3 파일 시스템 및 탑재 대상.

  • 탑재 대상과 동일한 VPC에 있는 Lambda 함수. 함수가 배포되는 각 서브넷에 탑재 대상이 있어야 합니다.

  • Lambda 함수와 탑재 대상 사이에서 NFS 트래픽(포트 2049)을 허용하는 보안 그룹. 보안 그룹 구성에 대해 자세히 알아봅니다.

자세한 내용은 Amazon S3 사용 설명서에서 다음 주제를 참조하세요.

실행 역할 및 사용자 권한

Amazon S3 Files 파일 시스템에 액세스하려면 함수의 실행 역할에 다음 권한이 있어야 합니다.

실행 역할 권한
  • s3files:ClientMount – 파일 시스템을 탑재하는 데 필요합니다.

  • s3files:ClientWrite – 읽기-쓰기 액세스에 필요합니다. 읽기 전용 연결에는 필요하지 않습니다.

이러한 권한은 AmazonS3FilesClientReadWriteAccess 관리형 정책에 포함되어 있습니다. 또한 실행 역할에는 파일 시스템의 VPC에 연결하는 데 필요한 권한도 있어야 합니다.

참고

Amazon S3 Files는 Amazon S3에서 직접 읽어 처리량을 최적화합니다. Amazon S3에서의 직접 읽기는 512MB 이상의 메모리로 구성된 함수에서만 지원됩니다.

Amazon S3에서 직접 읽으려면 함수에 다음 권한도 필요합니다.

  • s3:GetObject

  • s3:GetObjectVersion

필요한 권한에 대한 자세한 내용은 Amazon S3 사용 설명서IAM permissions for Amazon S3 Files를 참조하세요.

콘솔에서 파일 시스템을 구성할 때 Lambda는 사용자 권한을 사용하여 탑재 대상 및 액세스 포인트를 확인합니다. 파일 시스템에 연결되도록 함수를 구성하려면 사용자에게 다음 권한이 필요합니다.

사용자 권한
  • s3files:ListFileSystems

  • s3files:ListAccessPoints

  • s3files:GetFileSystem

  • s3files:GetAccessPoint

  • s3files:CreateAccessPoint – 콘솔에서 함수에 파일 시스템을 연결하는 경우에 필요합니다.

다음 예제 정책에서는 읽기-쓰기 액세스 권한이 있는 Amazon S3 파일 시스템을 탑재하고 Amazon S3에서 직접 읽기 위한 권한을 함수의 실행 역할에 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3FilesLambdaAccess", "Effect": "Allow", "Action": [ "s3files:ClientMount", "s3files:ClientWrite" ], "Resource": "*" }, { "Sid": "S3DirectRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::bucket-name/*" }, { "Sid": "S3FilesConsoleSetup", "Effect": "Allow", "Action": [ "s3files:ListFileSystems", "s3files:ListAccessPoints", "s3files:GetFileSystem", "s3files:GetAccessPoint", "s3files:CreateAccessPoint" ], "Resource": "*" } ] }

파일 시스템에 연결(콘솔)

함수는 VPC의 로컬 네트워크를 통해 파일 시스템에 연결됩니다. 함수가 연결되는 서브넷은 파일 시스템의 마운트 지점을 포함하는 동일한 서브넷이거나 NFS 트래픽(포트 2049)을 파일 시스템으로 라우팅할 수 있는 동일한 가용 영역의 서브넷일 수 있습니다.

참고

함수가 VPC에 아직 연결되어 있지 않은 경우 Lambda 함수에 Amazon VPC의 리소스에 대한 액세스 권한 부여 단원을 참조하세요.

S3 Files 액세스를 구성하는 방법
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 함수를 선택합니다.

  3. 구성을 선택한 다음 파일 시스템을 선택하세요.

  4. 파일 시스템 추가를 선택하거나 기존 구성을 수정하려면 편집을 선택하세요.

  5. S3 Files를 선택하세요.

  6. 다음 속성을 구성합니다.

    • S3 파일 시스템 - 드롭다운에서 파일 시스템을 선택합니다.

    • 액세스 포인트(선택 사항) - 액세스 포인트를 선택합니다. 파일 시스템에 액세스 포인트가 없는 경우 Lambda는 저장할 때 액세스 포인트를 자동으로 생성합니다(UID/GID 1000:1000, 루트 디렉터리 /lambda, 권한 755). 액세스 포인트가 있는 경우 하나의 액세스 포인트를 선택해야 합니다.

    • 로컬 마운트 경로 - 파일 시스템이 Lambda 함수에서 마운트되는 위치로, /mnt/로 시작합니다.

  7. 저장을 선택합니다.

다음에 Lambda 함수를 간접 호출할 때 파일 시스템이 연결됩니다.