S3 Tables의 리소스 기반 정책
S3 Tables은 테이블 버킷 및 테이블에 대한 액세스를 관리하기 위한 리소스 기반 정책, 즉 테이블 버킷 정책 및 테이블 정책을 제공합니다. 테이블 버킷 정책을 사용하여 테이블 버킷, 네임스페이스 또는 테이블 수준에서 API 액세스 권한을 부여할 수 있습니다. 테이블 버킷에 연결된 권한은 정책 정의에 따라 버킷의 모든 테이블 또는 버킷의 특정 테이블에 적용될 수 있습니다. 테이블 정책을 사용하여 테이블 수준에서 권한을 부여할 수 있습니다.
S3 Tables이 요청을 수신하면 먼저 요청자에게 필요한 권한이 있는지 확인합니다. 요청을 승인할지 결정할 때 모든 관련 액세스 정책, 사용자 정책 및 리소스 기반 정책(IAM 사용자 정책, IAM 역할 정책, 테이블 버킷 정책 및 테이블 정책)을 평가합니다. 예를 들어 테이블 버킷 정책이 버킷의 테이블(DeleteTable
포함)에서 모든 작업을 수행할 수 있는 권한을 사용자에게 부여하지만 개별 테이블에 모든 사용자에 대해 DeleteTable
작업을 거부하는 테이블 정책이 있는 경우 사용자는 테이블을 삭제할 수 없습니다.
다음 주제에는 테이블 및 테이블 버킷 정책의 예가 포함되어 있습니다. 이러한 정책을 사용하려면 사용자 입력 자리 표시자
를 실제 정보로 바꾸세요.
참고
-
테이블을 수정할 수 있는 권한을 부여하는 모든 정책에는
GetTableMetadataLocation
이 테이블 루트 파일에 액세스할 수 있는 권한이 포함되어야 합니다. 자세한 내용은GetTableMetadataLocation
단원을 참조하십시오. -
테이블에서 쓰기 또는 삭제 활동을 수행할 때마다 액세스 정책에
UpdateTableMetadataLocation
에 대한 권한을 포함합니다. -
버킷 수준 작업에 대한 액세스를 관리하기 위해서는 테이블 버킷 정책을 사용하고 테이블 수준 작업에 대한 액세스를 관리하기 위해서는 테이블 정책을 사용하는 것이 좋습니다. 여러 테이블에서 동일한 권한 세트를 정의하려는 경우 테이블 버킷 정책을 사용하는 것이 좋습니다.
주제
예 1: 계정의 버킷에서 PutBucketMaintenanceConfiguration
에 대한 액세스를 허용하는 테이블 버킷 정책
다음 테이블 버킷 정책 예시는 PutBucketMaintenanceConfiguration
에 대한 액세스를 허용하여 IAM data steward
가 계정의 모든 버킷에서 참조되지 않은 객체를 삭제할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account_id
:role/datasteward" }, "Action": ["s3tables:PutTableBucketMaintenanceConfiguration"], "Resource":"arn:aws:s3tables:region:account_id
:bucket/*" }] }
예 2: hr
네임스페이스에 저장된 테이블에 대한 읽기(SELECT) 액세스를 허용하는 테이블 버킷 정책
다음 테이블 버킷 정책 예시에서는 AWS 계정 ID 123456789012
의 사용자인 Jane이 테이블 버킷의 hr
네임스페이스에 저장된 테이블에 액세스할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": [ "s3tables:GetTableData", "s3tables:GetTableMetadataLocation" ], "Resource":{ "arn:aws:s3tables:
region
:account_id
:bucket/amzn-s3-demo-bucket1
/table/*"} "Condition": { "StringLike": { "s3tables:namespace": "hr" } } ] }
예 3: 사용자가 테이블을 삭제하도록 허용하는 테이블 정책
다음 테이블 정책 예시는 IAM 역할 data steward
가 테이블을 삭제하도록 허용합니다.
{ "Version": "2012-10-17", "Id": "DeleteTable", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account_id
:role/datasteward
" }, "Action": [ "s3tables:DeleteTable", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableData", "s3tables:GetTableMetadataLocation" ], "Resource":"arn:aws:s3tables:region
:account_id
:bucket/amzn-s3-demo-bucket1
/table/tableUUID
" }] }