Amazon DynamoDB용 엔드포인트 - Amazon Virtual Private Cloud

Amazon DynamoDB용 엔드포인트

VPC에서 DynamoDB 테이블로의 액세스를 이미 설정한 경우, 게이트웨이 엔드포인트를 설정한 후에도 보통 때처럼 테이블에 계속 액세스할 수 있습니다. 하지만 다음에 유의하세요.

  • 엔드포인트에는 엔드포인트를 이용한 DynamoDB 리소스 액세스를 제어하는 정책이 있습니다. 기본 정책은 VPC 내 모든 사용자 또는 서비스가 자격 증명을 사용하여 아무 AWS 계정에서 아무 DynamoDB 리소스에 액세스할 수 있게 합니다. 자세한 내용은 VPC 종단점으로 서비스에 대한 액세스 제어 단원을 참조하세요.

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

  • 현재 엔드포인트는 교차 리전 요청을 지원하지 않습니다. DynamoDB 테이블과 같은 리전에 엔드포인트를 생성하는지 확인하세요.

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

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

DynamoDB에서 엔드포인트를 사용하기 전에 게이트웨이 엔드포인트 제한에 있는 일반 제한 사항을 읽으세요.

게이트웨이 VPC 엔드포인트 생성에 대한 자세한 내용은 게이트웨이 VPC 엔드포인트를 참조하세요.

DynamoDB에 대한 엔드포인트 정책

엔드포인트 정책은 연결 중인 일부 또는 모든 서비스에 액세스할 수 있도록 엔드포인트에 연결하는 IAM 정책입니다. 다음은 DynamoDB에 액세스하기 위한 엔드포인트 정책의 예입니다.

중요

IAM 사용자 정책, 엔드포인트 정책 같은 모든 유형의 정책은 DynamoDB에 액세스하기 위해 필요한 권한을 부여해야 합니다.

예: 읽기 전용 액세스

VPC 엔드포인트를 통한 DynamoDB 테이블 나열 및 설명으로만 작업을 제한하는 정책을 만들 수 있습니다.

{ "Statement": [ { "Sid": "ReadOnly", "Principal": "*", "Action": [ "dynamodb:DescribeTable", "dynamodb:ListTables" ], "Effect": "Allow", "Resource": "*" } ] }

예: 특정 테이블에 대한 액세스 제한

특정 DynamoDB 테이블에 대한 액세스를 제한하는 정책을 만들 수 있습니다. 이 예의 엔드포인트 정책은 StockTable에 대해서만 액세스를 허용합니다.

{ "Statement": [ { "Sid": "AccessToSpecificTable", "Principal": "*", "Action": [ "dynamodb:Batch*", "dynamodb:Delete*", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Update*" ], "Effect": "Allow", "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/StockTable" } ] }

IAM 정책을 사용하여 DynamoDB에 대한 액세스 제어

IAM 사용자, 그룹 또는 역할이 특정 VPC 엔드포인트에서만 DynamoDB 테이블에 액세스하도록 제한하는 IAM 정책을 만들 수 있습니다. 이렇게 하려면 IAM 정책에서 테이블 리소스에 대한 aws:sourceVpce 조건 키를 사용해야 합니다.

DynamoDB에 대한 액세스를 관리하는 방법에 대한 자세한 내용은 Amazon DynamoDB 개발자 안내서Amazon DynamoDB에 대한 인증 및 액세스 제어를 참조하세요.

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

이 예에서는 엔드포인트 vpce-11aa22bb를 통해 액세스하는 경우를 제외하고 사용자의 DynamoDB 테이블 사용 권한이 거부됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessFromSpecificEndpoint", "Action": "dynamodb:*", "Effect": "Deny", "Resource": "arn:aws:dynamodb:region:account-id:table/*", "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-11aa22bb" } } } ] }

예: 이 VPC 종단점을 계정의 특정 IAM 역할만 사용하도록 제한

VPC 종단점을 특정 IAM 역할만 사용하도록 제한하는 정책을 생성할 수 있습니다. 다음은 SomeRole 계정의 111122223333로 액세스를 제한하는 예입니다.

{ "Sid": "Restrict-acess-to-specific-IAM-role", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": "arn:aws:iam::111122223333:role/SomeRole" } } }

예: 이 VPC 종단점을 특정 계정의 사용자만 사용하도록 제한

VPC 종단점을 특정 계정만 사용하도록 제한하는 정책을 생성할 수 있습니다. 다음은 111122223333 계정의 사용자로 액세스를 제한하는 예입니다.

{ "Sid": "AllowCallersFromAccount111122223333", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": "111122223333" } } }