공개 접근을 활성화한 Redshift 구성

Redshift의 공개 접근이 필요한지 확인하고 비공개 연결 경로, 제한된 인바운드 규칙과 데이터베이스 인증을 함께 검토하세요.

설명

Redshift의 공개 접근 옵션은 인터넷을 통한 클러스터 연결에 사용됩니다. 라우팅과 보안 그룹도 연결을 허용하면 의도한 범위 밖의 클라이언트가 접속을 시도할 수 있습니다. 네트워크 연결이 가능해도 데이터베이스 인증과 권한은 별도로 필요합니다.

잠재적 영향

  • 불필요한 공개 경로는 로그인 시도나 취약점 악용에 노출되는 범위를 넓힐 수 있습니다.
  • 인증 정보나 데이터베이스 권한 관리가 부실하면 의도하지 않은 데이터 접근으로 이어질 수 있습니다.

해결 방법

  • 공개 연결이 필요 없다면 클라이언트의 비공개 경로와 제한된 인바운드 규칙을 먼저 준비하고 공개 접근을 비활성화하세요.
  • 기존 클러스터에는 설정 변경을 지원하는 방법을 사용하세요. community.aws 11.1.0은 기존 식별자에 create를 다시 실행하거나 modify를 사용해도 publicly_accessible을 변경하지 않습니다. AWS ModifyCluster API는 해당 변경을 지원합니다.
  • 적용된 실제 설정과 필요한 클라이언트 연결을 확인하고 승인하지 않은 연결이 차단되는지 시험하세요. 인증, 최소 권한과 통신 보호도 함께 검토하세요.

예시

새 단일 노드 클러스터의 대안 구성입니다. 모듈과 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

새 클러스터의 공개 접근을 비활성화합니다. 필요한 클라이언트가 비공개 경로로 연결할 수 있는지 확인하세요.

참조