디렉터리 버킷의 버킷 정책 관리 - Amazon Simple Storage Service

디렉터리 버킷의 버킷 정책 관리

Amazon S3 콘솔 및 AWS SDK를 사용하여 Amazon S3 디렉터리 버킷에 대한 버킷 정책을 추가, 삭제, 업데이트 및 조회할 수 있습니다. 자세한 내용은 다음 항목을 참조하십시오. S3 Express One Zone에 지원되는 AWS Identity and Access Management(IAM) 작업 및 조건 키에 대한 자세한 내용은 AWS Identity and Access Management (IAM) for S3 Express One Zone 섹션을 참조하세요. 디렉터리 버킷에 대한 버킷 정책의 예는 S3 Express One Zone의 디렉터리 버킷 정책 예시 섹션을 참조하세요.

버킷 정책 추가

Amazon S3 콘솔, AWS SDK 또는 AWS CLI를 사용하여 디렉터리 버킷에 버킷 정책을 추가할 수 있습니다.

버킷 정책 생성 또는 편집
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 버킷(Buckets)을 선택합니다.

  3. 디렉터리 버킷 탭을 선택합니다.

  4. 디렉터리 버킷 목록에서 폴더 또는 파일을 업로드할 버킷 이름을 선택합니다.

  5. 권한 탭을 선택합니다.

  6. 버킷 정책에서 편집을 선택합니다. 버킷 정책 편집 페이지가 나타납니다.

  7. 정책을 자동으로 생성하려면 정책 생성기를 선택합니다.

    정책 생성기를 선택하면 AWS 정책 생성기가 새 창에서 열립니다.

    AWS 정책 생성기를 사용하지 않으려면 정책 섹션에서 JSON 문을 추가하거나 편집할 수 있습니다.

    1. AWS 정책 생성기 페이지의 Select Type of Policy(정책 유형 선택)에 S3 Bucket Policy(S3 버킷 정책)를 선택합니다.

    2. 제공된 필드에 정보를 입력하여 명령문을 추가한 다음 명령문 추가(Add Statement)를 선택합니다. 문을 추가하려는 만큼 이 단계를 반복합니다. 이러한 필드에 대한 자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소 참조를 참조하십시오.

      참고

      편의를 위해 버킷 정책 편집 페이지의 정책 텍스트 필드 위에 현재 버킷의 버킷 ARN(Amazon 리소스 이름)이 표시됩니다. AWS 정책 생성기 페이지의 명령문에 사용하기 위해 이 ARN을 복사할 수 있습니다.

    3. 명령문 추가를 마친 후 정책 생성(Generate Policy)을 선택합니다.

    4. 생성된 정책 텍스트를 복사하고 닫기(Close)를 선택하고 Amazon S3 콘솔의 버킷 정책 편집(Edit bucket policy) 페이지로 돌아갑니다.

  8. 정책 상자에서 기존 정책을 편집하거나 AWS 정책 생성기에서 버킷 정책을 붙여 넣습니다. 정책을 저장하기 전에 보안 경고, 오류, 일반 경고 및 제안 사항을 해결해야 합니다.

    참고

    버킷 정책은 크기가 20KB로 제한됩니다.

  9. 변경 사항 저장을 선택하면 권한 탭으로 돌아갑니다.

SDK for Java 2.x

PutBucketPolicy AWS SDK for Java 2.x

public static void setBucketPolicy(S3Client s3Client, String bucketName, String policyText) { //sample policy text /** * policy_statement = { * 'Version': '2012-10-17', * 'Statement': [ * { * 'Sid': 'AdminPolicy', * 'Effect': 'Allow', * 'Principal': { * "AWS": "111122223333" * }, * 'Action': 's3express:*', * 'Resource': 'arn:aws:s3express:region:111122223333:bucket/bucket-base-name--azid--x-s3' * } * ] * } */ System.out.println("Setting policy:"); System.out.println("----"); System.out.println(policyText); System.out.println("----"); System.out.format("On Amazon S3 bucket: \"%s\"\n", bucketName); try { PutBucketPolicyRequest policyReq = PutBucketPolicyRequest.builder() .bucket(bucketName) .policy(policyText) .build(); s3Client.putBucketPolicy(policyReq); System.out.println("Done!"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

이 예시는 AWS CLI를 사용하여 디렉터리 버킷에 버킷 정책을 추가하는 방법을 보여 줍니다. 명령을 사용하려면 사용자 입력 자리 표시자를 사용자의 정보로 대체합니다.

aws s3api put-bucket-policy --bucket bucket-base-name--azid--x-s3 --policy file://bucket_policy.json

bucket_policy.json:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AdminPolicy", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3express*", "Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/bucket-name--usw2-az1--x-s3" } ] }

자세한 내용은 AWS Command Line Interface의 put-bucket-policy를 참조하세요.

버킷 정책 보기

다음 예시를 사용하여 디렉터리 버킷의 버킷 정책을 확인합니다.

이 예시는 AWS CLI를 사용하여 디렉터리 버킷에 연결된 버킷 정책을 확인하는 방법을 보여 줍니다. 명령을 사용하려면 사용자 입력 자리 표시자를 사용자의 정보로 대체합니다.

aws s3api get-bucket-policy --bucket bucket-base-name--azid--x-s3

자세한 내용은 AWS Command Line Interface의 get-bucket-policy를 참조하세요.

버킷 정책 삭제

다음 예시를 사용하여 디렉터리 버킷의 버킷 정책을 삭제합니다.

SDK for Java 2.x

DeleteBucketPolicy AWS SDK for Java 2.x

public static void deleteBucketPolicy(S3Client s3Client, String bucketName) { try { DeleteBucketPolicyRequest deleteBucketPolicyRequest = DeleteBucketPolicyRequest .builder() .bucket(bucketName) .build() s3Client.deleteBucketPolicy(deleteBucketPolicyRequest); System.out.println("Successfully deleted bucket policy"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); }

이 예시는 AWS CLI를 사용하여 디렉터리 버킷의 버킷 정책을 삭제하는 방법을 보여 줍니다. 명령을 사용하려면 사용자 입력 자리 표시자를 사용자의 정보로 대체합니다.

aws s3api delete-bucket-policy --bucket bucket-base-name--azid--x-s3

자세한 내용은 AWS Command Line Interface의 delete-bucket-policy를 참조하세요.