

# Amazon S3 on Outposts 버킷의 버킷 정책 추가 또는 편집
<a name="S3OutpostsBucketPolicyEdit"></a>

버킷 정책은 버킷과 해당 버킷의 객체에 액세스 권한을 부여할 수 있는 리소스 기반 AWS Identity and Access Management(IAM) 정책입니다. 버킷 소유자만 정책을 버킷에 연결할 수 있습니다. 버킷에 연결된 권한은 버킷 소유자가 소유한 모든 버킷의 객체에 적용됩니다. 버킷 정책은 크기가 20KB로 제한됩니다. 자세한 내용은 [버킷 정책](S3onOutposts.md#S3OutpostsBucketPolicies) 섹션을 참조하세요.

다음 주제에서는 AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 AWS SDK for Java를 사용하여 Amazon S3 on Outposts 버킷 정책을 업데이트하는 방법을 보여줍니다.

## S3 콘솔 사용
<a name="s3-outposts-bucket-edit-policy"></a>

**버킷 정책 생성 또는 편집**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 Amazon S3 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **Outposts 버킷**을 선택합니다.

1. 편집할 버킷 정책이 있는 Outposts 버킷을 선택합니다.

1. **권한** 탭을 선택합니다.

1. 새 정책을 생성하거나 정책을 편집하려면 **Outposts 버킷 정책(Outposts bucket policy)** 섹션에서 **편집(Edit)**을 선택합니다.

   이제 S3 on Outposts 버킷 정책을 추가하거나 편집할 수 있습니다. 자세한 내용은 [S3 on Outposts로 IAM 설정](S3OutpostsIAM.md) 섹션을 참조하세요.

## AWS CLI 사용
<a name="S3OutpostsPutBucketPolicyCLI"></a>

다음 AWS CLI 예제에서는 Outposts 버킷에 정책을 적용합니다.

1. 다음 버킷 정책을 JSON 파일로 저장합니다. 이 예시에서 파일의 이름은 `policy1.json`으로 지정됩니다. `{{user input placeholders}}`를 사용자의 정보로 대체합니다.

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Id":"testBucketPolicy",
      "Statement":[
         {
            "Sid":"st1",
            "Effect":"Allow",
            "Principal":{
               "AWS":"arn:aws:iam::{{123456789012}}:root"
            },
            "Action":[
               "s3-outposts:GetObject",
               "s3-outposts:PutObject",
               "s3-outposts:DeleteObject",
               "s3-outposts:ListBucket"
            ],
            "Resource":"arn:aws:s3-outposts:{{us-east-1}}:{{123456789012}}:outpost/{{op-01ac5d28a6a232904}}/bucket/{{amzn-s3-demo-bucket}}"
         }
      ]
   }
   ```

------

1. `put-bucket-policy` CLI 명령의 일부로 JSON 파일을 제출합니다. 이 명령을 실행하려면 `{{user input placeholders}}`를 사용자의 정보로 대체합니다.

   ```
   aws s3control put-bucket-policy --account-id {{123456789012}} --bucket arn:aws:s3-outposts:{{region}}:{{123456789012}}:outpost/{{op-01ac5d28a6a232904}}/bucket/{{example-outposts-bucket}} --policy file://{{policy1.json}}
   ```

## Java용 AWS SDK 사용
<a name="S3OutpostsPutBucketPolicyJava"></a>

다음 SDK for Java 예제에서는 Outposts 버킷에 정책을 적용합니다.

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

public void putBucketPolicy(String bucketArn) {

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

    PutBucketPolicyRequest reqPutBucketPolicy = new PutBucketPolicyRequest()
            .withAccountId(AccountId)
            .withBucket(bucketArn)
            .withPolicy(policy);

    PutBucketPolicyResult respPutBucketPolicy = s3ControlClient.putBucketPolicy(reqPutBucketPolicy);
    System.out.printf("PutBucketPolicy Response: %s%n", respPutBucketPolicy.toString());

}
```