本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 S3 Tables 的資源型政策
S3 Tables 可提供資源型政策,用於管理對資料表儲存貯體和資料表的存取:資料表儲存貯體政策和資料表政策。您可以使用資料表儲存貯體政策,授予資料表儲存貯體、命名空間或資料表層級的 API 存取許可。連結至資料表儲存貯體的許可能夠套用到儲存貯體中的所有資料表,或套用到儲存貯體中的特定資料表,具體情況取決於政策定義。您可以使用資料表政策來授予資料表層級的許可。
當 S3 Tables 收到請求時,會先驗證請求者是否具有必要的許可。其會評估所有相關存取政策、使用者政策和資源型政策,以決定是否授權請求 (IAM 使用者政策、IAM 角色政策、資料表儲存貯體政策和資料表政策)。例如,如果資料表儲存貯體政策授予使用者許可,以對儲存貯體 (包括 DeleteTable
) 中的資料表執行所有動作,但個別資料表具有拒絕所有使用者 DeleteTable
動作的資料表政策,則使用者無法刪除資料表。
下列主題包含資料表和資料表儲存貯體政策的範例。若要使用這些政策,請以為您自己的資訊取代使用者輸入預留位置
。
注意
-
授予修改資料表許可的每個政策,都應包含供
GetTableMetadataLocation
存取資料表根檔案的許可。如需詳細資訊,請參閱GetTableMetadataLocation
。 -
每次在資料表上執行寫入或刪除活動時,請在存取政策中包含
UpdateTableMetadataLocation
的許可。 -
建議您使用資料表儲存貯體政策來管控對儲存貯體層級動作的存取,並使用資料表政策來管控對資料表層級動作的存取。如果您想要跨多個資料表定義相同的許可集,則建議您使用資料表儲存貯體政策。
主題
範例 1:資料表儲存貯體政策允許存取帳戶中儲存貯體的 PutBucketMaintenanceConfiguration
下列範例資料表儲存貯體政策允許 IAM data steward
透過允許存取 PutBucketMaintenanceConfiguration
來刪除帳戶中所有儲存貯體的未參考物件。
{ "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:資料表儲存貯體政策,允許讀取 (SELECT) 存取存放在hr
命名空間中的資料表
以下範例資料表儲存貯體政策允許來自 AWS 帳戶 ID 的使用者 Jane 123456789012
存取存放在資料表儲存貯體中hr
命名空間中的資料表。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": [ "s3tables:GetTableData", "s3tables:GetTableMetadataLocation" ], "Resource": "arn:aws:s3tables:
region
:account_id
:bucket/amzn-s3-demo-table-bucket/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
" }] }