디렉터리 버킷용 액세스 포인트 만들기
디렉터리 버킷용 액세스 포인트 만들기 (Creating access points for directory buckets)
디렉터리 버킷과 마찬가지로 액세스 포인트는 Availability Zone이나 전용 Local Zone에서 만들 수 있어요. 액세스 포인트는 연결된 디렉터리 버킷과 같은 존(zone)에 만들어야 해요.
출처: 문서
본문
액세스 포인트는 정확히 하나의 Amazon S3 디렉터리 버킷에 연결돼요. AWS 계정의 디렉터리 버킷을 사용하려면 먼저 디렉터리 버킷을 만들어야 해요. 디렉터리 버킷 만들기에 대한 자세한 내용은 Availability Zone에 디렉터리 버킷 만들기 또는 Local Zone에 디렉터리 버킷 만들기 를 참고하세요.
버킷 이름과 버킷 소유자의 계정 ID를 알고 있다면, 다른 AWS 계정의 버킷에 연결된 교차 계정 액세스 포인트를 만들 수도 있어요. 단, 교차 계정 액세스 포인트를 만든다고 해서 버킷 소유자가 권한을 부여하기 전까지 버킷의 데이터에 접근할 수 있는 것은 아니에요. 버킷 소유자는 버킷 정책을 통해 액세스 포인트 소유자 계정(사용자 계정)에 버킷 접근 권한을 부여해야 해요. 자세한 내용은 교차 계정 액세스 포인트 권한 부여 를 참고하세요.
AWS Management Console, AWS CLI, REST API, 또는 AWS SDK로 모든 디렉터리 버킷에 액세스 포인트를 만들 수 있어요. 각 액세스 포인트는 단일 디렉터리 버킷에 연결되며, 버킷당 수백 개의 액세스 포인트를 만들 수 있어요. 액세스 포인트를 만들 때는 액세스 포인트 이름과 연결할 디렉터리 버킷을 선택해요. 액세스 포인트 이름은 사용자가 제공하는 기본 이름과, 버킷 위치의 Zone ID를 포함한 접미사, 그다음 --xa-s3로 구성돼요. 예를 들어 myaccesspoint-zoneID--xa-s3처럼요. Virtual Private Cloud(VPC)로 액세스 포인트에 대한 접근을 제한할 수도 있어요. 그런 다음 디렉터리 버킷 이름처럼 액세스 포인트 이름을 사용해 즉시 데이터를 읽고 쓸 수 있어요.
액세스 포인트 범위(scope)를 사용해 디렉터리 버킷에 대한 접근을 특정 접두사나 API 작업으로 제한할 수 있어요. 액세스 포인트에 범위를 추가하지 않으면, 액세스 포인트를 통해 접근할 때 디렉터리 버킷의 모든 접두사와 모든 API 작업으로 버킷의 객체 작업을 수행할 수 있어요. 액세스 포인트를 만든 뒤에는 AWS CLI, AWS SDK, 또는 REST API로 범위를 추가, 수정, 삭제할 수 있어요. 자세한 내용은 디렉터리 버킷용 액세스 포인트 범위 관리 를 참고하세요.
액세스 포인트를 만든 뒤에는 액세스 포인트 IAM 리소스 정책을 구성할 수 있어요. 자세한 내용은 액세스 포인트 정책 보기·편집·삭제 를 참고하세요.
참고
디렉터리 버킷 화면에서도 디렉터리 버킷용 액세스 포인트를 만들 수 있어요. 이렇게 하면 디렉터리 버킷 이름이 자동으로 제공되므로, 액세스 포인트를 만들 때 버킷을 선택할 필요가 없어요. 자세한 내용은 디렉터리 버킷 나열하기 를 참고하세요.
콘솔로 디렉터리 버킷용 액세스 포인트 만들기
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 엽니다.
- 탐색 표시줄에서 현재 표시된 AWS 리전의 이름을 선택합니다. 그다음 액세스 포인트를 만들 리전을 선택합니다. 액세스 포인트는 연결된 버킷과 같은 리전에 만들어야 해요.
- 왼쪽 탐색 창에서 Access points for directory buckets(디렉터리 버킷용 액세스 포인트)를 선택합니다.
- Access Points 페이지에서 Create access point(액세스 포인트 만들기)를 선택합니다.
- 자신의 계정 또는 다른 계정의 디렉터리 버킷용 액세스 포인트를 만들 수 있어요.
- 다른 AWS 계정의 버킷을 사용한다면 버킷 소유자가 액세스 포인트의 요청을 승인하도록 버킷 정책을 갱신해야 해요. 버킷 정책 예제는 교차 계정 액세스 포인트 권한 부여 를 참고하세요.
- 다른 계정의 디렉터리 버킷용 액세스 포인트를 만들려면 Directory bucket 필드에서 Specify a bucket in another account(다른 계정의 버킷 지정)를 선택하고, Bucket owner account ID에 버킷을 소유한 AWS 계정 ID를 입력하고, Bucket name에 기본 이름과 Zone ID를 포함한 버킷 이름(예:
bucket-base-name--zone-id--x-s3)을 입력합니다. - 자신의 계정의 디렉터리 버킷용 액세스 포인트를 만들려면 Directory bucket 필드에서 Choose a bucket in this account(이 계정의 버킷 선택)를 선택하고, Bucket name에 기본 이름과 Zone ID를 포함한 버킷 이름을 입력합니다. 목록에서 버킷을 선택하려면 Browse S3를 선택하고 디렉터리 버킷을 선택합니다.
- Access point name의 Base name 필드에 액세스 포인트의 기본 이름을 입력합니다. Zone ID와 전체 액세스 포인트 이름이 표시됩니다. 액세스 포인트 이름 규칙에 대한 자세한 내용은 디렉터리 버킷용 액세스 포인트 이름 규칙 을 참고하세요.
- Network origin(네트워크 원점)에서 virtual private cloud (VPC) 또는 Internet(인터넷) 중 하나를 선택합니다. **virtual private cloud (VPC)**를 선택하면 VPC ID 필드에 액세스 포인트와 함께 사용할 VPC의 ID를 입력합니다.
- (선택 사항) Access point scope(액세스 포인트 범위)에서 이 액세스 포인트에 범위를 적용하려면 Limit the scope of this access point using prefixes or permissions(접두사 또는 권한으로 이 액세스 포인트 범위 제한)을 선택합니다. 디렉터리 버킷의 접두사에 대한 접근을 제한하려면 Prefixes에 접두사 하나 이상을 입력합니다. 접두사를 더 추가하려면 Add prefix를 선택하고, 접두사를 제거하려면 Remove를 선택합니다. 참고 — 액세스 포인트 범위는 모든 접두사의 총 문자 수가 512자로 제한돼요. Add prefix 아래에서 남은 문자 수를 확인할 수 있어요. Permissions에서 액세스 포인트가 허용할 API 작업을 하나 이상 선택합니다. 데이터 작업을 제거하려면 데이터 작업 이름 옆의 X를 선택합니다.
- 액세스 포인트에 범위를 적용하지 않고 디렉터리 버킷의 모든 접두사와 모든 API 작업에 대한 접근을 허용하려면 Access point scope에서 Apply access to the entire bucket(전체 버킷 접근 적용)을 선택합니다.
- Create access point for directory bucket(디렉터리 버킷용 액세스 포인트 만들기)를 선택합니다. 액세스 포인트 이름과 기타 정보가 Access points for directory buckets 목록에 나타납니다.
AWS CLI 예제
다음 예제 명령은 계정 111122223333의 amzn-s3-demo-bucket--zone-id--x-s3 버킷에 example-ap라는 액세스 포인트를 만들어요.
aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3
VPC를 통해 액세스 포인트에 대한 접근을 제한하려면 --vpc 매개변수와 VPC ID를 포함하세요.
aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3 --vpc vpc-id
교차 계정 버킷용 액세스 포인트를 만들 때는 --bucket-account-id 매개변수를 포함하세요. 다음 예제 명령은 AWS 계정 444455556666이 소유한 amzn-s3-demo-bucket--zone-id--x-s3 버킷용 액세스 포인트를 AWS 계정 111122223333에 만들어요.
aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3 --bucket-account-id 444455556666
자세한 내용과 예제는 AWS CLI Command Reference의 create-access-point를 참고하세요.
REST API 예제
다음 예제 명령은 계정 111122223333의 amzn-s3-demo-bucket--zone-id--x-s3 버킷에 example-ap라는 액세스 포인트를 만들고 vpc-id VPC를 통해 접근을 제한해요(선택 사항).
PUT /v20180820/accesspoint/example-ap--zoneID--xa-s3 HTTP/1.1
Host: s3express-control.region.amazonaws.com
x-amz-account-id: 111122223333
amzn-s3-demo-bucket--zone-id--x-s3s
111122223333
vpc-id
응답:
HTTP/1.1 200
"arn:aws:s3express:region:111122223333:accesspoint/example-ap--zoneID--xa-s3"
example-ap--zoneID--xa-s3
AWS SDK를 사용해 액세스 포인트를 만들 수 있어요. 자세한 내용은 Amazon Simple Storage Service API Reference의 지원 SDK 목록을 참고하세요.