버킷 정책을 사용하여 VPC 엔드포인트에서 액세스 제어 - Amazon Simple Storage Service

버킷 정책을 사용하여 VPC 엔드포인트에서 액세스 제어

Amazon S3 버킷 정책을 사용하여 특정 Virtual Private Cloud(VPC) 엔드포인트 또는 특정 VPC의 버킷에 대한 액세스를 제어할 수 있습니다. 이 섹션에는 VPC 엔드포인트에서 Amazon S3 버킷 액세스를 제어하는 데 사용할 수 있는 예제 버킷 정책이 포함되어 있습니다. VPC 엔드포인트의 설정 방법을 알아보려면 VPC 사용 설명서VPC 엔드포인트를 참조하십시오.

VPC에서는 AWS 리소스를 사용자가 정의한 가상 네트워크로 시작할 수 있습니다. VPC 엔드포인트를 사용하면 인터넷, VPN 연결, NAT 인스턴스 또는 AWS Direct Connect를 통해 액세스하지 않고도 VPC와 다른 AWS 서비스 간에 프라이빗 연결을 생성할 수 있습니다.

Amazon S3용 VPC 엔드포인트는 Amazon S3로의 연결만 허용하는 VPC 내 논리적 엔터티입니다. VPC 엔드포인트는 Amazon S3로 요청을 라우팅하고 응답을 다시 VPC로 라우팅합니다. VPC 종단점은 요청이 라우팅되는 방식만을 변경합니다. Amazon S3 퍼블릭 엔드포인트와 DNS 이름은 계속해서 VPC 엔드포인트로 작업합니다. Amazon S3가 포함된 VPC 엔드포인트 사용에 대한 중요 정보는 VPC 사용 설명서게이트웨이 VPC 엔드포인트Amazon S3에 대한 엔드포인트를 참조하십시오.

Amazon S3용 VPC 엔드포인트는 Amazon S3 데이터에 대한 액세스를 제어하는 두 가지 방법을 제공합니다.

  • 사용자는 특정 VPC 종단점을 통해 허용되는 요청, 사용자 또는 그룹을 제어할 수 있습니다. 이러한 유형의 액세스 제어에 대한 자세한 내용은 VPC 사용 설명서VPC 엔드포인트로 서비스 액세스 제어를 참조하십시오.

  • Amazon S3 버킷 정책을 사용하여 버킷에 액세스할 수 있는 VPC 또는 VPC 엔드포인트를 제어할 수 있습니다. 이러한 유형의 버킷 정책 제어에 대한 예는 액세스 제한에 대한 다음 주제를 참조하십시오.

중요

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

특정 VPC 엔드포인트에 대한 액세스 제한

다음은 ID가 vpce-1a2b3c4d인 VPC 엔드포인트에서만 특정 버킷 awsexamplebucket1에 대한 액세스를 제한하는 Amazon S3 버킷 정책의 예제입니다. 이 정책은 지정된 엔드포인트가 사용되지 않으면 버킷에 대한 모든 액세스를 거부합니다. aws:SourceVpce 조건이 엔드포인트를 지정하는 데 사용됩니다. aws:SourceVpce 조건은 VPC 엔드포인트 리소스의 Amazon 리소스 이름(ARN)을 요구하지 않고 VPC 엔드포인트 ID만 요구합니다. 정책에서 조건을 사용하는 것에 대한 자세한 내용은 Amazon S3 조건 키 예을 참조하십시오.

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

  • 콘솔 요청은 지정된 VPC 종단점에서 발생하지 않으므로 이 정책은 지정된 버킷에 대한 콘솔 액세스를 사용 중지합니다.

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::awsexamplebucket1", "arn:aws:s3:::awsexamplebucket1/*"], "Condition": { "StringNotEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }

특정 VPC에 대한 액세스 제한

aws:SourceVpc 조건을 사용하여 특정 VPC에 대한 액세스를 제한하는 버킷 정책을 만들 수 있습니다. 이는 동일한 VPC에 여러 VPC 엔드포인트가 구성되어 있으며, 모든 엔드포인트에서 Amazon S3 버킷에 대한 액세스를 관리하고자 하는 경우 유용합니다. 다음은 VPC awsexamplebucket1 외부에 있는 자가 vpc-111bbb22 및 그 객체에 액세스할 수 없도록 거부하는 정책의 예제입니다. 이 정책은 지정된 VPC가 사용되지 않으면 버킷에 대한 모든 액세스를 거부합니다. 이 문은 액세스 권한을 부여하지 않으므로 Allow 문을 별도로 추가해야 합니다. vpc-111bbb22 조건 키는 VPC 리소스의 ARN을 요구하지 않고 VPC ID만 요구합니다.

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

  • 콘솔 요청은 지정된 VPC에서 발생하지 않으므로 이 정책은 지정된 버킷에 대한 콘솔 액세스를 사용 중지합니다.

{ "Version": "2012-10-17", "Id": "Policy1415115909153", "Statement": [ { "Sid": "Access-to-specific-VPC-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::awsexamplebucket1", "arn:aws:s3:::awsexamplebucket1/*"], "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-111bbb22" } } } ] }