설명
Redshift의 공개 접근 옵션은 인터넷을 통한 클러스터 연결에 사용됩니다. 라우팅과 보안 그룹도 연결을 허용하면 의도한 범위 밖의 클라이언트가 접속을 시도할 수 있습니다. 네트워크 연결이 가능해도 데이터베이스 인증과 권한은 별도로 필요합니다.
잠재적 영향
- 불필요한 공개 경로는 로그인 시도나 취약점 악용에 노출되는 범위를 넓힐 수 있습니다.
- 인증 정보나 데이터베이스 권한 관리가 부실하면 의도하지 않은 데이터 접근으로 이어질 수 있습니다.
해결 방법
- 공개 연결이 필요 없다면 클라이언트의 비공개 경로와 제한된 인바운드 규칙을 먼저 준비하고 공개 접근을 비활성화하세요.
- 기존 클러스터에는 설정 변경을 지원하는 방법을 사용하세요.
community.aws11.1.0은 기존 식별자에create를 다시 실행하거나modify를 사용해도publicly_accessible을 변경하지 않습니다. AWSModifyClusterAPI는 해당 변경을 지원합니다. - 적용된 실제 설정과 필요한 클라이언트 연결을 확인하고 승인하지 않은 연결이 차단되는지 시험하세요. 인증, 최소 권한과 통신 보호도 함께 검토하세요.
예시
새 단일 노드 클러스터의 대안 구성입니다. 모듈과 AWS에서 모두 지원하는 redshift_single_node_type을 지정하고 redshift_admin_password는 비밀정보 저장소에서 안전하게 제공하세요. 실제 리전, 서브넷과 보안 그룹도 준비해야 합니다. 아래 작업을 다시 실행하는 것만으로 기존 클러스터의 공개 설정을 바꿀 수는 없습니다.
변경 전
yaml
- name: Basic cluster provisioning example
community.aws.redshift:
command: create
node_type: "{{ redshift_single_node_type }}"
cluster_type: single-node
identifier: new-cluster
username: cluster_admin
password: "{{ redshift_admin_password }}"
encrypted: true
publicly_accessible: yes
새 클러스터에 공개 접근을 요청합니다. 실제 외부 연결은 네트워크 경로와 보안 그룹에도 달려 있습니다.
변경 후
yaml
- name: Basic cluster provisioning example
community.aws.redshift:
command: create
node_type: "{{ redshift_single_node_type }}"
cluster_type: single-node
identifier: new-cluster
username: cluster_admin
password: "{{ redshift_admin_password }}"
encrypted: true
publicly_accessible: false
새 클러스터의 공개 접근을 비활성화합니다. 필요한 클라이언트가 비공개 경로로 연결할 수 있는지 확인하세요.