연결 조직 정책

이 페이지에서는 Cloud SQL 프로젝트에서 연결 조직 정책을 사용하는 방법에 대한 개요 정보를 제공합니다. 연결 조직 정책을 만들려면 연결 조직 정책 구성을 참조하세요.

개요

연결 조직 정책은 Cloud SQL의 공개 IP 설정을 중앙에서 제어하여 인터넷에서 Cloud SQL 인스턴스가 보안 공격에 노출되는 영역을 줄입니다. 조직 정책 관리자는 연결 정책을 사용하여 프로젝트, 폴더 또는 조직 수준에서 Cloud SQL의 공개 IP 구성을 제한할 수 있습니다.

조직 정책 이해하기

조직 정책을 통해 조직 관리자는 사용자가 조직에서 인스턴스를 구성하는 방법에 대한 제한을 설정할 수 있습니다. 조직 정책은 조직 관리자가 프로젝트, 폴더 또는 조직에 적용하는 '제약조건'이라는 규칙을 사용합니다. 제약조건은 모든 인스턴스에 정책을 적용합니다. 예를 들어 조직 정책이 있는 항목에 인스턴스를 추가하려고 하면 인스턴스 구성이 제약조건의 요구사항을 준수하는지 확인하기 위해 검사를 실행합니다. 검사에 실패하면 Cloud SQL은 인스턴스를 만들지 않습니다.

조직 정책을 사용하는 조직 또는 폴더에 프로젝트를 추가하면 프로젝트가 그 정책의 제약조건을 상속합니다.

조직 정책에 대한 자세한 내용은 조직 정책 서비스, 제약조건, 계층 구조 평가를 참조하세요.

연결 조직 정책 제약조건

연결 조직 정책에는 Cloud SQL 인스턴스에 대한 액세스를 적용하는 두 가지 유형의 제약조건이 있습니다.

제약조건 설명 기본값
Cloud SQL 인스턴스의 공개 IP 액세스 제한 이 부울 제약조건이 True로 설정된 경우 Cloud SQL 인스턴스의 공개 IP 구성이 제한됩니다. 이 제약조건은 소급 적용되지 않습니다. 따라서 이 제약조건을 시행해도 기존의 공개 IP 액세스가 포함된 Cloud SQL 인스턴스는 계속 작동합니다.
기본적으로 Cloud SQL 인스턴스에서는 공개 IP 액세스가 허용됩니다.

constraints/sql.restrictPublicIp
ALLOW
Cloud SQL 인스턴스의 승인된 네트워크 제한 이 부울 제약조건이 True로 설정된 경우 Cloud SQL 인스턴스에 프록시 해제된 데이터베이스 액세스를 위한 승인된 네트워크를 추가하지 못하도록 제한됩니다. 이 제약조건은 소급 적용되지 않습니다. 따라서 이 제약조건을 시행해도 기존의 승인된 네트워크가 있는 Cloud SQL 인스턴스는 계속 작동합니다.
기본적으로 승인된 네트워크를 Cloud SQL 인스턴스에 추가할 수 있습니다.

constraints/sql.restrictAuthorizedNetworks
ALLOW

연결 조직 정책 적용 규칙

Cloud SQL은 다음 작업 중에 연결 조직 정책을 적용합니다.

  • 인스턴스 생성
  • 복제본 생성
  • 인스턴스 재구성
  • 인스턴스 클론
  • 인스턴스 복원

모든 Cloud SQL 조직 정책 제약조건과 마찬가지로 정책 변경사항은 기존 인스턴스에 소급 적용되지 않습니다.

  • 새 정책은 기존 인스턴스에 영향을 주지 않습니다.
  • 사용자가 Console, gcloud 명령줄 도구 또는 RPC를 사용하여 인스턴스 구성을 규정 준수에서 규정 비준수 상태로 변경하지 않는 한 기존 인스턴스 구성이 유효한 상태로 유지됩니다.
  • 유지보수는 인스턴스 구성을 변경하지 않으므로 예약된 유지보수 업데이트로 인해 정책이 적용되지 않습니다.

제한사항

각 프로젝트의 연결 조직 정책을 설정할 때 다음 중 하나가 프로젝트에 적용되는지 확인해야 합니다.

읽기 복제본 공개 IP 주소 충돌

