메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

정책에서 권한 지정

Amazon S3에서는 정책에서 지정할 수 있는 권한 집합을 정의합니다. 이들은 각각 특정 Amazon S3 작업에 매핑되는 키워드입니다(Amazon Simple Storage Service API Reference에서 Operations on BucketsOperations on Objects 단원 참조).

이 단원에서는 정책에서 지정할 수 있는 객체 작업 권한의 목록을 제공합니다.

객체 작업에 대한 Amazon S3 권한

권한 Amazon S3 작업
s3:AbortMultipartUpload 멀티파트 업로드 중단
s3:DeleteObject DELETE Object

s3:DeleteObjectTagging

DELETE Object 태그 지정
s3:DeleteObjectVersion DELETE Object(특정 버전의 객체)

s3:DeleteObjectVersionTagging

DELETE Object 태그 지정(특정 버전의 객체용)
s3:GetObject

GET Object, HEAD Object, GET Object torrent

버전 관리를 사용하는 버킷에 이 권한을 부여하면 항상 최신 버전의 데이터를 가져옵니다.

s3:GetObjectAcl GET Object ACL

s3:GetObjectTagging

GET Object 태그 지정
s3:GetObjectTorrent GET Object torrent
s3:GetObjectVersion

GET Object, HEAD Object, GET Object torrent

버전별 객체 데이터에 대한 권한을 부여하려면 이 권한을 부여해야 합니다. 즉, 이러한 요청 중 어느 하나를 제기할 때 버전 번호를 지정하는 경우, 이 Amazon S3 권한이 필요합니다.

s3:GetObjectVersionAcl GET ACL(특정 버전의 객체용)

s3:GetObjectVersionTagging

GET Object 태그 지정(특정 버전의 객체에 적용)
s3:GetObjectVersionTorrent GET Object Torrent versioning
s3:ListMultipartUploadParts 파트 목록 조회
s3:PutObject

PUT Object, POST Object, 멀티파트 업로드 시작, 파트 업로드, 멀티파트 업로드 완료, PUT Object - Copy

s3:PutObjectAcl PUT Object ACL

s3:PutObjectTagging

PUT Object 태그 지정
s3:PutObjectVersionAcl PUT Object(특정 버전의 객체용)

s3:PutObjectVersionTagging

PUT Object 태그 지정(특정 버전의 객체에 적용)

s3:RestoreObject

POST Object restore

