태그 지정 및 액세스 제어 정책 - Amazon Simple Storage Service

태그 지정 및 액세스 제어 정책

또한 권한 정책(버킷 및 사용자 정책)을 사용하여 객체 태그 지정과 관련된 권한을 관리할 수 있습니다. 정책 작업에 대해서는 다음 주제를 참조하십시오.

객체 태그를 통해 권한 관리에 대한 액세스 제어를 세부적으로 수행할 수 있습니다. 객체 태그를 바탕으로 조건적인 권한을 부여할 수 있습니다. Amazon S3에서는 객체 태그 기반의 조건부 권한을 부여하는 데 사용할 수 있는 다음과 같은 조건 키를 지원합니다.

  • s3:ExistingObjectTag/<tag-key> - 이 조건 키를 사용하여 기존 객체 태그에 특정 태그 키 및 값이 있다는 것을 확인합니다.

    참고

    PUT ObjectDELETE Object 작업에 대한 권한을 부여할 때 이 조건 키는 지원되지 않습니다. 즉 기존 태그에 기반을 둔 객체를 삭제 또는 덮어쓸 수 있는 권한을 사용자에게 부여하거나 거부할 수 있는 정책을 생성할 수 없습니다.

  • s3:RequestObjectTagKeys - 이 조건을 사용하여 객체에 대해 허용하고자 하는 태그 키를 제한합니다. 이것은 PutObjectTagging 및 PutObject, 그리고 POST 객체 요청을 사용하여 객체에 태그를 붙일 때 유용합니다.

  • s3:RequestObjectTag/<tag-key> - 이 조건을 사용하여 객체에 대해 허용하고자 하는 태그 키 및 값을 제한합니다. 이것은 PutObjectTagging 및 PutObject, 그리고 POST Bucket 요청을 사용하여 객체에 태그를 붙일 때 유용합니다.

Amazon S3 서비스별 조건 키 전체 목록은 조건 키를 사용한 버킷 정책 예시 단원을 참조하세요. 다음 권한 정책들은 객체 태그 지정을 통해 어떻게 세부적인 액세스 권한 관리가 가능한지 보여줍니다.

예 1: 사용자가 특정 태그 및 키 값이 있는 객체만 읽도록 허용

다음 권한 정책은 environment: production 태그 키 및 값이 있는 객체만 사용자가 읽을 수 있도록 제한합니다. 이 정책은 s3:ExistingObjectTag 조건 키를 사용하여 태그 키 및 값을 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": ["s3:GetObject", "s3:GetObjectVersion"], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": {"s3:ExistingObjectTag/environment": "production"} } } ] }
예 2. 사용자가 추가할 수 있는 객체 태그 키 제한

다음 권한 정책은 사용자에게 s3:PutObjectTagging 작업을 수행할 수 있는 권한을 부여합니다. 이에 따라 사용자는 기존 객체에 태그를 붙일 수 있습니다. 조건이 s3:RequestObjectTagKeys 조건 키를 사용하여 Owner, CreationDate 등의 허용 태그 키 세트를 지정합니다. 자세한 내용은 IAM 사용 설명서다수의 키 또는 값을 사용하는 조건 생성을 참조하십시오.

요청에 지정된 모든 태그 키가 인증된 태그 키임을 정책이 보장합니다. 지정된 값 중 최소 1개가 요청에 존재함을 조건 내의 ForAnyValue 한정자가 보장합니다.

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }
예 3. 사용자가 객체 태그를 추가할 수 있게 하려면 특정 태그 키 및 값 필요

다음 권한 정책은 s3:PutObjectTagging 작업을 수행할 수 있는 권한을 사용자에게 부여하여, 사용자가 기존 객체에 태그를 추가할 수 있게 합니다. 이 조건은 값이 X로 설정된 (Project 등의) 특정 태그 키를 포함하도록 사용자에게 요구합니다.

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X" } } } ] }