

 **此页面仅适用于使用文件库和 2012 年原始 REST API 的 Amazon Glacier 服务的现有客户。**

如果您正在寻找归档存储解决方案，建议使用 Amazon S3 中的 Amazon Glacier 存储类别 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息，请参阅 [Amazon Glacier 存储类别](https://www.amazonaws.cn/s3/storage-classes/glacier/)。

Amazon Glacier（最初基于保管库的独立服务）不再接受新客户。Amazon Glacier 是一项独立的服务 APIs ，拥有自己的服务，可将数据存储在文件库中，不同于亚马逊 S3 和 Amazon S3 Glacier 存储类别。在 Amazon Glacier 中，您现有的数据将确保安全，并且可以无限期地访问。无需进行迁移。对于低成本、长期的存档存储， Amazon 建议[使用 Amazon S3 Glacier 存储类别，这些存储类别](https://www.amazonaws.cn/s3/storage-classes/glacier/)基于S3存储桶 APIs、完全 Amazon Web Services 区域 可用性、更低的成本和 Amazon 服务集成，可提供卓越的客户体验。如果您希望加强功能，可以考虑使用我们的 [Amazon 将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类别的解决方案指南](https://www.amazonaws.cn/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)，迁移到 Amazon S3 Glacier 存储类别。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 设置文件库访问策略（PUT access-policy）
<a name="api-SetVaultAccessPolicy"></a>

## 说明
<a name="api-SetVaultAccessPolicy-description"></a>

此操作会为文件库配置一个访问策略并覆盖现有策略。要配置文件库访问策略，请向文件库的 `PUT` 子资源发送 `access-policy` 请求。您可以为每个文件库设置一个访问策略，该策略的大小最多为 20 KB。有关文件库访问策略的更多信息，请参阅[文件库访问策略](vault-access-policy.md)。

## 请求
<a name="api-SetVaultAccessPolicy-requests"></a>

### 语法
<a name="api-SetVaultAccessPolicy-requests-syntax"></a>

要设置文件库访问策略，请向文件库的 `access-policy` 子资源的 URI 发送 HTTP `PUT` 请求，如以下语法示例所示。

```
 1. PUT /AccountId/vaults/vaultName/access-policy HTTP/1.1
 2. Host: glacier.Region.amazonaws.com
 3. Date: Date
 4. Authorization: SignatureValue
 5. Content-Length: Length
 6. x-amz-glacier-version: 2012-06-01
 7. 			
 8. {
 9.   "Policy": "string"
10. }
```

 

**注意**  
该`AccountId`值是拥有文件库的账户的 Amazon Web Services 账户 ID。您可以指定一个 Amazon Web Services 账户 ID，也可以选择指定一个 '`-`'（连字符），在这种情况下，Amazon Glacier 使用与用于签署请求的凭证关联的 Amazon Web Services 账户 ID。如果您使用账户 ID，请勿在 ID 中包含任何连字符（-）。

### 请求参数
<a name="api-SetVaultAccessPolicy-requests-parameters"></a>

此操作不使用请求参数。

### 请求标头
<a name="api-SetVaultAccessPolicy-requests-headers"></a>

此操作仅使用所有操作通用的请求标头。有关通用请求标头的信息，请参阅[通用请求标头](api-common-request-headers.md)。

### 请求正文
<a name="api-SetVaultAccessPolicy-requests-elements"></a>

请求正文中包含以下 JSON 字段。

 **Policy**   
以 JSON 字符串形式表示的文件库访问策略（使用“\$1”作为转义符）。  
 类型：字符串   
 是否必需：是

## 响应
<a name="api-SetVaultAccessPolicy-responses"></a>

作为响应，Amazon Glacier 会返回 `204 No Content`（如果接受了策略）。

### 语法
<a name="api-SetVaultAccessPolicy-response-syntax"></a>

```
HTTP/1.1 204 No Content
x-amzn-RequestId: x-amzn-RequestId
Date: Date
```

### 响应标头
<a name="api-SetVaultAccessPolicy-responses-headers"></a>

此操作仅使用大多数响应通用的响应标头。有关通用响应标头的信息，请参阅[通用响应标头](api-common-response-headers.md)。

### 响应正文
<a name="api-SetVaultAccessPolicy-responses-elements"></a>

此操作不返回响应正文。

### 错误
<a name="api-SetVaultAccessPolicy-responses-errors"></a>

有关 Amazon Glacier 异常和错误消息的信息，请参阅[错误响应](api-error-responses.md)。

## 示例
<a name="api-SetVaultAccessPolicy-examples"></a>

### 请求示例
<a name="api-SetVaultAccessPolicy-example-request"></a>

以下示例将向文件库的 `PUT` 子资源的 URI 发送 HTTP `access-policy` 请求。`Policy` JSON 字符串使用“\$1”作为转义符。

```
1. PUT /-/vaults/examplevault/access-policy HTTP/1.1
2. Host: glacier.us-west-2.amazonaws.com
3. x-amz-Date: 20170210T120000Z
4. Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2
5. Content-Length: length
6. x-amz-glacier-version: 2012-06-01
7. 
8. {"Policy":"{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Sid\":\"Define-owner-access-rights\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\"}]}"}
```

### 响应示例
<a name="api-SetVaultAccessPolicy-example-response"></a>

如果请求成功，Amazon Glacier（Amazon Glacier）会返回 `HTTP 204 No Content`，如以下示例中所示。

```
1. HTTP/1.1 204 No Content
2. x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q
3. Date: Wed, 10 Feb 2017 12:02:00 GMT
```

## 相关部分
<a name="related-sections-SetVaultAccessPolicy"></a>

 
+ [删除文件库访问策略（DELETE access-policy）](api-DeleteVaultAccessPolicy.md)

 
+ [获取文件库访问策略（GET access-policy）](api-GetVaultAccessPolicy.md)

## 另请参阅
<a name="api-SetVaultAccessPolicy_SeeAlso"></a>

有关在特定语言的 Amazon 中使用此 API 的更多信息 SDKs，请参阅以下内容：
+  [Amazon Command Line Interface](https://docs.amazonaws.cn/cli/latest/reference/glacier/set-vault-access-policy.html) 