Amazon AWS
Amazon QuickSight에서 RDS/Redshift에 Private 연결
홍띠
2024. 6. 16. 20:55
QuickSight에서는 RDS/Athena/Redshift 등을 통한 여러가지 소스데이터와의 통합을 지원한다.
그 중 RDS나 Redshift 같이 인스턴스를 띄워서 사용하는 데이터 소스들이 있는데, 만약 이 데이터베이스가 프라이빗 서브넷에 배치되어 있고 퍼블릭 접근이 불가능 하도록 설정되어 있다면, 추가적으로 vpc connection을 생성해서 접근해야 한다.
Prerequisites
- QuickSight를 설정하려는 사용자가 Quicksight의 관리자여야 한다. Quicksight에 기본적으로 설정된 Admin인 경우에는 문제없이 진행 가능하다. 만약, custom permission을 사용한다면, 아래의 권한들이 포함되어 있는지 확인해야 한다.
"quicksight:ListVPCConnections"
"quicksight:CreateVPCConnection"
"quicksight:DescribeVPCConnection"
"quicksight:DeleteVPCConnection"
"quicksight:UpdateVPCConnection"
"ec2:describeSubnets"
"ec2:describeVpcs"
"ec2:describeSecurityGroups"
"iam:ListRoles"
"iam:PassRole" ("iam:PassRole"은 이후에 생성할 실행역할에 대해서만 resource를 제한해도 된다.)
- 아래 예제에서 연결하고자 하는 RDS/Redshift는 동일한 계정내에 존재한다.
보안그룹 생성
- QuickSight에서 사용할 보안그룹을 생성한다.
- Inbound 규칙:
모든 TCP를 허용하되, 소스는 RDS/Redshift에서 사용하는 보안그룹을 설정한다.
- Outbound 규칙:
RDS/Redshift 에서 사용하는 포트를 Port 범위로 설정하고, 소스는 동일하게 RDS/Redshift에서 사용하는 보안그룹을 설정한다. - RDS/Redshift에서 사용하는 보안그룹을 편집한다.
- Inbound 규칙: RDS/Redshift 에서 사용하는 포트를 Port 범위로 설정하고, 소스는 위에서 생성한 Quicksight에서 사용할 보안그룹을 설정한다
- Outbound 규칙:
모든 TCP를 허용하되, 소스는 위에서 생성한 Quicksight에서 사용할 보안그룹을 설정한다.
실행역할 생성
QuickSight의 VPC Connection에 연결할 실행역할을 생성한다. 여기서는 Quikcsight 생성과 함께 만들어진 service-role의 권한을 편집해서 필요 권한을 추가했다.
- 필요 권한
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface",
"ec2:ModifyNetworkInterfaceAttribute",
"ec2:DeleteNetworkInterface",
"ec2:DescribeSubnets",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}
- 신뢰정책
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "quicksight.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
VPC Connection 생성
- Quicksight 콘솔에 접속 → 오른쪽 위 상단에 프로필 버튼 → QuickSight 관리
- (만약, 이 버튼이 안보이면 관리 권한이 없는 것)
- Manage VPC connections → Add VPC Connection
- 필요 값 입력
- VPC connection name: 연결 이름 작성
- VPC ID: RDS/Redshift가 있는 VPC ID 선택
- Execution Role: 위에서 생성/편집한 실행역할 선택
- Subnets: 최소 2개 이상 선택
Dataset연결
- QuicSight 콘솔 → Datasets 선택 → New Dataset
- auto-discovered Redshift 선택 후 필요 값 입력
- Data Source Name: 데이터소스 이름 입력
- Instance ID: 연결을 원하는인스턴스 선택
- Connection Type: 위에서 생성한 VPC Conneciton 선택
- Database Name: 연결을 원하는 데이터베이스 입력
- Username/Password: 접속 정보 입력
- Validate Connection으로 확인 후 연결
참고:
https://repost.aws/knowledge-center/quicksight-redshift-private-connection