다음 버킷 정책 예제에서는 사용자(Dave)에게 s3:PutObjects3:PutObjectAcl 권한을 부여합니다. Principal 요소를 제거하면 이 정책을 사용자에게 연결할 수 있습니다. 이는 객체 작업이며, 따라서 Resource ARN의 상대 ID 부분에서 객체(examplebucket/*)를 식별합니다. 자세한 내용은 정책에서 리소스 지정 단원을 참조하십시오.

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:user/Dave" }, "Action": ["s3:PutObject","s3:PutObjectAcl"], "Resource": "arn:aws:s3:::examplebucket/*" } ] }

와일드카드를 사용하여 전체 Amazon S3 작업에 대한 권한을 부여할 수 있습니다.

Copy
"Action": "*"

이 단원에서는 정책에서 지정할 수 있는 버킷 작업 관련 권한의 목록을 제공합니다.

버킷 작업에 관련된 Amazon S3 권한

권한 키워드 적용되는 Amazon S3 작업
s3:CreateBucket PUT Bucket
s3:DeleteBucket DELETE Bucket
s3:ListBucket GET Bucket (List Objects), HEAD Bucket
s3:ListBucketVersions GET Bucket Object versions
s3:ListAllMyBuckets GET Service
s3:ListBucketMultipartUploads 멀티파트 업로드 목록 조회

다음 사용자 정책 예제에서는 사용자에게 s3:CreateBucket, s3:ListAllMyBucketss3:GetBucketLocation 권한을 부여합니다. 이러한 모든 권한에 대해 Resource ARN의 상대 ID 부분을 "*"로 설정합니다. 다른 모든 버킷 작업에 대해 버킷 이름을 지정해야 합니다. 자세한 내용은 정책에서 리소스 지정 단원을 참조하십시오.

Copy
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::*" ] } ] }

사용자가 콘솔을 사용하여 버킷을 확인하려는 경우와 이러한 버킷의 콘텐츠를 확인하려는 경우, 콘솔에서는 사용자에게 s3:ListAllMyBucketss3:GetBucketLocation 권한을 요구합니다. 예제 연습은 안내 예제: 사용자 정책을 통해 버킷에 대한 액세스 제어을 참조하십시오.

이 단원에서는 정책에서 지정할 수 있는 버킷 하위 리소스 작업 관련 권한의 목록을 제공합니다.

버킷 하위 리소스 작업에 관련된 Amazon S3 권한

권한 적용되는 Amazon S3 작업
s3:DeleteBucketPolicy DELETE Bucket policy
s3:DeleteBucketWebsite DELETE 버킷 웹 사이트
s3:DeleteReplicationConfiguration DELETE Bucket replication
s3:GetAccelerateConfiguration GET Bucket 가속
s3:GetAnalyticsConfiguration GET Bucket 분석, List Bucket 분석 구성
s3:GetBucketAcl GET Bucket acl
s3:GetBucketCORS GET Bucket cors
s3:GetBucketLocation GET Bucket location
s3:GetBucketLogging GET Bucket logging
s3:GetBucketNotification GET Bucket notification
s3:GetBucketPolicy GET Bucket policy
s3:GetBucketRequestPayment GET Bucket requestPayment
s3:GetBucketTagging GET Bucket tagging
s3:GetBucketVersioning GET Bucket versioning
s3:GetBucketWebsite GET 버킷 웹 사이트
s3:GetInventoryConfiguration GET Bucket 인벤토리, List Bucket 인벤토리 구성
s3:GetLifecycleConfiguration GET Bucket lifecycle
s3:GetMetricsConfiguration GET Bucket 지표, List Bucket 지표 구성
s3:GetReplicationConfiguration GET Bucket replication
s3:PutAccelerateConfiguration PUT Bucket 가속
s3:PutAnalyticsConfiguration PUT Bucket 분석, DELETE Bucket 분석
s3:PutBucketAcl PUT Bucket acl
s3:PutBucketCORS PUT Bucket cors
s3:PutBucketLogging PUT Bucket logging
s3:PutBucketNotification PUT Bucket notification
s3:PutBucketPolicy PUT Bucket policy
s3:PutBucketRequestPayment PUT Bucket requestPayment
s3:PutBucketTagging DELETE Bucket 태그 지정, PUT Bucket 태그 지정
s3:PutBucketVersioning PUT Bucket versioning
s3:PutBucketWebsite PUT 버킷 웹 사이트
s3:PutInventoryConfiguration PUT Bucket 인벤토리, DELETE Bucket 인벤토리
s3:PutLifecycleConfiguration PUT Bucket lifecycle
s3:PutMetricsConfiguration PUT Bucket 지표, DELETE Bucket 지표
s3:PutReplicationConfiguration PUT Bucket replication

다음 사용자 정책은 사용자 Dave에게 examplebucket 버킷에 대한 s3:GetBucketAcl 권한을 부여합니다.

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-ID:user/Dave" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": "arn:aws:s3:::examplebucket" } ] }

Amazon S3에서 객체의 수명이 만료되었을 때 이를 제거할 수 있도록 명시적으로 DELETE Object API를 호출하거나 해당 수명 주기(객체 수명 주기 관리 참조)를 구성하여 객체를 삭제할 수 있습니다. 객체를 삭제하지 못하도록 명시적으로 사용자 또는 계정을 차단하려면 이들에 대해 s3:DeleteObject, s3:DeleteObjectVersions3:PutLifecycleConfiguration 권한을 명시적으로 거부합니다. 기본적으로 사용자에게는 권한이 없습니다. 그러나 사용자를 만들고, 그룹에 사용자를 추가하고, 이들에게 권한을 부여하는 동안 사용자에게 의도치 않은 특정 권한을 부여하게 될 수 있습니다. 이는 명시적 거부를 사용할 수 있는 경우로, 사용자가 보유할 수 있는 다른 모든 권한에 우선하며 특정 작업에 대한 사용자 권한을 거부합니다.