許可 - Amazon Simple Storage Service

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

許可

Amazon S3 多區域存取點可以簡化多個 AWS 區域中 Amazon S3 儲存貯體的資料存取。多區域存取點是具名全域端點,您可以用來執行 Amazon S3 資料存取物件操作,例如 GetObjectPutObject。每個多區域存取點都可對透過全域端點提出的任何請求具有不同的許可和網路控制。

每個多區域存取點也可以強制執行自訂的存取政策,該政策可結合附加至基礎儲存貯體的儲存貯體政策運作。請求若要成功,下列政策都必須允許操作:

  • 多區域存取點政策

  • 基礎 AWS Identity and Access Management (IAM) 政策

  • 基礎儲存貯體政策 (請求的路由位置)

您可以將任何多區域存取點政策設定為僅接受來自特定 IAM 使用者或群組的請求。如需如何執行此操作的範例,請參閱 多區域存取點政策範例 中的範例 2。若要限制只能透過私有網絡存取 Amazon S3 資料,您可以將多區域存取點政策設定為僅接受來自虛擬私有雲端 (VPC) 的請求。

例如,假設您使用 AWS 帳戶中名為 AppDataReader 的使用者,透過多區域存取點提出 GetObject 請求。為了協助確保請求不會遭到拒絕,AppDataReader 使用者必須透過多區域存取點及多區域存取點下的每個儲存貯體獲授予 s3:GetObject 許可。AppDataReader 將無法從任何未授予此許可的儲存貯體中擷取資料。

重要

透過儲存貯體名稱或 Amazon Resource Name (ARN) 直接存取儲存貯體時,將儲存貯體的存取控制委派給多區域存取點政策不會變更儲存貯體的行為。直接針對儲存貯體進行的所有操作將繼續像以前一樣運作。您在多區域存取點政策中包含的限制僅適用透過該多區域存取點提出的請求。

管理多區域存取點的公開存取

多區域存取點對每個多區域存取點支援獨立的封鎖公開存取設定。建立多區域存取點時,您可以指定適用該多區域存取點的封鎖公開存取設定。

注意

即使多區域存取點的獨立封鎖公開存取設定已停用,在此帳戶的封鎖公開存取設定 (您的帳戶) 或外部儲存貯體的封鎖公開設定下啟用的任何封鎖公開存取設定仍然適用。

對於透過多區域存取點提出的任何請求,Amazon S3 會評估下列項目的封鎖公開存取設定:

  • 多區域存取點

  • 基礎儲存貯體 (包括外部儲存貯體)

  • 擁有多區域存取點的帳戶

  • 擁有基礎儲存貯體 (包括外部帳戶) 的帳戶

如果這些設定中有任一指出應該封鎖請求,則 Amazon S3 會拒絕請求。如需 Amazon S3 封鎖公開存取功能的詳細資訊,請參閱 封鎖對 Amazon S3 儲存體的公開存取權

重要

依預設,多區域存取點的所有封鎖公開存取設定都會啟用。您必須明確停用您不想套用至多區域存取點的任何設定。

在建立多區域存取點的封鎖公開存取設定後,您便無法再變更設定。

檢視多區域存取點的封鎖公開存取設定

檢視多區域存取點的封鎖公開存取設定
  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

  2. 在左導覽窗格中,選擇 Multi-Region Access Points (多區域存取點)。

  3. 選擇您要檢閱的多區域存取點名稱。

  4. 選擇 許可 標籤。

  5. Block Public Access settings for this Access Point (此多區域存取點的封鎖公開存取設定) 下,檢閱多區域存取點的封鎖公開存取設定。

    注意

    在建立多區域存取點後,您無法編輯封鎖公開存取設定。因此,如果您要封鎖公開存取,請確定您的應用程式在沒有公開存取的情況下正常運作,然後再建立多區域存取點。

使用多區域存取點政策

