Amazon DynamoDB에 대한 게이트웨이 엔드포인트 - Amazon Virtual Private Cloud

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

VPC에서 게이트웨이 VPC 엔드포인트를 사용하여 Amazon DynamoDB에 액세스할 수 있습니다. 게이트웨이 엔드포인트를 생성한 후 VPC에서 DynamoDB로 전송되는 트래픽에 대해 해당 엔드포인트를 라우팅 테이블의 대상으로 추가할 수 있습니다.

게이트웨이 엔드포인트 사용에 따르는 추가 요금은 없습니다.

고려 사항

  • 게이트웨이 엔드포인트는 해당 엔드포인트를 생성한 리전에서만 사용할 수 있습니다. DynamoDB 테이블과 동일한 리전에서 게이트웨이 엔드포인트를 생성해야 합니다.

  • Amazon DNS 서버를 사용 중인 경우 VPC에 대해 DNS 호스트 이름 및 DNS 확인을 모두 활성화해야 합니다. 또한 자체 DNS 서버를 사용하는 경우 DynamoDB에 대한 요청이 AWS에서 유지 관리하는 IP 주소로 올바르게 확인되어야 합니다.

  • 게이트웨이 엔드포인트를 통해 DynamoDB에 액세스하는 인스턴스의 보안 그룹에 대한 규칙은 DynamoDB에서 이동하는 트래픽을 허용해야 합니다. 보안 그룹 규칙에서 DynamoDB 접두사 목록의 ID를 참조할 수 있습니다.

  • 게이트웨이 엔드포인트를 통해 DynamoDB에 액세스하는 인스턴스의 서브넷에 대한 네트워크 ACL은 DynamoDB에서 이동하는 트래픽을 허용해야 합니다. 네트워크 ACL 규칙의 접두사 목록은 참조할 수 없지만 DynamoDB의 접두사 목록에서 DynamoDB의 IP 주소 범위를 가져올 수 있습니다.

  • DynamoDB는 (테이블 등에 대한) 리소스 기반 정책을 지원하지 않습니다. DynamoDB에 대한 액세스는 엔드포인트 정책과 개별 사용자 및 역할에 대한 정책을 통해 제어됩니다.

  • AWS CloudTrail을 사용하여 DynamoDB 작업을 기록할 경우 로그 파일에는 서비스 소비자 VPC에 있는 EC2 인스턴스의 프라이빗 IP 주소와 엔드포인트를 통해 수행된 모든 요청에 대한 게이트웨이 엔드포인트 ID가 포함되어 있습니다.

  • 게이트웨이 엔드포인트는 IPv4 트래픽만 지원합니다.

  • 해당 서브넷에 있는 인스턴스의 원본 IPv4 주소는 퍼블릭 IPv4 주소에서 VPC의 프라이빗 IPv4 주소로 변경됩니다. 엔드포인트는 네트워크 라우팅을 스위칭하고 열린 TCP 연결을 끊습니다. 퍼블릭 IPv4 주소를 사용한 이전 연결은 다시 시작되지 않습니다. 따라서 게이트웨이 엔드포인트를 생성하거나 수정할 때는 중요한 작업을 실행하지 않는 것이 좋습니다. 또는 연결이 끊어질 경우 소프트웨어에서 DynamoDB에 자동으로 다시 연결할 수 있는지 테스트하세요.

  • 엔드포인트 연결은 VPC 외부로 확장할 수 없습니다. VPN 연결, VPC 피어링 연결, 전송 게이트웨이 또는 VPC의 AWS Direct Connect 연결의 반대쪽에 있는 리소스는 게이트웨이 엔드포인트를 사용하여 DynamoDB와 통신할 수 없습니다.

  • 계정의 기본 할당량은 리전당 게이트웨이 엔드포인트 20개이며 조정 가능합니다. 또한 VPC당 게이트웨이 엔드포인트는 255개로 제한됩니다.

게이트웨이 엔드포인트 생성

다음 절차에 따라 DynamoDB에 연결하는 게이트웨이 엔드포인트를 생성합니다.

콘솔을 사용하여 게이트웨이 엔드포인트 생성하기
  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

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

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

  4. 서비스 범주(Service category)에서 AWS 서비스를 선택합니다.

  5. 서비스(Services)에서 유형: 게이트웨이(Type: Gateway) 필터를 추가하고 com.amazonaws.region.dynamodb를 선택합니다.

  6. VPC에서 엔드포인트를 생성할 VPC를 선택합니다.

  7. 라우팅 테이블(Route tables)에서 엔드포인트에서 사용할 라우팅 테이블을 선택합니다. 서버로 전송되는 트래픽을 가리키는 라우팅이 엔드포인트 네트워크 인터페이스에 자동으로 추가됩니다.

  8. 정책(Policy)에서 모든 액세스(Full access)를 선택하여 VPC 엔드포인트를 통한 모든 리소스에 대한 모든 보안 주체의 모든 작업을 허용합니다. 또는 사용자 지정(Custom)을 선택하여 VPC 엔드포인트를 통해 리소스에 대한 작업을 수행하기 위해 보안 주체에 필요한 권한을 제어하는 VPC 엔드포인트 정책을 연결합니다.

  9. (선택 사항) 태그를 추가하려면 새 태그 추가를 선택하고 태그 키와 태그 값을 입력합니다.

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

