S3 on Outposts에 대한 AWS PrivateLink - Amazon Simple Storage Service

S3 on Outposts에 대한 AWS PrivateLink

S3 on Outposts는 가상 프라이빗 네트워크 내의 프라이빗 엔드포인트를 통해 S3 on Outposts 스토리지에 대한 직접 관리 액세스를 제공하는 AWS PrivateLink를 지원합니다. 이를 통해 내부 네트워크 아키텍처를 간소화하고 가상 프라이빗 클라우드(VPC)의 프라이빗 IP 주소를 사용하여 Outposts 객체 스토리지에 대한 관리 작업을 수행할 수 있습니다. AWS PrivateLink를 사용하면 퍼블릭 IP 주소나 프록시 서버를 사용할 필요가 없습니다.

Amazon S3 on Outposts에 대한 AWS PrivateLink를 사용하면 가상 프라이빗 클라우드(VPC)에서 인터페이스 VPC 엔드포인트를 프로비저닝하여 S3 on Outposts 버킷 관리 및 엔드포인트 관리 API에 액세스할 수 있습니다. 인터페이스 VPC 엔드포인트는 가상 프라이빗 네트워크(VPN) 또는 AWS Direct Connect를 통해 VPC 또는 온프레미스에 배포된 애플리케이션에서 직접 액세스할 수 있습니다. 버킷 및 엔드포인트 관리 API는 AWS PrivateLink를 통해 액세스할 수 있습니다. AWS PrivateLink는 GET, PUT 및 이와 유사한 API와 같은 데이터 전송 API 작업을 지원하지 않습니다. 이러한 작업은 이미 S3 on Outposts 엔드포인트 및 액세스 포인트 구성을 통해 비공개로 전송됩니다. 자세한 내용은 S3 on Outposts에 대한 네트워킹 섹션을 참조하세요.

인터페이스 엔드포인트는 VPC의 서브넷에서 프라이빗 IP 주소가 할당된 하나 이상의 탄력적 네트워크 인터페이스(ENI)로 표시됩니다. S3 on Outposts에 대한 엔드포인트 인터페이스 요청은 AWS 네트워크의 S3 on Outposts 버킷 및 엔드포인트 관리 API로 자동으로 라우팅됩니다. 또한, AWS Direct Connect 또는 AWS Virtual Private Network(AWS VPN)을 통해 온프레미스 애플리케이션에서 VPC의 인터페이스 엔드포인트에 액세스할 수 있습니다. VPC를 온프레미스 네트워크에 연결하는 방법에 대한 자세한 내용은 AWS Direct Connect 사용 설명서AWS Site-to-Site VPN 사용 설명서를 참조하세요.

인터페이스 엔드포인트는 다음 다이어그램과 같이 AWS 네트워크를 통해 그리고 AWS PrivateLink를 통해 S3 on Outposts 버킷 및 엔드포인트 관리 API에 대한 요청을 라우팅합니다.


            데이터 흐름 다이어그램은 인터페이스 엔드포인트가 AWS 네트워크를 통해 AWS PrivateLink를 사용하여 S3 on Outposts 버킷 및 엔드포인트 관리 API에 대한 요청을 라우팅하는 방식을 보여줍니다.

인터페이스 엔드포인트에 대한 일반적인 정보는 AWS PrivateLink 가이드인터페이스 VPC 엔드포인트(AWS PrivateLink)를 참조하세요.

AWS PrivateLink를 통해 S3 on Outposts 버킷 및 엔드포인트 관리 API에 액세스하는 경우 VPC 제한이 적용됩니다. 자세한 내용은 AWS PrivateLink 가이드인터페이스 엔드포인트 속성 및 제한AWS PrivateLink 할당량을 참조하세요.

또한 AWS PrivateLink는 다음을 지원하지 않습니다.

S3 on Outposts 인터페이스 엔드포인트 액세스

