인증을 사용하지 않고 S3 버킷에 비공개로 연결하도록 Amazon VPC를 구성하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Virtual Private Cloud(VPC)에서 Amazon Simple Storage Service(S3) 버킷으로 프라이빗 연결을 만들고 싶습니다. 그러나 AWS Identity and Access Management(IAM) 자격 증명과 같은 인증을 사용하고 싶지 않습니다. 이 유형의 프라이빗 연결은 어떻게 만들 수 있습니까?

간략한 설명

Amazon Virtual Private Cloud(Amazon VPC)에서 버킷에 액세스하는 경우 인증하지 않고 비공개로 S3 버킷에 액세스할 수 있습니다. 하지만 사용된 VPC 엔드포인트가 Amazon S3를 가리키는지 확인해야 합니다.

다음 단계에 따라 S3 버킷에 대한 VPC 엔드포인트 액세스를 설정합니다.

1.    Amazon S3에 대한 VPC 엔드포인트를 생성합니다.

2.    VPC 엔드포인트에서 액세스를 허용하는 버킷 정책을 추가합니다.

해결 방법

시작하기 전에 버킷에 액세스할 VPC를 생성해야 합니다.

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

1.    Amazon VPC 콘솔을 엽니다.

2.    탐색 모음에서 리전 선택기를 사용하여 AWS 리전을 S3 버킷과 동일한 리전으로 설정합니다.

3.    탐색 창에서 엔드포인트를 선택합니다.

4.    엔드포인트 생성을 선택합니다.

5.    서비스 범주에서 ‘AWS 서비스’가 선택되었는지 확인합니다.

6.    서비스 이름에서 ‘s3’ 서비스 이름 및 ‘게이트웨이’ 유형을 선택합니다. 예를 들어, 미국 동부(버지니아 북부)의 서비스 이름은 com.amazonaws.us-east-1.s3입니다.

7.    VPC의 경우, VPC를 선택합니다.

8.    라우팅 테이블 구성에서 엔드포인트에 액세스하도록 허용하려는 연결된 서브넷을 기반으로 라우팅 테이블을 선택합니다.

9.    정책에서 전체 액세스가 선택되었는지 확인합니다.

10.    엔드포인트 생성을 선택합니다.

11.    VPC 엔드포인트 ID를 적어둡니다. 이후 단계를 수행하려면 이 엔드포인트 ID가 필요합니다.

VPC 엔드포인트에서 액세스를 허용하는 버킷 정책 추가

생성한 VPC 엔드포인트에서 요청이 수신된 경우 사용자가 S3 버킷에 액세스할 수 있는 조건을 포함하도록 버킷 정책을 업데이트합니다.

사용자가 객체(s3:GetObject)를 다운로드할 수 있도록 다음과 유사한 버킷 정책을 사용합니다.

{
   "Version": "2012-10-17",
   "Id": "Policy1415115909152",
   "Statement": [
     {
       "Sid": "Access-to-specific-VPCE-only",
       "Principal": "*",
       "Action": "s3:GetObject",
       "Effect": "Allow",
       "Resource": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"],
       "Condition": {
         "StringEquals": {
           "aws:sourceVpce": "vpce-1a2b3c4d"
         }
       }
     }
   ]
}

aws:sourceVpce 값의 경우, 이전에 생성한 엔드포인트의 VPC 엔드포인트 ID를 입력해야 합니다.

중요: 이 정책은 VPC 엔드포인트로부터 액세스를 허용하지만, 엔드포인트 외부의 액세스를 모두 거부하지는 않습니다. 동일한 계정의 사용자가 인증되면 이 정책은 계속해서 사용자가 VPC 엔드포인트 외부에서도 버킷에 액세스하도록 허용합니다. 보다 제한적인 버킷 정책이 필요한 경우 엔드포인트 외부의 모든 요청에 대한 액세스를 명시적으로 거부하는 정책을 사용합니다.


관련 정보

Amazon S3에 대한 게이트웨이 엔드포인트

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음