Amazon S3 버킷에 특정 파일 유형만 업로드할 수 있도록 하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 4월 27일

Amazon Simple Storage Service(Amazon S3) 버킷에 특정 파일 유형만 저장하려고 합니다. 버킷에서 이러한 파일 유형만 수락하도록 업로드를 제한하려면 어떻게 해야 합니까?

해결 방법

버킷 정책에 다음을 수행하는 명령문을 추가합니다.

  • 원하는 파일 유형의 확장명이 포함된 객체에 대해서만 s3:PutObject 작업을 허용합니다.
  • 원하는 파일 유형의 확장명이 없는 객체에 대해서는 s3:PutObject 작업을 명시적으로 거부합니다.
    참고: 이 명시적 Deny 문은 Amazon S3 리소스에 대한 전체 액세스 권한이 있는 사용자에게 file-type 요구 사항을 적용합니다.

예를 들어, 다음 예제 버킷 정책은 exampleuser에 대한 s3:PutObject 작업을 파일 확장자가 .jpg, .png 또는 .gif인 객체에 대해서만 허용합니다.

경고: 이 예제 버킷 정책에는 명시적 거부 문이 포함됩니다. 사용자가 지정된 조건을 충족하지 않는 경우 버킷 정책을 입력한 사용자도 버킷에 대한 액세스가 거부될 수 있습니다. 따라서 저장하기 전에 버킷 정책을 신중하게 검토해야 합니다. 실수로 잠근 경우 실수로 모든 사용자의 Amazon S3 버킷 액세스를 거부했습니다. 액세스 권한을 다시 얻으려면 어떻게 해야 합니까?를 참조하세요.

{
  "Version": "2012-10-17",
  "Id": "Policy1464968545158",
  "Statement": [
    {
      "Sid": "Stmt1464968483619",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111111:user/exampleuser"
      },
      "Action": "s3:PutObject",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.png",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.gif"
      ]
    },
    {
      "Sid": "Stmt1464968483619",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "NotResource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.png",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.gif"
      ]
    }
  ]
}

참고: 첫 번째 Principal 값에는 업로드 권한을 부여하려는 사용자의 ARN(Amazon 리소스 이름)을 나열합니다. ResourceNotResource 값에서는 DOC-EXAMPLE-BUCKET을 버킷 이름으로 대체해야 합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?