

# 管理目录存储桶的接入点的范围
<a name="access-points-directory-buckets-manage-scope"></a>

本节介绍如何使用 AWS Command Line Interface、REST API 或 AWS SDK 来查看和修改目录存储桶的接入点的范围。可以使用接入点范围来限制对特定前缀或 API 操作的访问。

**Topics**
+ [查看目录存储桶的接入点的范围](#access-points-directory-buckets-view-scope)
+ [修改目录存储桶的接入点的范围](#access-points-directory-buckets-modify-scope)
+ [删除目录存储桶的接入点的范围](#access-points-directory-buckets-delete-scope)

## 查看目录存储桶的接入点的范围
<a name="access-points-directory-buckets-view-scope"></a>

可以使用 AWS 管理控制台、AWS Command Line Interface、REST API 或 AWS SDK 来查看目录存储桶的接入点的范围。

### 使用 S3 控制台
<a name="access-points-directory-buckets-view-scope-console"></a>

**查看目录存储桶的接入点的范围**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在页面顶部的导航栏中，选择当前所显示 AWS 区域的名称。接下来，选择要列出其接入点的区域。

1. 在控制台左侧的导航窗格中，选择**目录存储桶的接入点**。

1. （可选）按名称搜索接入点。只有您选择的 AWS 区域中的接入点才会出现在此处。

1. 选择要管理的接入点的名称。

1. 选择**权限**选项卡。

1. 在**接入点范围**中，可以看到应用于接入点的前缀和权限。

### 使用 AWS CLI
<a name="access-points-directory-buckets-view-scope-cli"></a>

以下 `get-access-point-scope` 示例命令显示了如何使用 AWS CLI 来查看接入点的范围。

以下命令显示了 AWS 账户 *111122223333* 的接入点 **my-access-point**--*zoneID*--xa-s3 的范围。

```
aws s3control get-access-point-scope --name my-access-point--zoneID--xa-s3 --account-id 111122223333      
```

有关更多信息和示例，请参阅《AWS CLI Command Reference》中的 [get-access-point-scope](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/get-access-point-scope.html)。

**Example ：`get-access-point-scope` 的结果**  

```
{
    "Scope": {
        "Permissions": [
            "ListBucket",
            "PutObject"
        ]
  "Prefixes": [
            "Prefix": "MyPrefix1*",
            "Prefix": "MyObjectName.csv"
        ]
    }
}
```

### 使用 REST API
<a name="access-points-directory-buckets-view-scope-rest-api"></a>

以下 `GetAccessPointScope` 示例请求显示了如何使用 REST API 来查看接入点的范围。

以下请求显示了 AWS 账户 *111122223333* 的接入点 **my-access-point**--*region*-*zoneID*--xa-s3 的范围。

```
GET /v20180820/accesspoint/my-access-point--zoneID--xa-s3/scope HTTP/1.1 
Host: s3express-control.region.amazonaws.com 
x-amz-account-id: 111122223333
```

**Example ：`GetAccessPointScope` 的结果**  

```
      HTTP/1.1 200
      <?xml version="1.0" encoding="UTF-8"?>
      <GetAccessPointScopeResult>    
          <Scope>            
              <Prefixes>                
                  <Prefix>MyPrefix1*</Prefix>
                  <Prefix>MyObjectName.csv</Prefix>
              </Prefixes>            
              <Permissions>                 
                  <Permission>ListBucket</Permission>                 
                  <Permission>PutObject</Permission>
              </Permissions>     
              <Scope>
      </GetAccessPointScopeResult>
```

### 使用 AWS SDK
<a name="access-points-directory-buckets-view-scope-sdk"></a>

可以使用 AWS SDK 来查看接入点的范围。有关更多信息，请参阅《Amazon Simple Storage Service API Reference》中的 [list of supported SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointScope.html#API_control_GetAccessPointScope_SeeAlso)。

## 修改目录存储桶的接入点的范围
<a name="access-points-directory-buckets-modify-scope"></a>

可以使用 AWS 管理控制台、AWS Command Line Interface、REST API 或 AWS SDK 来修改目录存储桶的接入点的范围。接入点范围用于限制对特定前缀、API 操作或两者组合的访问。

您可以包含以下一个或多个 API 操作作为权限：
+ `PutObject`
+ `GetObject`
+ `DeleteObject`
+ `ListBucket`（对于 `ListObjectsV2` 是必需的）
+ `GetObjectAttributes`
+ `AbortMultipartUploads`
+ `ListBucketMultipartUploads`
+ `ListMultipartUploadParts`

**注意**  
您可以指定任意数量的前缀，但所有前缀的字符总长度的大小必须小于 256 字节。

### 使用 S3 控制台
<a name="access-points-directory-buckets-modify-scope-console"></a>

**修改接入点范围**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在页面顶部的导航栏中，选择当前所显示 AWS 区域的名称。接下来，选择要列出其接入点的区域。

1. 在控制台左侧的导航窗格中，选择**目录存储桶的接入点**。

1. （可选）按名称搜索接入点。只有您选择的 AWS 区域中的接入点才会出现在此处。

1. 选择要管理的接入点的名称。

1. 选择**权限**选项卡。

1. 在**接入点范围**部分中，选择**编辑**。

1. 要添加或移除前缀：

   1. 要添加前缀，请选择**添加前缀**。在**前缀**字段中，输入目录存储桶的前缀。重复此操作以添加更多前缀。

   1. 要移除前缀，请选择**移除**。

1. 要添加或移除权限：

   1. 要添加权限，请在**选择数据操作**字段中选择该权限。

   1. 要移除权限，请选择该权限旁边的 **X**。

1. 选择**保存更改**。

### 使用 AWS CLI
<a name="access-points-directory-buckets-modify-scope-cli"></a>

以下 `put-access-point-scope` 示例命令显示了如何使用 AWS CLI 来修改接入点的范围。

以下命令修改 AWS 账户 *111122223333* 的 **my-access-point**--*zoneID*--xa-s3 的接入点范围。

**注意**  
您可以使用星号（\$1）字符在前缀中使用通配符。如果要将星号字符用作文字，请在它之前添加一个反斜杠字符（\$1）以对它进行转义。  
所有前缀都有一个隐含的“\$1”结尾，这意味着所有带有该前缀的路径都将包括在内。  
当您使用 AWS CLI 修改接入点的范围时，将替换现有范围。

```
aws s3control put-access-point-scope --name my-access-point--zoneID--xa-s3 --account-id 111122223333 --scope Prefixes=string,Permissions=string
```

有关更多信息和示例，请参阅《AWS CLI Command Reference》中的 [put-access-point-scope](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/put-access-point-scope.html)。

### 使用 REST API
<a name="access-points-directory-buckets-modify-scope-rest-api"></a>

以下 `PutAccessPointScope` 示例请求显示了如何使用 REST API 来修改接入点的范围。

以下请求修改 AWS 账户 *111122223333* 的 **my-access-point**--*zoneID*--xa-s3 的接入点范围。

**注意**  
您可以使用星号（\$1）字符在前缀中使用通配符。如果要将星号字符用作文字，请在它之前添加一个反斜杠字符（\$1）以对它进行转义。  
所有前缀都有一个隐含的“\$1”结尾，这意味着所有带有该前缀的路径都将包括在内。  
当您使用 API 修改接入点的范围时，将替换现有范围。

```
PUT /v20180820/accesspoint/my-access-point--zoneID--xa-s3/scope HTTP/1.1 
Host: s3express-control.region.amazonaws.com 
x-amz-account-id: 111122223333
<?xml version="1.0" encoding="UTF-8"?>
<PutAccessPointScopeRequest>   
        <Scope>        
            <Prefixes>        
                <Prefix>Jane/*</Prefix>              
            </Prefixes>       
            <Permissions>        
                <Permission>PutObject</Permission>
                <Permission>GetObject</Permission>
            </Permissions>   
            <Scope>
    </PutAccessPointScopeRequest>
```

### 使用 AWS SDK
<a name="access-points-directory-buckets-modify-scope-sdk"></a>

可以使用 AWS CLI、AWS SDK 或 REST API 来修改接入点的范围。有关更多信息，请参阅《Amazon Simple Storage Service API Reference》中的 [list of supported SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointScope.html#API_control_PutAccessPointScope_SeeAlso)。

## 删除目录存储桶的接入点的范围
<a name="access-points-directory-buckets-delete-scope"></a>

可以使用 AWS 管理控制台、AWS Command Line Interface、REST API 或 AWS SDK 来删除目录存储桶的接入点的范围。

**注意**  
删除接入点的范围时，将删除所有前缀和权限。

### 使用 S3 控制台
<a name="access-points-directory-buckets-delete-scope-console"></a>

**删除接入点范围**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在页面顶部的导航栏中，选择当前所显示 AWS 区域的名称。接下来，选择要列出其接入点的区域。

1. 在控制台左侧的导航窗格中，选择**目录存储桶的接入点**。

1. （可选）按名称搜索接入点。只有您选择的 AWS 区域中的接入点才会出现在此处。

1. 选择要管理的接入点的名称。

1. 选择**权限**选项卡。

1. 在**接入点范围**中，选择**删除**。

1. 在**要确认此删除，请键入“confirm”**字段中，输入 **confirm**。

1. 选择**删除**。

### 使用 AWS CLI
<a name="access-points-directory-buckets-delete-scope-cli"></a>

以下 `delete-access-point-scope` 示例命令显示了如何使用 AWS CLI 来删除接入点的范围。

以下命令删除 AWS 账户 *111122223333* 的接入点 **my-access-point**--*zoneID*--xa-s3 的范围。

```
aws s3control delete-access-point-scope --name my-access-point--region-zoneID--xa-s3 --account-id 111122223333
```

有关更多信息和示例，请参阅《AWS CLI Command Reference》中的 [delete-access-point-scope](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/delete-access-point-scope.html)。

### 使用 REST API
<a name="access-points-directory-buckets-delete-scope-rest-api"></a>

以下请求删除 AWS 账户 *111122223333* 的接入点 **my-access-point**--*zoneID*--xa-s3 的范围。

```
DELETE /v20180820/accesspoint/my-access-point--zoneID--xa-s3/scope HTTP/1.1 
Host: s3express-control.region.amazonaws.com 
x-amz-account-id: 111122223333
```

### 使用 AWS SDK
<a name="access-points-directory-buckets-delete-scope-sdk"></a>

可以使用 AWS SDK 来删除接入点的范围。有关更多信息，请参阅《Amazon Simple Storage Service API Reference》中的 [list of supported SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointScope.html#API_control_DeleteAccessPointScope_SeeAlso)。