S3 Access Grants 概念 - Amazon Simple Storage Service

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

S3 Access Grants 概念

S3 Access Grants 導入下列概念來簡化其存取結構描述:

S3 Access Grants 執行個體

S3 Access Grants 執行個體是個別授權的邏輯容器,負責定義誰擁有何種 Amazon S3 資料的何種層級存取權。每個 AWS 區域 的每個 AWS 帳戶可以擁有一個 S3 Access Grants 執行個體。您可以使用此 S3 Access Grants 執行個體來控制對相同帳戶和中所有儲存貯體的存取 AWS 區域。如果您想要使用 S3 存取授權授與公司目錄中使用者和群組身分的存取權,您還必須將 S3 Access Grants 執行個體與 AWS Identity and Access Management (IAM) 身分中心執行個體建立關聯。

位置

位置定義 S3 Access Grants 執行個體可以授予存取權的資料。S3 Access Grants 的運作方式是供應存取權範圍限於特定 S3 字首、儲存貯體或物件的 IAM 憑證。您可以將 S3 Access Grants 位置與 IAM 角色建立關聯,從中建立這些臨時工作階段。最常見的位置組態是整個 S3 Access Grants 執行個體使用單一位置 s3://,可涵蓋帳戶和 AWS 區域中所有 S3 儲存貯體的存取權。您也可以在 S3 Access Grants 執行個體中建立多個位置。例如,您可以將儲存貯體註冊為位置 s3://DOC-EXAMPLE-BUCKET1,並將授權限於此儲存貯體,您也可以註冊預設位置 s3://

授權

若要縮小某個位置內的存取範圍,您可以建立個別授權。S3 Access Grants 執行個體中的個別授權可讓特定實體 (IAM 主體或公司目錄中的使用者或群組) 存取 Amazon S3 字首、儲存貯體或物件。您可以針對每個授權定義不同的範圍 (字首、儲存貯體或物件) 和存取層級 (READWRITEREADWRITE)。例如,您可能擁有可讓特定公司目錄群組以 01234567-89ab-cdef-0123-456789abcdef READ 方式存取 s3://DOC-EXAMPLE-BUCKET1/projects/items/* 的授權。此授權可讓該群組中的使用者以 READ 方式存取名為 DOC-EXAMPLE-BUCKET1 的儲存貯體中索引鍵名稱字首為 projects/items/ 的每個物件。

S3 Access Grants 臨時憑證

應用程式可透過呼叫新的 S3 API 作業來請求 just-in-time 存取登入資料 GetDataAccess,以請求存取權限層級為、或的單一物件READWRITE、前置詞或儲存貯體READWRITE。S3 Access Grants 執行個體會根據自有的授權來評估 GetDataAccess 請求。如果有相符的授權,S3 Access Grants 便會擔任與相符授權的位置相關聯的 IAM 角色。然後,S3 Access Grants 會將 IAM 工作階段的許可範圍明確設定為授權範圍所指定的 S3 儲存貯體、字首或物件。臨時存取認證的到期時間預設為 1 小時,但您可以將其設定為 15 分鐘到 12 小時的任何值。

運作方式

在下圖中,已向 IAM 角色 s3ag-location-role 註冊具有範圍 s3:// 的預設 Amazon S3 位置。當透過 S3 Access Grants 取得憑證時,此 IAM 角色具有在帳戶內執行 Amazon S3 動作的許可。

在此位置中,會為兩個 IAM 使用者建立兩個個別存取授權。IAM 使用者 Bob 會同時獲得 DOC-BUCKET-EXAMPLE 儲存貯體中 bob/ 字首的 READWRITE 存取權。另一個 IAM 角色 Alice 只會授與DOC-BUCKET-EXAMPLE值區中alice/前置詞的READ存取權。藍色的授權定義為讓 Bob 存取 DOC-BUCKET-EXAMPLE 儲存貯體中的 bob/ 字首。綠色的授權定義為讓 Alice 存取 DOC-BUCKET-EXAMPLE 儲存貯體中的 alice/ 字首。

Bob 需要READ資料時,與其授權位置相關聯的 IAM 角色會呼叫 S3 存取授予 GetDataAccessAPI 作業。如果 Bob 嘗試對開頭為 s3://DOC-BUCKET-EXAMPLE/bob/* 的任何 S3 字首或物件執行 READ 操作,則 GetDataAccess 請求會傳回一組具有 s3://DOC-BUCKET-EXAMPLE/bob/* 許可的臨時 IAM 工作階段憑證。同樣地,Bob 可以對開頭為 s3://DOC-BUCKET-EXAMPLE/bob/* 的任何 S3 字首或物件執行 WRITE 操作,因為授權也允許此操作。

Alice 也可以對開頭為 s3://DOC-BUCKET-EXAMPLE/alice/ 的任何項目執行 READ。然而,如果她嘗試對 s3:// 中的任何儲存貯體、字首或物件執行 WRITE 操作,則會收到拒絕存取 (403 禁止) 錯誤,因為她沒有可對任何資料進行 WRITE 存取的授權。此外,如果 Alice 針對 s3://DOC-BUCKET-EXAMPLE/alice/ 以外的資料提出任何層級的存取權 (READWRITE) 請求,她將會再次收到「拒絕存取」錯誤。

S3 Access Grants 的運作方式

此模式可擴展到大量的使用者和儲存貯體,並簡化這些許可的管理工作。您可以新增和移除個別的獨立授權,而不需每次想要新增或移除個別使用者字首存取關係時,都得編輯可能很龐大的 S3 儲存貯體政策。