명령줄을 사용하여 게이트웨이 엔드포인트 생성하기

IAM 정책을 사용하여 액세스 제어

특정 VPC 엔드포인트를 사용하여 DynamoDB 테이블에 액세스할 수 있는 IAM 보안 주체를 제어하는 IAM 정책을 생성할 수 있습니다.

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

aws:sourceVpce 조건 키를 사용하여 특정 VPC 엔드포인트에 대한 액세스를 제한하는 정책을 생성할 수 있습니다. 다음 정책은 지정된 VPC 엔드포인트를 사용하지 않는 경우 계정의 DynamoDB 테이블에 대한 액세스를 거부합니다. 이 예제에서는 해당 사용 사례에 필요한 액세스를 허용하는 정책 문도 있다고 가정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-from-specific-endpoint", "Effect": "Deny", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:region:account-id:table/*", "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-11aa22bb" } } } ] }
예: 특정 IAM 역할의 액세스 허용

특정 IAM 역할을 사용한 액세스를 허용하는 정책을 생성할 수 있습니다. 다음 정책은 지정된 IAM 역할에 액세스 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-from-specific-IAM-role", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": "arn:aws:iam::111122223333:role/role_name" } } } ] }
예: 특정 계정의 액세스 허용

특정 계정의 액세스만 허용하는 정책을 생성할 수 있습니다. 다음 정책은 지정된 계정의 사용자에 액세스 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-from-account", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": "111122223333" } } } ] }

라우팅 테이블 연결

게이트웨이 엔드포인트와 연결된 라우팅 테이블을 변경할 수 있습니다. 라우팅 테이블을 연결하면 서비스로 전송되는 트래픽을 가리키는 라우팅이 엔드포인트 네트워크 인터페이스에 자동으로 추가됩니다. 라우팅 테이블의 연결을 해제하면 라우팅 테이블에서 엔드포인트 라우팅이 자동으로 제거됩니다.

콘솔을 사용하여 라우팅 테이블 연결하기
  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

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

  3. 게이트웨이 엔드포인트를 선택합니다.

  4. 작업(Actions), 라우팅 테이블 관리(Manage route tables)를 차례로 선택합니다.

  5. 필요에 따라 라우팅 테이블을 선택하거나 선택 취소합니다.

  6. 라우팅 테이블 수정(Modify route tables)을 선택합니다.

명령줄을 사용하여 라우팅 테이블 연결하기

VPC 엔드포인트 정책 편집

게이트웨이 엔드포인트에 대한 엔드포인트 정책을 편집하여 VPC에서 엔드포인트를 통해 DynamoDB에 대한 액세스를 제어할 수 있습니다. 기본 정책에서는 모든 액세스를 허용합니다. 자세한 내용은 엔드포인트 정책 섹션을 참조하세요.

콘솔을 사용하여 엔드포인트 정책 변경
  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

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

  3. 게이트웨이 엔드포인트를 선택합니다.

  4. 작업(Actions), 정책 관리(Manage policy)를 선택합니다.

  5. 모든 액세스(Full Access)를 선택하여 서비스에 대한 전체 액세스를 허용하거나 사용자 지정(Custom)을 선택하고 사용자 지정 정책을 연결합니다.

  6. Save를 선택합니다.

명령줄을 사용하여 게이트웨이 엔드포인트 수정하기

다음은 DynamoDB에 액세스하기 위한 엔드포인트 정책의 예입니다.

예제: 읽기 전용 액세스 허용

액세스를 읽기 전용 액세스로 제한하는 정책을 생성할 수 있습니다. 다음 정책은 DynamoDB 테이블을 열거하고 설명할 수 있는 권한을 부여합니다.

{ "Statement": [ { "Sid": "ReadOnlyAccess", "Effect": "Allow", "Principal": "*", "Action": [ "dynamodb:DescribeTable", "dynamodb:ListTables" ], "Resource": "*" } ] }
예: 특정 테이블에 대한 액세스 제한

특정 DynamoDB 테이블에 대한 액세스를 제한하는 정책을 생성할 수 있습니다. 다음 정책은 지정된 DynamoDB 테이블에 대한 액세스를 허용합니다.

{ "Statement": [ { "Sid": "Allow-access-to-specific-table", "Effect": "Allow", "Principal": "*", "Action": [ "dynamodb:Batch*", "dynamodb:Delete*", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Update*" ], "Resource": "arn:aws:dynamodb:region:123456789012:table/table_name" } ] }

게이트웨이 엔드포인트 삭제

게이트웨이 엔드포인트 사용을 마치면 엔드포인트를 삭제할 수 있습니다. 게이트웨이 엔드포인트를 삭제하면 서브넷 라우팅 테이블에서 엔드포인트 라우팅이 제거됩니다.

콘솔을 사용하여 게이트웨이 엔드포인트 삭제
  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

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

  3. 게이트웨이 엔드포인트를 선택합니다.

  4. 작업(Actions), VPC 엔드포인트 삭제(Delete VPC endpoints)를 차례로 선택합니다.

  5. 확인 메시지가 표시되면 delete를 입력합니다.

  6. 삭제를 선택합니다.

명령줄을 사용하여 게이트웨이 엔드포인트 삭제하기