2017-11-23 4 views
0

다른 지역의 VPC에서 S3 버킷에 s3:GetObject 액세스를 허용하고 싶습니다.다른 지역의 특정 VPC에서 특정 S3 버킷에 액세스하는 방법

S3 버킷과 VPC가 같은 지역에 있으면 VPC 끝점을 사용할 수 있다는 것을 알고 있습니다. 하지만 다른 지역의 액세스를 허용하려면 어떤 옵션이 있습니까?

옵션 1 :

이 지역의 모든 가용 영역의 모든 서브넷에 대한 NAT 게이트웨이를 만들고 S3 버킷 정책에 NAT 게이트웨이 '유동 IP에서 액세스 할 수 있습니다.

그러나 당신이 많은 NAT 게이트웨이 필요한이 방법 (예를 : 미국 동부 1 지역 6)

다른 옵션?

+0

VPN. 이것이 당신이 필요로하는 것입니다. –

+0

* "지역의 모든 가용 영역의 모든 서브넷에 대해 NAT 게이트웨이를 만듭니다."* 실제로는 아니지만 ... 소스 VPC 당 하나씩 또는 내결함성을 위해 VPC 당 AZ 당 하나씩 "필요"합니다. –

+0

최소 설치 : 1 AZ에서 1 NAT 게이트웨이, 다른 AZ에서 EC2 인스턴스가 해당 NAT 게이트웨이를 사용할 수 있다면 @ Michael-sqlbot? – mash

답변

0

두 VPC의 사이에 VPN 연결을 설정해야합니다

  • 먼저 VPC는 ​​VPC 엔드 포인트를 사용 S3 &와 같은 지역에 있습니다.

  • 두 번째 VPC는 ​​다른 영역에 있습니다.

VPC 피어링 연결은 동일한 지역이 아니므로이를 활용할 수 없습니다.

+0

이것에 대해 자세히 설명해 주시겠습니까? 검색을 한 후 VPN을 추가하려면 일부 VPN 소프트웨어 (예 : softether)를 실행하는 EC2 인스턴스를 유지 관리해야합니다. – mash

0

간단히 대답하면 다른 지역의 VPC에서 한 영역의 S3 버킷에 대한 액세스를 제한 할 수 없다는 것입니다. IP 주소를 사용하여 액세스를 제어하는 ​​S3 정책을 만들 수 있습니다. NAT 게이트웨이에 공용 IP 주소가 있고 인스턴스에 공용 주소가있을 수 있습니다.

트래픽이 VPC에서 나가면 공용 IP 주소 공간이 사용됩니다. S3 버킷이 이러한 요청을 받으면 어떤 VPC가 시작되었는지 알 수 없습니다. 이는 VPC 엔드 포인트 및 사설 링크가 생성 된 이유 중 하나입니다.

아래는 IP 주소를 사용하여 권한을 제어하는 ​​S3 정책의 예입니다. VPC에서 실제 공개 주소로 수정하십시오.

{ 
    "Version": "2012-10-17", 
    "Id": "S3PolicyId1", 
    "Statement": [ 
     { 
      "Sid": "statement1", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action":["s3:GetObject"] , 
      "Resource": "arn:aws:s3:::examplebucket/*", 
      "Condition" : { 
       "IpAddress" : { 
        "aws:SourceIp": "192.168.143.0/24" 
       }, 
       "NotIpAddress" : { 
        "aws:SourceIp": "192.168.143.188/32" 
       } 
      } 
     } 
    ] 
} 
+0

네,하지만 다른 옵션을 찾으시는 중입니다. – mash

+0

귀하의 의견을 이해할 수 없습니다. –

관련 문제