AWS PrivateLink를 사용하여 S3 on Outposts 버킷 및 엔드포인트 관리 API에 액세스하려면 엔드포인트별 DNS 이름을 사용하도록 애플리케이션을 업데이트해야 합니다. 인터페이스 엔드포인트를 생성할 때 AWS PrivateLink에서는 2가지 유형의 엔드포인트별 S3 on Outposts 이름인 리전별영역별을 생성합니다.

  • 리전별 DNS 이름 - 고유한 VPC 엔드포인트 ID, 서비스 식별자, AWS 리전, vpce.amazonaws.com(예: vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com)이 포함됩니다.

  • 영역별 DNS 이름 - 고유한 VPC 엔드포인트 ID, 가용 영역, 서비스 식별자, AWS 리전, vpce.amazonaws.com(예: vpce-1a2b3c4d-5e6f-us-east-1a.s3-outposts.us-east-1.vpce.amazonaws.com)이 포함됩니다. 아키텍처가 가용 영역을 분리하는 경우 이 옵션을 사용할 수 있습니다. 예를 들어, 오류를 제한하거나 리전별 데이터 전송 비용을 줄이는 데 영역별 DNS 이름을 사용할 수 있습니다.

중요

S3 on Outposts 인터페이스 엔드포인트는 퍼블릭 DNS 도메인에서 확인됩니다. S3 on Outposts는 프라이빗 DNS를 지원하지 않습니다. 모든 버킷 및 엔드포인트 관리 API에 --endpoint-url 파라미터를 사용합니다.

--region--endpoint-url 파라미터를 사용하여 S3 on Outposts 인터페이스 엔드포인트를 통해 버킷 관리 및 엔드포인트 관리 API에 액세스합니다.

예 : 엔드포인트 URL을 사용하여 S3 제어 API가 있는 버킷 나열

다음 예제에서 리전 us-east-1, VPC 엔드포인트 URL vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 및 계정 ID 111122223333을 해당하는 정보로 바꿉니다.

aws s3control list-regional-buckets --region us-east-1 --endpoint-url https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com --account-id 111122223333

SDK를 최신 버전으로 업데이트하고, S3 on Outposts 인터페이스 엔드포인트에 대한 S3 제어 API에 액세스하기 위해 엔드포인트 URL을 사용하도록 클라이언트를 구성합니다. 자세한 내용은 AWS PrivateLink에 대한 AWS SDK 예제를 참조하세요.

SDK for Python (Boto3)
예 : 엔드포인트 URL을 사용하여 S3 제어 API에 액세스

다음 예제에서 리전 us-east-1 및 VPC 엔드포인트 URL vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com을 해당하는 정보로 바꿉니다.

control_client = session.client( service_name='s3control', region_name='us-east-1', endpoint_url='https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com' )

자세한 정보는 Boto3 개발자 안내서의 AWS PrivateLink for Amazon S3를 참조하세요.

SDK for Java 2.x
예 : 엔드포인트 URL을 사용하여 S3 제어 API에 액세스

다음 예제에서 VPC 엔드포인트 URL vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com 및 리전 Region.US_EAST_1을 해당하는 정보로 바꿉니다.

// control client Region region = Region.US_EAST_1; s3ControlClient = S3ControlClient.builder().region(region) .endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com")) .build()

자세한 내용을 알아보려면 AWS SDK for Java API 참조S3ControlClient 섹션을 참조하세요.

온프레미스 DNS 구성 업데이트

엔드포인트별 DNS 이름을 사용하여 S3 on Outposts 버킷 관리 및 엔드포인트 관리 API용 인터페이스 엔드포인트에 액세스할 때는 온프레미스 DNS 확인자를 업데이트할 필요가 없습니다. 퍼블릭 S3 on Outposts DNS 도메인에서 인터페이스 엔드포인트의 프라이빗 IP 주소로 엔드포인트별 DNS 이름을 확인할 수 있습니다.

S3 on Outposts에 대한 VPC 엔드포인트 생성

S3 on Outposts에 대한 VPC 인터페이스 엔드포인트를 생성하려면 AWS PrivateLink 설명서 VPC 엔드포인트 생성을 참조하세요.

S3 on Outposts에 대한 버킷 정책 및 VPC 엔드포인트 정책 생성

