

# 添加或编辑访问点策略
<a name="S3OutpostsAccessPointEditPolicy"></a>

访问点具有不同的权限和网络控制，Amazon S3 on Outposts 将它们应用于通过该访问点发出的任何请求。每个接入点强制实施自定义接入点策略，该策略与附加到底层存储桶的存储桶策略结合使用。有关更多信息，请参阅 [接入点](S3OutpostsWorkingBuckets.md#S3OutpostsAP)。

以下主题说明了如何使用 Amazon Web Services 管理控制台、Amazon Command Line Interface (Amazon CLI) 和适用于 Java 的 Amazon SDK 添加或编辑您的 S3 on Outposts 访问点策略。

## 使用 S3 控制台
<a name="s3-outposts-bucket-edit-accesspoint"></a>

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

1. 在左侧导航窗格中，选择 **Outposts buckets**（Outposts 存储桶）。

1. 选择要为其编辑访问点策略的 Outposts 存储桶。

1. 选择 **Outposts 访问点**选项卡。

1. 在 **Outposts access points**（Outposts 访问点）部分中，选择要编辑其策略的访问点，然后选择 **Edit policy**（编辑策略）。

1. 在 **Outposts access point policy（Outposts 访问点策略）**部分中添加或编辑策略。有关更多信息，请参阅 [使用 S3 on Outposts 设置 IAM](S3OutpostsIAM.md)。

## 使用 Amazon CLI
<a name="S3OutpostsPutAccessPointPolicyCLI"></a>

以下 Amazon CLI 示例在 Outposts 访问点上放置策略。

1. 将以下访问点策略保存到 JSON 文件中。在本示例中，文件命名为 `appolicy1.json`。将 `user input placeholders` 替换为您自己的信息。

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Id":"exampleAccessPointPolicy",
      "Statement":[
         {
            "Sid":"st1",
            "Effect":"Allow",
            "Principal":{
               "AWS":"123456789012"
            },
            "Action":"s3-outposts:*",
            "Resource":"arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point
         }
      ]
   }
   ```

1. 将 JSON 文件作为 `put-access-point-policy` CLI 命令的一部分提交。将 `user input placeholders` 替换为您自己的信息。

   ```
   aws s3control put-access-point-policy --account-id 123456789012 --name arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point --policy file://appolicy1.json
   ```

## 使用适用于 Java 的 Amazon 软件开发工具包
<a name="S3OutpostsPutAccessPointPolicyJava"></a>

以下 SDK for Java 示例在 Outposts 接入点上放置策略。

```
import com.amazonaws.services.s3control.model.*;

public void putAccessPointPolicy(String accessPointArn) {

    String policy = "{\"Version\":\"2012-10-17\",\"Id\":\"testAccessPointPolicy\",\"Statement\":[{\"Sid\":\"st1\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"" + AccountId + "\"},\"Action\":\"s3-outposts:*\",\"Resource\":\"" + accessPointArn + "\"}]}";

    PutAccessPointPolicyRequest reqPutAccessPointPolicy = new PutAccessPointPolicyRequest()
            .withAccountId(AccountId)
            .withName(accessPointArn)
            .withPolicy(policy);

    PutAccessPointPolicyResult respPutAccessPointPolicy = s3ControlClient.putAccessPointPolicy(reqPutAccessPointPolicy);
    System.out.printf("PutAccessPointPolicy Response: %s%n", respPutAccessPointPolicy.toString());
    printWriter.printf("PutAccessPointPolicy Response: %s%n", respPutAccessPointPolicy.toString());

}
```