버킷 정책으로 VPC 엔드포인트에서의 액세스 제어
버킷 정책으로 VPC 엔드포인트에서의 액세스 제어 (Controlling access from VPC endpoints with bucket policies)
Amazon S3 버킷 정책을 사용해 특정 가상 프라이빗 클라우드(VPC) 엔드포인트 또는 특정 VPC에서 버킷에 대한 액세스를 제어할 수 있어요. 이 섹션에는 VPC 엔드포인트에서 Amazon S3 버킷 액세스를 제어하는 데 사용할 수 있는 예시 버킷 정책이 포함돼요. VPC 엔드포인트 설정 방법을 알아보려면 VPC 사용자 가이드의 VPC 엔드포인트를 참고하세요.
VPC를 사용하면 정의한 가상 네트워크에 AWS 리소스를 시작할 수 있어요. VPC 엔드포인트를 사용하면 VPC와 다른 AWS 서비스 사이에 프라이빗 연결을 만들 수 있어요. 이 프라이빗 연결은 인터넷, 가상 사설 네트워크(VPN) 연결, NAT 인스턴스 또는 Direct Connect를 통한 액세스가 필요하지 않아요.
Amazon S3용 VPC 엔드포인트는 VPC 내에서 Amazon S3에만 연결을 허용하는 논리적 엔터티예요. VPC 엔드포인트는 요청을 Amazon S3로 라우팅하고 응답을 VPC로 다시 라우팅해요. VPC 엔드포인트는 요청이 라우팅되는 방식만 변경해요. Amazon S3 공개 엔드포인트와 DNS 이름은 VPC 엔드포인트와 함께 계속 작동해요. Amazon S3와 함께 VPC 엔드포인트를 사용하는 것에 대한 중요 정보는 VPC 사용자 가이드의 게이트웨이 엔드포인트와 Amazon S3용 게이트웨이 엔드포인트를 참고하세요.
Amazon S3용 VPC 엔드포인트는 Amazon S3 데이터에 대한 액세스를 제어하는 두 가지 방법을 제공해요.
- 특정 VPC 엔드포인트를 통해 허용되는 요청, 사용자 또는 그룹을 제어할 수 있어요. 이러한 유형의 액세스 제어에 대한 정보는 VPC 사용자 가이드의 엔드포인트 정책을 사용한 VPC 엔드포인트 액세스 제어를 참고하세요.
- Amazon S3 버킷 정책을 사용해 어떤 VPC 또는 VPC 엔드포인트가 버킷에 액세스할 수 있는지 제어할 수 있어요. 이러한 유형의 버킷 정책 액세스 제어 예시는 액세스 제한에 대한 다음 주제를 참고하세요.
출처: 문서
본문
- 특정 VPC 엔드포인트로 액세스 제한
- 특정 VPC로 액세스 제한
- IPv6 VPC 엔드포인트로 액세스 제한
중요 이 섹션에 설명된 VPC 엔드포인트용 Amazon S3 버킷 정책을 적용할 때 의도치 않게 버킷에 대한 액세스를 차단할 수 있어요. VPC 엔드포인트에서 발생하는 연결로 버킷 액세스를 특별히 제한하려는 버킷 권한은 버킷에 대한 모든 연결을 차단할 수 있어요. 이 문제를 해결하는 방법에 대한 정보는 AWS Support 지식 센터의 버킷 정책에 잘못된 VPC 또는 VPC 엔드포인트 ID가 있을 때 어떻게 해결하나요?를 참고하세요.
특정 VPC 엔드포인트로 액세스 제한
다음은 ID가 vpce-0abcdef1234567890인 VPC 엔드포인트에서만 특정 버킷 amzn-s3-demo-bucket에 대한 액세스를 제한하는 Amazon S3 버킷 정책 예시예요. 지정된 엔드포인트가 사용되지 않으면 정책은 버킷에 대한 모든 액세스를 거부해요. aws:SourceVpce 조건이 엔드포인트를 지정해요. aws:SourceVpce 조건은 VPC 엔드포인트 리소스에 대한 Amazon 리소스 이름(ARN)이 아니라 VPC 엔드포인트 ID만 요구해요. 정책에서 조건 사용에 대한 자세한 내용은 조건 키를 사용한 버킷 정책 예시를 참고하세요.
중요 다음 예시 정책을 사용하기 전에 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*"],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-0abcdef1234567890"
}
}
}
]
}
특정 VPC로 액세스 제한
aws:SourceVpc 조건을 사용해 특정 VPC에 대한 액세스를 제한하는 버킷 정책을 만들 수 있어요. 이는 같은 VPC에 여러 VPC 엔드포인트가 구성되어 있고 모든 엔드포인트에 대해 Amazon S3 버킷에 대한 액세스를 관리하려는 경우 유용해요. 다음은 VPC vpc-1a2b3c4d 밖의 누구로부터 amzn-s3-demo-bucket과 그 객체에 대한 액세스를 거부하는 정책 예시예요. 지정된 VPC가 사용되지 않으면 정책은 버킷에 대한 모든 액세스를 거부해요. 이 문은 버킷에 대한 액세스를 부여하지 않아요. 액세스를 부여하려면 별도의 Allow 문을 추가해야 해요. vpc-1a2b3c4d 조건 키는 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*"],
"Condition": {
"StringNotEquals": {
"aws:SourceVpc": "vpc-1a2b3c4d"
}
}
}
]
}
IPv6 VPC 엔드포인트로 액세스 제한
다음 예시 정책은 요청이 지정된 VPC 엔드포인트(vpce-0a1b2c3d4e5f6g)에서 발생하고 소스 IP 주소가 제공된 IPv6 CIDR 블록과 일치하지 않는 한 amzn-s3-demo-bucket 버킷과 그 객체에 대한 모든 Amazon S3(s3:) 작업을 거부해요.
{
"Version": "2012-10-17",
"Id": "Policy1415115909154",
"Statement": [
{
"Sid": "AccessSpecificIPv6VPCEOnly",
"Action": "s3:*",
"Effect": "Deny",
"Resource": ["arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*"],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-0a1b2c3d4e5f6g"
},
"NotIpAddress": {
"aws:VpcSourceIp": "2001:db8::/32"
}
}
}
]
}
특정 IP 또는 VPC를 기준으로 버킷에 대한 액세스를 제한하는 방법에 대한 정보는 AWS re:Post 지식 센터의 특정 VPC 엔드포인트 또는 IP 주소만 내 Amazon S3 버킷에 액세스하도록 어떻게 허용하나요?를 참고하세요.