보안 그룹을 통한 액세스 제어
VPC 보안 그룹은 DB 인스턴스에서 송수신되는 트래픽에 대한 액세스를 제어합니다. 기본적으로 DB 인스턴스에 대한 네트워크 액세스는 해제되어 있습니다. IP 주소 범위, 포트 또는 보안 그룹에서 액세스를 허용하는 보안 그룹의 규칙을 지정할 수 있습니다. 수신 규칙이 설정되면 동일한 규칙이 해당 보안 그룹과 연결된 모든 DB 인스턴스에 적용됩니다. 보안 그룹에서 최대 20개의 규칙을 지정할 수 있습니다.
VPC 보안 그룹 개요
각 VPC 보안 그룹 규칙을 설정하면 특정 소스가 해당 VPC 보안 그룹과 연결되어 있는 VPC의 DB 인스턴스에 액세스할 수 있습니다. 소스는 주소 범위(예: 203.0.113.0/24) 또는 다른 VPC 보안 그룹일 수 있습니다. VPC 보안 그룹을 소스로 지정하면 소스 VPC 보안 그룹을 사용하는 모든 인스턴스(일반적으로 애플리케이션 서버)에서 수신 트래픽이 허용됩니다. VPC 보안 그룹에는 인바운드 및 아웃바운드 트래픽을 모두 제어하는 규칙이 있을 수 있습니다. 그러나 아웃바운드 트래픽 규칙은 일반적으로 DB 인스턴스에 적용되지 않습니다. 아웃바운드 트래픽 규칙은 DB 인스턴스가 클라이언트 역할을 하는 경우에만 적용됩니다. 예를 들면 아웃바운드 트래픽 규칙은 아웃바운드 데이터베이스 링크가 있는 Oracle DB 인스턴스에 적용됩니다. Amazon EC2 API를 사용하거나, 혹은 VPC 콘솔에서 보안 그룹 옵션을 선택하여 VPC 보안 그룹을 생성해야 합니다.
VPC의 인스턴스에 대한 액세스를 허용하는 VPC 보안 그룹과 관련된 규칙을 생성할 때 그 규칙이 액세스를 허용하는 주소들의 각 범위에 대해 포트를 지정해야 합니다. 예를 들어, VPC의 인스턴스에 대한 Secure Shell(SSH) 액세스를 활성화하고 싶다면 지정된 주소 범위와 관련해 TCP 포트 22에 대한 액세스를 허용하는 규칙을 생성합니다.
VPC의 서로 다른 인스턴스에게 서로 다른 포트에 대한 액세스를 허용하는 여러 개의 VPC 보안 그룹을 구성할 수 있습니다. 예를 들어 VPC의 웹 서버에 대해서는 TCP 포트 80으로 액세스가 가능하도록 VPC 보안 그룹을 생성합니다. 그런 다음 VPC의 RDS for MySQL DB 인스턴스에 대해서는 TCP 포트 3306으로 액세스할 수 있도록 다른 VPC 보안 그룹을 생성하면 됩니다.
VPC 보안 그룹에 관한 자세한 내용은 Amazon Virtual Private Cloud 사용 설명서의 보안 그룹을 참조하십시오.
참고
DB 인스턴스 가 VPC에 있지만 공개적으로 액세스할 수 없는 경우 AWS Site-to-Site VPN 연결 또는 AWS Direct Connect 연결을 사용하여 프라이빗 네트워크에서 액세스할 수도 있습니다. 자세한 내용은 인터네트워크 트래픽 개인 정보 보호 단원을 참조하세요.
보안 그룹 시나리오
VPC에서 DB 인스턴스를 사용하는 일반적인 사례는 동일한 VPC의 Amazon EC2 인스턴스에서 실행 중이며 VPC 외부의 클라이언트 애플리케이션에서 액세스한 애플리케이션을 사용하여 데이터를 공유하는 것입니다. 이러한 시나리오에서는 AWS Management Console의 RDS 및 VPC 페이지를 사용하거나, 혹은 RDS 및 EC2 API 작업을 사용하여 필요한 인스턴스와 보안 그룹을 생성합니다.
VPC 보안 그룹(예:
sg-0123ec2example
)을 생성하고 클라이언트 애플리케이션의 IP 주소를 소스로 사용하는 인바운드 규칙을 생성합니다. 이 보안 그룹에서는 클라이언트 애플리케이션이 이 보안 그룹을 사용하는 VPC의 EC2 인스턴스에 연결할 수 있습니다.애플리케이션에 대한 EC2 인스턴스를 생성하고 이전 단계에서 생성한 VPC 보안 그룹(
sg-0123ec2example
)에 EC2 인스턴스를 추가합니다.두 번째 VPC 보안 그룹(예:
sg-6789rdsexample
)을 생성하고 1단계에서 만든 VPC 보안 그룹(sg-0123ec2example
)을 소스로 지정해 새 규칙을 생성합니다.새 DB 인스턴스를 생성하고 이전 단계에서 생성한 VPC 보안 그룹(
sg-6789rdsexample
)에 DB 인스턴스를 추가합니다. DB 인스턴스를 생성할 때 3단계에서 생성한 VPC 보안 그룹(sg-6789rdsexample
) 규칙에 대해 지정한 것과 동일한 보안 포트 번호를 사용합니다.
다음 다이어그램은 이 시나리오를 보여 줍니다.
![VPC의 DB 인스턴스 및 EC2 인스턴스](images/con-VPC-sec-grp.png)
이 시나리오의 VPC 구성에 대한 자세한 지침은 자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용) 단원을 참조하세요. VPC 사용에 대한 자세한 내용은 Amazon VPC 및 Amazon RDS 단원을 참조하세요.
VPC 보안 그룹 생성
VPC 콘솔을 사용하여 DB 인스턴스에 대한 VPC 보안 그룹을 생성할 수 있습니다. 보안 그룹 생성에 대한 자세한 내용은 보안 그룹을 생성하여 VPC 내부의 DB 인스턴스에 대한 액세스를 제공 및 Amazon Virtual Private Cloud 사용 설명서의 보안 그룹을 참조하십시오.
보안 그룹과 DB 인스턴스의 연결
보안 그룹은 RDS 콘솔의 [수정(Modify)] 옵션을 사용하거나, ModifyDBInstance
Amazon RDS API 또는 modify-db-instance
AWS CLI 명령을 사용해 DB 인스턴스와 연결할 수 있습니다.
다음 CLI 예제는 특정 VPC 보안 그룹을 연결하고 DB 인스턴스에서 DB 보안 그룹을 제거합니다.
aws rds modify-db-instance --db-instance-identifier
dbName
--vpc-security-group-idssg-ID
DB 인스턴스 수정에 대한 자세한 내용은 Amazon RDS DB 인스턴스 수정 단원을 참조하십시오. DB 인스턴스를 DB 스냅샷에서 복원할 때 보안 그룹에서 고려해야 할 사항은 보안 그룹 고려 사항 단원을 참조하세요.
참고
포트 값이 기본값이 아닌 값으로 구성된 경우 RDS 콘솔은 데이터베이스에 대해 다른 보안 그룹 규칙 이름을 표시합니다.
Oracle DB 인스턴스용 RDS의 경우 Oracle Enterprise Manager Database Express(OEM), Oracle Management Agent for Enterprise Manager Cloud Control(OEM 에이전트) 및 Oracle Secure Sockets Layer 옵션에 대한 보안 그룹 옵션 설정을 채워 추가 보안 그룹을 연결할 수 있습니다. 이 경우 DB 인스턴스와 연결된 보안 그룹과 옵션 설정이 모두 DB 인스턴스에 적용됩니다. 이러한 옵션 그룹에 대한 자세한 내용은 Oracle Enterprise Manager, Oracle Management Agent for Enterprise Manager Cloud Control 및 Oracle 보안 소켓 Layer 섹션을 참조하세요.