在 Outposts 上使用 URLs S3 預先簽章 - Amazon S3 on Outposts

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

在 Outposts 上使用 URLs S3 預先簽章

若要在不更新儲存貯體政策的情況下,授予對儲存在 Outpost 本機上的物件有時間限制的存取權,您可以使用預先簽章的 URL。透過預先簽章的 URLs,您身為儲存貯體擁有者,可以與虛擬私有雲端 (VPC) 中的個人共用物件,或授予他們上傳或刪除物件的能力。

當您使用 AWS SDKs或 AWS Command Line Interface (AWS CLI) URL 建立預先簽章的 時,您可以將 URL與特定動作建立關聯。您也可以選擇自訂過期時間,該時間可低至 1 秒,最高可達 7 天,URL以授予預先簽章的時間限制存取權。當您共用預先簽署的 時URL, 中的個人VPC可以執行內嵌在 中的動作URL,就像他們是原始簽署使用者一樣。當 URL達到其到期時間時, 會URL過期且不再運作。

限制預先簽章URL功能

預先簽章的功能URL受限於建立該預先簽章的使用者許可。本質上,預先簽章URLs是承載權杖,可授予擁有權人存取權。因此,我們建議您妥善保護它們。

AWS Signature 第 4 版 (SigV4)

若要在使用 AWS Signature 第 4 版 (SigV4) 驗證預先簽章URL請求時強制執行特定行為,您可以在儲存貯體政策和存取點政策中使用條件金鑰。例如,如果簽章超過 10 分鐘,您可以建立儲存貯體政策,該政策使用 s3-outposts:signatureAge條件來拒絕儲存example-outpost-bucket貯體中物件的任何 Amazon S3 on Outposts 預先簽署URL的請求。若要使用此範例,請取代 使用者輸入預留位置 使用您自己的資訊。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Deny a presigned URL request if the signature is more than 10 minutes old", "Effect": "Deny", "Principal": {"AWS":"444455556666"}, "Action": "s3-outposts:*", "Resource": "arn:aws:s3-outposts:us-east-1:111122223333:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket/object/*", "Condition": { "NumericGreaterThan": {"s3-outposts:signatureAge": 600000}, "StringEquals": {"s3-outposts:authType": "REST-QUERY-STRING"} } } ] }

如需條件金鑰和其他範例政策的清單,您可以在使用 Signature 第 4 版驗證預先簽章URL請求時,用來強制執行特定行為,請參閱 AWS Signature 第 4 版 (SigV4) 身分驗證特定政策金鑰

網路路徑限制

如果您想要限制使用預先簽署URLs和所有 S3 on Outposts 存取特定網路路徑,您可以撰寫需要特定網路路徑的政策。若要對撥打電話的IAM主體設定限制,您可以使用身分型 AWS Identity and Access Management (IAM) 政策 (例如使用者、群組或角色政策)。若要在 S3 on Outposts 資源上設定的限制,您可以使以資源型政策 (例如儲存貯體和存取點政策)。

IAM 主體的網路路徑限制需要這些憑證的使用者從指定的網路提出請求。儲存貯體或存取點上的限制要求所有對該資源的請求都來自指定網路。這些限制也適用於預先簽章URL案例之外。

您使用的IAM全域條件取決於端點的類型。如果您正在使用 S3 on Outposts 的公有端點,請使用 aws:SourceIp。如果您使用 S3 on Outposts 的VPC端點,請使用 aws:SourceVpcaws:SourceVpce

下列IAM政策陳述式要求主體 AWS 只能從指定的網路範圍存取 。由於此政策聲明,所有存取均必須源自該範圍。這包括使用 URL S3 on Outposts 預先簽章之人員的情況。若要使用此範例,請取代 使用者輸入預留位置 使用您自己的資訊。

{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddressIfExists": {"aws:SourceIp": "IP-address-range"}, "BoolIfExists": {"aws:ViaAWSService": "false"} } }

如需使用aws:SourceIP AWS 全域條件金鑰將 S3 on Outposts 儲存貯體的存取限制在特定網路範圍的範例儲存貯體政策,請參閱 使用 S3 on Outposts 設定 IAM

誰可以建立預先簽章 URL

具有有效安全憑證的任何人都可以建立預先簽章的 URL。但是,對於 中的使用者VPC,若要成功存取物件,預先簽章URL必須由具有執行預先簽章URL所依據之操作許可的人員建立。

您可以使用下列憑證來建立預先簽章的 URL:

  • IAM 執行個體設定檔 – 最長 6 小時有效。

  • AWS Security Token Service – 使用永久登入資料簽署時,有效期最長為 36 小時,例如根使用者的登入資料或IAM使用者的登入資料 AWS 帳戶 。

  • IAM 使用者 – 當您使用 AWS Signature 第 4 版時,有效期最長為 7 天。

    若要建立最長 URL 7 天的預先簽章,請先將IAM使用者憑證 (存取金鑰和私密金鑰) 委派給SDK您正在使用的 。然後,URL使用 AWS Signature 第 4 版產生預先簽署的 。

注意
  • 如果您URL使用臨時權杖建立預先簽章,即使您建立的 URL具有較晚的過期時間, 也會在權杖過期時URL過期。

  • 由於預先簽章會將 S3 on Outposts 儲存貯體的存取權URLs授予擁有 的任何人URL,因此建議您妥善保護這些儲存貯體。如需保護預先簽章 的詳細資訊URLs,請參閱 限制預先簽章URL功能

S3 on Outposts 何時會檢查預先簽章 的到期日期和時間URL?

在HTTP請求時,S3 on Outposts 會檢查已簽署 的到期日期和時間URL。例如,如果用戶端在到期前一刻才開始下載大型檔案,則即使在下載期間過期了,下載也會繼續。然而,如果連線中斷並且用戶端在到期時間過後嘗試重新啟動下載,則下載會失敗。

如需使用預先簽章URL來共用或上傳物件的詳細資訊,請參閱下列主題。