

# AWS 签名版本 4（SigV4）身份认证特定的策略键
<a name="s3-outposts-bucket-policy-s3-sigv4-conditions"></a>

下表显示了与 AWS 签名版本 4（SigV4）身份认证有关的条件键，您可以将这些条件键用于 Amazon S3 on Outposts。您可以在存储桶策略中添加这些条件，以便在使用签名版本 4 对请求进行身份认证时强制执行特定的行为。有关示例策略，请参阅 [使用与签名版本 4 有关的条件键的存储桶策略示例](#s3-outposts-bucket-policy-sig-v4-condition-key-example)。有关使用签名版本 4 对请求进行身份验证的更多信息，请参阅《Amazon Simple Storage Service API 参考》**中的[对请求进行身份验证（AWS 签名版本 4）](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)


| 适用的键 | 说明 | 
| --- | --- | 
|  `s3-outposts:authType`  |  S3 on Outposts 支持多种身份认证方法。要限定传入的请求使用特定的身份认证方法，您可以使用此可选条件键。例如，您可以使用此条件键以仅允许在请求身份认证中使用 HTTP `Authorization` 标头。 有效值： `REST-HEADER`  `REST-QUERY-STRING`   | 
|  `s3-outposts:signatureAge`  |  签名在已通过身份认证的请求中的有效期（以毫秒为单位）。 此条件仅适用于预签名 URL。 在签名版本 4 中，签名键的有效期最长为 7 天。因此，签名的有效期最初也为 7 天。有关更多信息，请参阅《Amazon Simple Storage Service API 参考》**中的[签名请求简介](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html#signing-request-intro)。您可以使用此条件进一步限制签名有效期。 示例值：`600000`  | 
|  `s3-outposts:x-amz-content-sha256`  |  您可以使用此条件键禁止存储桶中未签名的内容。 使用签名版本 4 时，对于使用 `Authorization` 标头的请求，您需要在签名计算中添加 `x-amz-content-sha256` 标头，然后将它的值设置为哈希负载。 您可以在存储桶策略中使用此条件键来拒绝上传任何未签名的有效负载。例如： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/s3-outposts/s3-outposts-bucket-policy-s3-sigv4-conditions.html) 有效值：`UNSIGNED-PAYLOAD`  | 

## 使用与签名版本 4 有关的条件键的存储桶策略示例
<a name="s3-outposts-bucket-policy-sig-v4-condition-key-example"></a>

要使用以下示例，请将 *`user input placeholders`* 替换为您自己的信息。

**Example : `s3-outposts:signatureAge`**  
以下存储桶策略将在签名的存在时间超过 10 分钟时拒绝对 `example-outpost-bucket` 中对象的 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"}
            }
        }
    ]
}
```

**Example : `s3-outposts:authType`**  
以下存储桶策略仅允许使用 `Authorization` 标头进行请求身份认证的请求。任何预签名的 URL 请求都将被拒绝，因为预签名 URL 使用查询参数来提供请求和身份认证信息。有关更多信息，请参阅《Amazon Simple Storage Service API 参考》**中的[身份验证方法](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)。    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
         {
               "Sid": "Allow only requests that use the Authorization header for request authentication. Deny presigned URL requests.",
               "Effect": "Deny",
               "Principal": {"AWS":"111122223333"},
               "Action": "s3-outposts:*",
               "Resource": "arn:aws:s3-outposts:us-east-1:111122223333:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket/object/*",
               "Condition": {
                     "StringNotEquals": {
                           "s3-outposts:authType": "REST-HEADER"
                     }
               }
         }
   ]
}
```

**Example : `s3-outposts:x-amz-content-sha256`**  
以下存储桶策略拒绝任何带有未签名有效负载的上传，例如使用预签名 URL 的上传。有关更多信息，请参阅《Amazon Simple Storage Service API 参考》中的[对请求进行身份认证](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html#query-string-auth-v4-signing)和[身份认证方法](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)。    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
         {
               "Sid": "Deny uploads with unsigned payloads.",
               "Effect": "Deny",
               "Principal": {"AWS":"111122223333"},
               "Action": "s3-outposts:*",
               "Resource": "arn:aws:s3-outposts:us-east-1:111122223333:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket/object/*",
               "Condition": {
                     "StringEquals": {
                           "s3-outposts:x-amz-content-sha256": "UNSIGNED-PAYLOAD"
                     }
               }
         }
   ]
}
```