下列範例多區域存取點政策會將存取權授予 IAM 使用者,以從您的多區域存取點列出和下載檔案。若要使用此範例政策,請以您自己的資訊取代 user input placeholders

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::123456789012:user/JohnDoe" }, "Action":[ "s3:ListBucket", "s3:GetObject" ], "Resource":[ "arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias", "arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias/object/*" ] } ] }

若要使用 AWS Command Line Interface (AWS CLI),將您的多區域存取點政策與指定的多區域存取點建立關聯,請使用下列 put-multi-region-access-point-policy 命令。若要使用此範例命令,請以您自己的資訊取代 user input placeholders。每個多區域存取點只能有一個政策,因此對 put-multi-region-access-point-policy 動作提出的請求會取代與所指定多區域存取點相關聯的任何現有政策。

AWS CLI
aws s3control put-multi-region-access-point-policy --account-id 111122223333 --details { "Name": "DOC-EXAMPLE-BUCKET-MultiRegionAccessPoint", "Policy": "{ \"Version\": \"2012-10-17\", \"Statement\": { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::111122223333:root\" }, \"Action\": [\"s3:ListBucket\", \"s3:GetObject\"], \"Resource\": [ \"arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias", \"arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias/object/*\" ] } }" }

若要查詢先前操作的結果,請使用下列命令:

AWS CLI
aws s3control describe-multi-region-access-point-operation --account-id 111122223333 --request-token-arn requestArn

若要擷取您的多區域存取點政策,請使用下列命令:

AWS CLI
aws s3control get-multi-region-access-point-policy --account-id 111122223333 --name=DOC-EXAMPLE-BUCKET-MultiRegionAccessPoint

編輯多區域存取點政策

多區域存取點政策 (以 JSON 撰寫) 可讓與此多區域存取點搭配使用的 Amazon S3 儲存貯體存取儲存體。您可以允許或拒絕特定主體對多區域存取點執行各種動作。當透過多區域存取點將請求路由至儲存貯體時,多區域存取點的這兩個存取政策都適用。限制性較高的存取政策一律優先採用。

注意

如果儲存貯體包含其他帳戶所擁有的物件,則多區域存取點政策不會套用至其他 AWS 帳戶 擁有的物件。

在套用多區域存取點政策之後,無法刪除該政策。您可以編輯政策或建立覆寫現有政策的新政策。

編輯多區域存取點政策

  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

  2. 在左導覽窗格中,選擇 Multi-Region Access Points (多區域存取點)。

  3. 選擇您要編輯其政策的多區域存取點名稱。

  4. 選擇 許可 標籤。

  5. 向下捲動至 Multi-Region Access Point policy (多區域存取點政策)。選擇 Edit (編輯)來更新政策 (以 JSON 表示)。

  6. Edit Multi-Region Access Point policy (編輯多區域存取點政策) 頁面即會出現。您可以直接將政策輸入文字欄位中,也可以選擇 Add statement (新增陳述式),從下拉式清單中選取政策元素。

    注意

    主控台會自動顯示多區域存取點的 Amazon Resource Name (ARN),您可以在政策中使用該 ARN。例如多區域存取點政策,請見 多區域存取點政策範例

多區域存取點政策範例

Amazon S3 多區域存取點支援 AWS Identity and Access Management (IAM) 資源政策。您可以使用這些政策,依資源、使用者或其他條件控制多區域存取點的使用。若要讓應用程式或使用者能夠透過多區域存取點存取物件,多區域存取點和基礎儲存貯體都必須允許該相同的存取。

若要允許同時對多區域存取點和基礎儲存貯體的存取,請執行下列其中一項操作:

  • (建議) 若要在使用 Amazon S3 多區域存取點時簡化存取控制,請將 Amazon S3 儲存貯體的存取控制委派給多區域存取點。如需如何執行此操作的範例,請參閱本節中的範例 1。

  • 將多區域存取點政策中的相同許可新增至基礎儲存貯體政策。

重要

透過儲存貯體名稱或 Amazon Resource Name (ARN) 直接存取儲存貯體時,將儲存貯體的存取控制委派給多區域存取點政策不會變更儲存貯體的行為。直接針對儲存貯體進行的所有操作將繼續像以前一樣運作。您在多區域存取點政策中包含的限制僅適用透過該多區域存取點提出的請求。

範例 1 – 在儲存貯體政策中,委派存取權給特定多區域存取點 (針對相同帳戶或跨帳戶)

下列範例儲存貯體政策允許完整儲存貯體存取特定多區域存取點。這表示對此儲存貯體的所有存取皆由附加至多區域存取點的政策控制。我們建議您針對不需要直接存取儲存貯體的所有使用案例,以此方式設定儲存貯體。您可以將此儲存貯體政策結構用於同一帳戶或其他帳戶的多區域存取點。

{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointArn" : "MultiRegionAccessPoint_ARN" } } }] }
注意

如果您要授予存取權給多個多區域存取點,請務必列出每個多區域存取點。

範例 2 - 在您的多區域存取點政策中將帳戶存取權授予多區域存取點

下列多區域存取點政策允許帳戶 123456789012 許可,以列出和讀取由 MultiRegionAccessPoint_ARN 定義多區域存取點中包含的物件。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS":"arn:aws:iam::123456789012:user/JohnDoe" }, "Action":[ "s3:ListBucket", "s3:GetObject" ], "Resource":[ "MultiRegionAccessPoint_ARN", "MultiRegionAccessPoint_ARN/object/*" ] } ] }
範例 3 - 允許儲存貯體清單的多區域存取點政策

下列多區域存取點政策允許帳戶 123456789012 許可,以列出由 MultiRegionAccessPoint_ARN 定義多區域存取點中包含的物件。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/JohnDoe" }, "Action": "s3:ListBucket", "Resource": "MultiRegionAccessPoint_ARN" } ] }