

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

# 附錄 A： AWS 服務 如何使用預先簽章URLs
<a name="appendix-a"></a>

此附錄提供使用預先簽章 URLs AWS 服務 和 功能的相關資訊。此資訊有兩種用途：
+ 為實作控制項的安全工程師提供這些控制項可能影響的資訊。
+ 建立此風險可能與 URL 記錄互動相關的情況意識。

**重要**  
此附錄不提供預先簽章 URLs 的完整清單 AWS 服務 或其使用方式。它也不涵蓋自訂或第三方解決方案。

## Amazon S3 主控台
<a name="s3-console"></a>

**主體：**主控台使用者

**預設過期時間：**5 分鐘

**免責聲明**  
 本節記錄 Amazon S3 console. AWS console 行為的目前行為可能會有所變更，恕不另行通知。

Amazon S3 主控台支援下載和上傳物件。 下載使用過期時間為 300 秒 (5 分鐘） 的預先簽章 URL。  URL 是由對 的請求產生`https://<bucket-region>.console.aws.amazon.com/s3/batchOpsServlet-proxy`。

該請求會在使用者按一下下載按鈕時啟動，因此 URL 不會預先產生或傳送至用戶端，直到發生明確的下載請求為止。

上傳類似，但主控台會傳送兩個請求：`OPTIONS`做為預檢 CORS 檢查，以及 `PUT`。 這兩個請求都使用相同的簽章。

用於簽署的登入資料是與目前登入使用者相關聯的臨時登入資料。取得這些臨時登入資料的方法 詳細資訊超出本指南的範圍。

## Amazon S3 Object Lambda
<a name="s3-object-lambda"></a>

**主體：**存取點呼叫者

**預設過期時間：**61 秒

**注意**  
自 2025 年 11 月 7 日起，S3 Object Lambda 僅適用於目前正在使用該服務的現有客戶，以及 select AWS Partner Network (APN) 合作夥伴。對於類似 S3 Object Lambda 的功能，請在此處進一步了解 – [Amazon S3 Object Lambda 可用性變更。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html)

[Amazon S3 Object Lambda](https://aws.amazon.com/s3/features/object-lambda/) 使用 AWS Lambda 函數自動處理和轉換從 Amazon S3 擷取的資料。當 S3 Object Lambda 叫用函數時，該函數會收到預先簽章的 URL (`inputS3Url`)，可用來從支援的存取點下載原始物件。

這些預先簽章URLs 會針對[支援的 Amazon S3 存取點簽署，該存取點](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-security.html#olap-access-points-security)會在您設定 S3 Object Lambda 時提供。（這與 Object Lambda 存取點不同。) 與其使用繫結至 Lambda 函數的角色，URL 是使用原始發起人的身分來簽署的，而該使用者的許可在使用 URL 時將套用。如果 URL 中有已簽章的標頭，Lambda 函數必須在對 Amazon S3 的呼叫中包含這些標頭。

傳回的預先簽章 URL 的過期時間為 61 秒 （比 S3 Object Lambda 函數的最長持續時間多一秒）。產生的 URL 只能與支援的存取點搭配使用。S3 Object Lambda 存取點的發起人需要能夠存取此存取點。您可以使用條件 限制對 S3 Object Lambda 內容的存取`"aws:CalledVia": ["s3-object-lambda.amazonaws.com"]`。當該條件連接到支援的存取點或儲存貯體時，使用者無法直接存取支援的存取點或儲存貯體。

此方法的值是，不需要將 Lambda 函數存取權授予 S3 儲存貯體或存取點。與 Lambda 函數相關聯的角色將需要 **WriteGetObjectResponse** 的許可，但不需要 **GetObject** 的許可。

當 S3 Object Lambda 產生預先簽章URLs 時，不會新增網路限制，因此 URL 可以在 Lambda 函數之外使用。不過，對 S3 Object Lambda 發起人施加的任何限制仍然適用。例如，如果您的 Lambda 函數在 VPC 中執行，且您將發起人限制為使用 VPC 端點，則擁有預先簽章 URL 的任何人都需要能夠透過該 VPC 端點傳送。 此限制也適用於 **SourceIp** 和 **VpcSourceIp**。 

**注意**  
若要在 VPC 中使用 S3 Object Lambda 函數，VPC 必須具有公有 S3 端點的路由，才能呼叫 **WriteGetObjectResponse**。 這並不表示使用 VPC 端點的需求不適用於從儲存貯體擷取資料的請求。

## AWS Lambda 跨區域 CopyObject
<a name="lambda-cross-region-copy-object"></a>

**委託人：**AWS 內部

**預設過期時間：**3600 秒

當您使用 [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 或 [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) API 進行複製時 AWS 區域，Amazon S3 會在內部使用預先簽章URLs。這些 APIs可以直接從 SDKs或 AWS CLI 命令 `aws s3api copy-object`和 呼叫`aws s3api upload-part`。這些 APIs 不會用於 Amazon S3 複寫，但當來源和目的地是 S3 儲存貯體時， 和 `aws s3 sync`命令會使用這些 AWS CLI `aws s3 cp` API。它們也受到各種 AWS SDKs 中的`TransferManager`實作支援。

## AWS Lambda GetFunction
<a name="lambda-get-function"></a>

**Principal：** AWS internal

**預設過期時間：**10 分鐘

AWS Lambda 會將使用者版本存放在 Lambda 團隊擁有的 S3 儲存貯體中， 在產生部署到 Lambda 容器的資產之前。當您想要存取函數的程式碼 時， 您呼叫 [GetFunction](https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunction.html) API。 此 API 會以 回應`Code.Location`， 其中包含 10 分鐘內有效的預先簽章 URL （此過期時間是目前行為而非已發佈的合約）。 如果您不想要程式碼， 您可以使用 [GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionConfiguration.html)、 [GetFunctionConcurrency](https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionConcurrency.html)、 和 [ListTags](https://docs.aws.amazon.com/lambda/latest/dg/API_ListTags.html)，以擷取 傳回的其他資料`GetFunction`。

傳回的 URL 不會使用目前登入使用者的登入資料簽署，而是由 Lambda 代表使用者簽署。因此，套用至目前登入使用者或使用者臨時工作階段登入資料的條件金鑰 （例如 `aws:SourceIP`) 不適用於產生的 URL。無論條件金鑰僅套用至 **GetFunction**，或套用至使用者或工作階段的所有 AWS API 用量，都是如此。

Lambda 主控台也會使用 **GetFunction** 及其傳回的預先簽章 URL。 主控台會使用與目前登入使用者相關聯的臨時登入資料來呼叫 **GetFunction**。取得這些臨時登入資料的詳細資訊超出本文件的範圍。

## Amazon ECR
<a name="ecr"></a>

**Principal：** AWS internal

**預設過期時間：**1 小時

Amazon Elastic Container Registry (Amazon ECR) 提供 [GetDownloadUrlForLayer](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_GetDownloadUrlForLayer.html) API，傳回一個預先簽章的 URL，有效期為一小時，並支援從 Amazon ECR 映像下載單一層。不過，Amazon ECR 代理會使用此操作，使用者通常不會使用此操作來提取和推送映像。

## Amazon Redshift Spectrum
<a name="spectrum"></a>

**委託人：**透過 傳遞給 [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) 的角色 `IAM_ROLE`

**預設過期時間：**1 小時

Amazon Redshift Spectrum 在內部使用預先簽章URLs[，並禁止對儲存貯體和 Amazon Redshift 角色組合的限制，這會限制預先簽章URLs](https://docs.aws.amazon.com/redshift/latest/mgmt/spectrum-enhanced-vpc.html#spectrum-enhanced-vpc-considerations-policies)。 您可以使用 16 分鐘`s3:signatureAge`的值，但非常低的值不可靠。您可以使用的最小值取決於查詢的時間和大小。雖然低於 16 分鐘的值適用於許多案例，但它需要測試。角色可以且應該限制為僅供 Redshift Spectrum 使用，Redshift Spectrum 不會公開其產生的 URLs，因此可以減輕較低過期值的典型理由。

## Amazon SageMaker AI Studio
<a name="sagemaker-studio"></a>

Amazon SageMaker AI Studio 支援兩個 API 動作：[CreatePresignedDomainUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedDomainUrl.html) 和 [CreatePresignedNotebookInstanceUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html)。不過，這些 APIs 與 Signature 第 4 版預先簽章的 URL 功能無關。這些 APIs會建立使用 `authToken` 參數的 URL，但不支援任何標準 Signature 第 4 版查詢參數。

`authToken` 是不同的機制，但與預先簽章URLs 相似。它以查詢字串參數的形式傳送，並支援 5 分鐘的過期時間。

SageMaker AI 支援網路限制。如果您對`sagemaker:CreatePresignedDomainUrl`動作施加限制，該動作會同時套用到呼叫 [CreatePresignedDomainUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedDomainUrl.html) 和使用產生的 URL。如果 URL 從有效網路產生，然後由非有效網路傳送，則產生 URL 的 API 呼叫會成功，但傳送 URL 的請求會失敗。[CreatePresignedNotebookInstanceUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) 和 `sagemaker:CreatePresignedNotebookInstanceUrl`動作也是如此。

如需詳細資訊，請參閱 [SageMaker AI 文件](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-access-ws.html)。