適用於 S3 Tables 的資源型政策 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適用於 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" }] }