Cloud SQL 읽기 복제본은 프록시가 아닌 데이터베이스 연결을 통해 기본 인스턴스에 연결합니다. 기본 인스턴스 승인된 네트워크 설정을 사용하여 읽기 복제본 공개 IP 주소를 명시적으로 또는 암시적으로 구성합니다.

기본 인스턴스와 복제본 인스턴스 모두 동일한 리전에 있고 비공개 IP를 사용 설정하면 연결 조직 정책 제약조건과 충돌하지 않습니다.

gcloud sql connect를 사용하는 비호환성

gcloud sql connect 명령어는 공개 IP 주소를 사용하여 Cloud SQL 인스턴스에 직접 연결합니다. 따라서 sql.restrictPublicIp 제약조건과 호환되지 않습니다. 이는 비공개 IP를 사용하는 인스턴스의 일반적인 문제입니다.

또한 gcloud sql connect 명령어는 프록시를 사용하지 않으므로 sql.restrictAuthorizedNetworks 제약조건과 호환되지 않습니다.

대신 베타 버전의 명령어를 사용하세요.

gcloud beta auth login
gcloud beta sql connect [INSTANCE_ID]

이 버전은 Cloud SQL 프록시를 사용합니다. 참조 정보는 gcloud beta sql connect를 확인하세요.

이 명령어를 처음 실행하면 gcloud Cloud SQL 프록시 구성요소를 설치하라는 메시지가 표시됩니다. 이 경우 클라이언트 머신의 gcloud SDK 설치 디렉터리에 대한 쓰기 권한이 있어야 합니다.

GCP 호스팅 서비스 액세스

애플리케이션이 App Engine과 같은 다른 GCP 호스팅 서비스의 Cloud SQL 인스턴스에 액세스해야 하는 경우 애플리케이션은 공개 IP 주소를 사용해야 합니다. 프로젝트에 sql.restrictPublicIp 제약조건을 적용하지 마세요. 하지만 App Engine의 연결이 보안(프록시) 연결을 통과하므로 sql.restrictAuthorizedNetworks를 적용할 수 있습니다.

MySQL 장애 조치 복제본 공개 IP 충돌

MySQL 장애 조치 복제본은 연결 조직 정책의 읽기 복제본과 동일하게 작동합니다. 기본 및 복제본 인스턴스가 모두 동일한 리전에 있고 비공개 IP를 사용 설정하는 경우에는 연결 조직 정책 제약 조건과 충돌하지 않습니다.

RFC 1918 이외의 비공개 IP 주소

비공개 IP 주소를 사용하는 Cloud SQL 인스턴스에 대한 연결은 RFC 1918 주소 범위에서 자동으로 승인됩니다. 이에 따라 모든 비공개 클라이언트가 프록시를 통하지 않고 데이터베이스에 액세스할 수 있습니다. RFC 1918 이외의 주소 범위는 승인된 네트워크로 구성해야 합니다.

승인된 네트워크에서 구성되지 않은 RFC 1918 이외의 비공개 IP 주소 범위를 사용하려면 다음 작업 중 하나 또는 둘 다를 수행하면 됩니다.

  1. sql.restrictAuthorizedNetworks를 적용하지 않습니다. 승인된 네트워크도 sql.restrictPublicIp를 적용하는 경우 Console에서 이를 구성할 수 없습니다. 대신 Cloud SQL API 또는 gcloud 명령줄 도구를 사용하세요.
  2. 비공개 IP 인스턴스에 프록시 연결을 사용합니다.

알려진 문제

승인된 네트워크 제약조건 제한

기존의 승인된 네트워크 항목이 있는 Cloud SQL 인스턴스의 경우, 승인된 네트워크 제한(sql.restrictAuthorizedNetworks) 제약조건을 사용하더라도 승인된 네트워크 항목이 추가로 허용됩니다. 이는 읽기 전용 또는 장애 조치 복제본을 사용 설정한 인스턴스에도 영향을 미칩니다. 이러한 인스턴스에 사용자에게 표시되지 않는 복제본에 대한 승인된 네트워크 항목이 있기 때문입니다.

이 알려진 문제는 제약조건이 승인된 네트워크 항목의 삭제만 허용하고 추가는 허용하지 않는 경우에 제거됩니다.

다음 단계