본문 바로가기
WIKI 기술 지식 베이스

데이터베이스 접근 허용 규칙

원문 보기 위키 갱신

데이터베이스 접근 허용 규칙 (Database Access Allow Rules)

데이터베이스를 아무나 접속하지 못하도록 잠가 두고 싶다면 허용 규칙(allow rules)을 사용해 보세요. 특정 IP 주소나 CIDR 범위, AWS VPC 엔드포인트에서 온 연결만 받아들이도록 제한할 수 있어요.

출처: 문서

본문

허용 규칙을 사용하면 데이터베이스를 잠가서 특정 출처에서 오는 연결만 받아들이도록 만들 수 있어요. IP 주소나 CIDR 범위로 제한하거나, AWS VPC 엔드포인트 ID로 제한하거나, 둘을 동시에 사용할 수도 있어요.

두 목록을 모두 설정하면 AND 의미가 적용돼요. 연결이 성립하려면 클라이언트 IP가 허용 IP 목록에 있고, 동시에 허용된 VPC 엔드포인트 중 하나를 통해 들어와야 해요.

현재 규칙 보기

turso db config allow-rules show <database-name>

규칙이 설정되어 있지 않으면 모든 연결이 허용돼요:

Access allow rules are empty: connections from any source are accepted

규칙이 설정되어 있으면 각 목록이 출력돼요:

Allowed IPs:
  203.0.113.7
  10.0.0.0/8
Allowed AWS VPC endpoint IDs:
  vpce-0fe6c8807461bba49

IP 주소 또는 CIDR로 제한하기

--ip (반복 사용 가능) 플래그로 허용할 IP 주소와 CIDR 블록 목록을 설정해요. 이 플래그는 사용할 때마다 현재 목록을 대체해요.

# 단일 IP 허용
turso db config allow-rules set my-db --ip 203.0.113.7

# CIDR 범위 허용
turso db config allow-rules set my-db --ip 10.0.0.0/8

# 여러 항목을 한 번에 허용
turso db config allow-rules set my-db --ip 203.0.113.7 --ip 10.0.0.0/8

IPv4와 IPv6 주소를 모두 받아들여요. 범위에는 CIDR 표기법(예: 10.0.0.0/8)을 사용할 수 있어요.

AWS VPC 엔드포인트로 제한하기

--aws-vpc (반복 사용 가능) 플래그로 허용할 AWS VPC 엔드포인트 ID 목록을 설정해요. ID는 vpce-로 시작해야 해요.

turso db config allow-rules set my-db --aws-vpc vpce-0fe6c8807461bba49

IP 규칙과 VPC 규칙 결합하기

한 번의 명령으로 두 목록을 모두 설정할 수 있어요. 연결은 두 제약 조건을 모두 만족해야 해요.

turso db config allow-rules set my-db \
  --ip 10.0.0.0/8 \
  --aws-vpc vpce-0fe6c8807461bba49

이후에 --ip만 지정한 호출은 VPC 목록을 그대로 두고, 반대도 마찬가지예요:

# VPC 목록을 건드리지 않고 새 IP 추가
turso db config allow-rules set my-db --ip 198.51.100.5

규칙 지우기

모든 허용 규칙을 제거하면 모든 출처의 연결이 허용돼요:

turso db config allow-rules clear my-db

다른 목록은 그대로 두고 하나만 지울 수도 있어요:

# IP 목록만 지우기
turso db config allow-rules clear my-db --ips

# VPC 목록만 지우기
turso db config allow-rules clear my-db --aws-vpcs

API

허용 규칙은 데이터베이스 구성 엔드포인트를 통해 관리해요. 요청 본문에 allowed_ips와/또는 allowed_aws_vpc_ids를 설정하세요:

curl -L -X PATCH 'https://api.turso.tech/v1/organizations/{organizationSlug}/databases/{databaseName}/configuration' \
  -H 'Authorization: Bearer ***' \
  -H 'Content-Type: application/json' \
  -d '{
    "allowed_ips": ["203.0.113.7", "10.0.0.0/8"],
    "allowed_aws_vpc_ids": ["vpce-0fe6c8807461bba49"]
  }'

목록을 지우려면 명시적으로 빈 배열을 전달하세요:

curl -L -X PATCH 'https://api.turso.tech/v1/organizations/{organizationSlug}/databases/{databaseName}/configuration' \
  -H 'Authorization: Bearer ***' \
  -H 'Content-Type: application/json' \
  -d '{
    "allowed_ips": [],
    "allowed_aws_vpc_ids": []
  }'

요청 본문에서 필드를 생략하면 해당 목록은 변경되지 않고 그대로 유지돼요.

더 알아보기 (Learn more)