S3 on Outposts에 대한 액세스를 제어하는 VPC 엔드포인트에 엔드포인트 정책을 연결할 수 있습니다. S3 on Outposts 버킷 정책의 aws:sourceVpce 조건을 사용하여 특정 VPC 엔드포인트의 특정 버킷에 대한 액세스를 제한할 수도 있습니다. VPC 엔드포인트 정책을 사용하면 S3 on Outposts 버킷 관리 API 및 엔드포인트 관리 API에 대한 액세스를 제어할 수 있습니다. 버킷 정책을 사용하면 S3 on Outposts 버킷 관리 API에 대한 액세스를 제어할 수 있습니다. 그러나 aws:sourceVpce를 사용하여 S3 on Outposts의 객체 작업에 대한 액세스를 관리할 수는 없습니다.

S3 on Outposts 액세스 정책은 다음과 같은 정보를 지정합니다.

  • 이 작업을 허용하거나 거부하는 AWS Identity and Access Management(IAM) 보안 주체

  • 허용되거나 거부되는 S3 제어 작업

  • 작업이 허용되거나 거부되는 S3 on Outposts 리소스

다음 예에서는 버킷 또는 엔드포인트에 대한 액세스를 제한하는 정책을 보여줍니다. VPC 연결에 대한 자세한 내용은 AWS 백서, Amazon Virtual Private Cloud(VPC) 연결 옵션에서 네트워크와 VPC 연결 옵션을 참조하세요.

중요
  • 이 섹션에서 설명하는 VPC 엔드포인트에 대한 예제 정책을 적용할 경우 의도치 않게 버킷에 대한 액세스를 차단할 수 있습니다. VPC 엔드포인트에서 시작하는 연결에 대한 버킷 액세스를 제한하기 위한 버킷 권한은 버킷에 대한 모든 연결을 차단할 수 있습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 버킷 정책의 VPC 또는 VPC 엔드포인트 ID가 올바르지 않습니다.를 참조하세요. 버킷에 액세스할 수 있도록 정책을 수정하는 방법은 무엇입니까?(AWS Support 지식 센터)를 참조하세요.

  • 다음 예제 버킷 정책을 사용하기 전에 VPC 엔드포인트 ID를 사용 사례에 적합한 값으로 바꾸세요. 그렇지 않으면 버킷에 액세스할 수 없습니다.

  • 정책에서 특정 VPC 엔드포인트의 S3 on Outposts 버킷에 대한 액세스만 허용하는 경우 콘솔 요청이 지정된 VPC 엔드포인트에서 발생하지 않으므로 해당 버킷에 대한 콘솔 액세스가 비활성화됩니다.

특정 S3 on Outposts 버킷에 대한 액세스만 제한하는 엔드포인트 정책을 생성할 수 있습니다. 다음 정책은 GetBucketPolicy 작업에 대한 액세스를 example-outpost-bucket으로만 제한합니다. 이 정책을 사용하려면 예제 값을 사용자의 값으로 바꾸어야 합니다.

{ "Version": "2012-10-17", "Id": "Policy1415115909151", "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": {"AWS":"111122223333"}, "Action": "s3-outposts:GetBucketPolicy", "Effect": "Allow", "Resource": "arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket" } ] }

다음 S3 on Outposts 버킷 정책은 vpce-1a2b3c4d VPC 엔드포인트를 통해 example-outpost-bucket 버킷에서 GetBucketPolicy에 대한 액세스를 거부합니다.

aws:sourceVpce 조건은 엔드포인트를 지정하며, VPC 엔드포인트 리소스에 대한 Amazon 리소스 이름(ARN)을 필요로 하지 않고 엔드포인트 ID만 필요로 합니다. 이 정책을 사용하려면 예제 값을 사용자의 값으로 바꾸어야 합니다.

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Deny-access-to-specific-VPCE", "Principal": {"AWS":"111122223333"}, "Action": "s3-outposts:GetBucketPolicy", "Effect": "Deny", "Resource": "arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket", "Condition": { "StringEquals": {"aws:sourceVpce": "vpce-1a2b3c4d"} } } ] }