PostgreSQL용 AlloyDB의 보안, 개인 정보 보호, 위험, 규정 준수

이 문서에서는 Google Cloud 에서 PostgreSQL용 AlloyDB의 보안을 지원하는 다양한 컨트롤을 간략하게 설명하고 컨트롤을 구성하는 방법에 관한 자세한 정보로 연결되는 링크를 제공합니다. 네트워크 보안 옵션, 정책, 액세스 관리와 같은 보안 제어를 사용하면 비즈니스 위험을 해결하고 비즈니스에 적용되는 개인 정보 보호 및 규제 요구사항을 충족할 수도 있습니다.

PostgreSQL용 AlloyDB의 보안, 개인 정보 보호, 위험, 규정 준수는 공유 책임 모델을 사용합니다. 예를 들어 Google은 PostgreSQL용 AlloyDB 및 기타 Google Cloud 서비스가 실행되는 인프라를 보호하고 서비스와 리소스에 대한 액세스를 관리하는 데 도움이 되는 기능을 제공합니다. Google이 인프라를 보호하는 방법에 대한 자세한 내용은 Google 인프라 보안 설계 개요를 참고하세요.

AlloyDB 아키텍처

다음 다이어그램은 AlloyDB 아키텍처의 구성요소를 보여줍니다.

AlloyDB 아키텍처

구성요소는 다음과 같습니다.

  • AlloyDB 인스턴스는 고가용성과 복원력을 지원하기 위해 여러 영역에 배포됩니다.
  • Google Cloud 또는 다른 환경에서 AlloyDB의 기본 인스턴스에 연결하는 애플리케이션 다이어그램에는 AlloyDB와 동일한 Google Cloud 프로젝트에서 실행되는 애플리케이션이 표시되어 있지만Google Cloud 조직의 다른 프로젝트에서 애플리케이션을 실행할 수도 있습니다.
  • 하이브리드 환경에서 Cloud VPN 또는 Cloud Interconnect를 통해 회사 네트워크의 리소스에 액세스할 수 있습니다.
  • VPC 서비스 제어를 사용하여 만든 서비스 경계 VPC 서비스 제어를 사용하면 Google 서비스 또는 리소스 간의 데이터 이동을 제어하고 컨텍스트 기반 경계 보안을 설정할 수 있습니다.

AlloyDB 엔드포인트에 대한 자세한 내용은 AlloyDB API를 참고하세요. 기본적으로 이 엔드포인트는 공개적으로 라우팅할 수 있는 엔드포인트가 아니며 공개 네트워크에서 인바운드 트래픽을 수신할 수 없습니다. AlloyDB 인스턴스가 공용 네트워크를 통해 인바운드 트래픽을 수신하도록 설정하려면 공개 IP를 사용하여 연결을 참고하세요.

AlloyDB 커넥터에 대한 자세한 내용은 애플리케이션 연결을 참고하세요.

프로비저닝된 서비스

AlloyDB를 시작할 때 다음 API를 사용 설정합니다.

자세한 내용은 빠른 시작: 데이터베이스 만들기 및 연결을 참고하세요.

Google Cloud 관리 인증

AlloyDB 인스턴스를 만들고 관리하는 관리자와 개발자는 Google Cloud 에 인증하여 자신의 ID와 액세스 권한을 확인해야 합니다. Cloud ID, Google Workspace 또는 Cloud ID 또는 Google Workspace와 제휴한 ID 공급업체에서 관리하는 사용자 계정으로 각 사용자를 설정해야 합니다. 자세한 내용은 ID 및 액세스 관리 개요를 참고하세요.

사용자 계정을 만든 후 싱글 사인온2단계 인증과 같은 보안 권장사항을 구현합니다. 인증 권장사항에 관한 자세한 내용은 ID 및 액세스 관리를 참고하세요.

Identity and Access Management

관리자와 개발자를 위해 Identity and Access Management (IAM) 역할을 대규모로 관리하려면 다양한 데이터베이스 사용자 역할과 애플리케이션에 대해 별도의 기능 그룹을 만드는 것이 좋습니다. AlloyDB를 관리하는 데 필요한 IAM 역할 또는 권한을 그룹에 부여합니다. 그룹에 역할을 할당할 때는 최소 권한의 원칙과 기타 IAM 보안 권장사항을 따르세요. 자세한 내용은 Google 그룹스 사용 권장사항을 참고하세요.

IAM 설정 방법에 대한 자세한 내용은 IAM 개요를 참조하세요.

클라이언트가 IAM 데이터베이스 인증을 사용하여 AlloyDB에 액세스하는 경우 IAM을 사용하여 AlloyDB에 대한 액세스를 제어할 수도 있습니다. AlloyDB에 필요한 IAM 역할에 대한 자세한 내용은 AlloyDB의 IAM 역할 및 권한을 참고하세요.

인증 프록시 또는 언어 커넥터 (애플리케이션 연결에 설명됨)를 사용하는 경우 IAM을 사용하여 AlloyDB에 연결할 수 있는 애플리케이션 워크로드를 제어할 수 있습니다. 인증 프록시와 함께 IAM을 사용하는 방법에 대한 자세한 내용은 IAM 주 구성원을 선택하고 승인을 위해 준비하기를 참고하세요. AlloyDB 언어 커넥터와 함께 자동 IAM 인증을 사용하려면 IAM 인증 관리를 참고하세요.

기본 서비스 계정 및 서비스 에이전트

서비스 계정은 Google API의 데이터에 액세스하기 위해 인증과 승인을 거쳐야 하며 사람이 아닌 사용자를 나타내기 위한 특별한 유형의 비대화형 Google 계정입니다. AlloyDB는 완전 관리형 서비스이므로 Google에서 사용자를 대신하여 AlloyDB 서비스 계정을 관리합니다. AlloyDB를 사용 설정하면 프로젝트용 AlloyDB 서비스 계정(service-PROJECT_NUMBER-gcp-sa-alloydb-iam.gserviceaccount.com)이 생성됩니다. PostgreSQL 서버와 같은 AlloyDB 리소스는 이 서비스 계정을 사용하여 실행됩니다.

서비스 에이전트는 일부 Google Cloud서비스가 리소스에 액세스하고 사용자를 대신하여 작업을 실행할 수 있도록 사용하는 IAM 역할 및 권한입니다. 관리형 AlloyDB 서비스 계정은 AlloyDB 서비스 에이전트의 IAM 권한을 사용합니다.

AlloyDB 정책

AlloyDB에 적용되는 사전 정의된 조직 정책은 AlloyDB가 고객 관리형 암호화 키(CMEK)를 사용하여 데이터를 암호화할 수 있는지 여부를 정의합니다. 규제 의무에 따라 AlloyDB 저장 데이터를 암호화하는 데 사용되는 키를 더 세부적으로 제어해야 하는 경우 CMEK를 사용하도록 AlloyDB를 구성하세요. 정책에는 다음이 포함됩니다.

  • CMEK 없이 리소스를 만들 수 있는 서비스 제한(constraints/gcp.restrictNonCmekServices)
  • CMEK(constraints/gcp.restrictCmekCryptoKeyProjects)용 Cloud KMS CryptoKey를 제공할 수 있는 프로젝트 제한

자세한 내용은 사전 정의된 조직 정책 사용을 참고하세요.

커스텀 조직 정책을 사용하여 프로젝트, 폴더 또는 조직 수준에서 AlloyDB에 대한 제한을 구성할 수 있습니다. 공개 IP 주소를 사용 설정하는 경우 공개 IP 주소를 사용할 수 있는 사용자를 적용하도록 맞춤 정책 제약 조건을 구성하는 것이 좋습니다. 정책을 구체화하려면 정책에 AlloyDB 인스턴스 필드 (예: 공개 IP 주소 사용 설정 또는 아웃바운드 공개 IP 주소 사용 설정)를 추가하면 됩니다. 자세한 내용은 맞춤 조직 정책 사용을 참고하세요.

네트워크 보안

기본적으로 Google은 Google Cloud에서 실행되는 AlloyDB 인스턴스를 포함한 모든Google Cloud 서비스의 전송 중 데이터에 기본 보호 조치를 적용합니다. 기본 네트워크 보호에 대한 자세한 내용은 전송 중 데이터 암호화를 참고하세요.

AlloyDB는 데이터베이스 인스턴스와 클라이언트 간 통신에 TLS 1.3 암호화를 지원합니다. AlloyDB는 이 연결의 서버 인증서를 자동으로 생성합니다. 상호 인증에 클라이언트 인증서를 사용하려면 AlloyDB 언어 커넥터 (mTLS 인증 사용) 또는 AlloyDB 인증 프록시를 구성해야 합니다.

조직에서 요구하는 경우 추가 보안 제어를 구성하여 Google Cloud 네트워크의 트래픽과 Google Cloud 네트워크와 기업 네트워크 간의 트래픽을 더욱 보호할 수 있습니다. 다음 사항을 고려하세요.

  • AlloyDB는 VPC 서비스 제어를 지원합니다. VPC 서비스 제어를 사용하면 Google 서비스에서 데이터 이동을 제어하고 컨텍스트 기반 경계 보안을 설정할 수 있습니다. VPC 서비스 제어 설정에 대한 자세한 내용은 VPC 서비스 제어 구성을 참고하세요.

    • 공개 IP 주소를 사용 설정하는 경우 AlloyDB 언어 커넥터와 맞춤 조직 정책을 사용하여 AlloyDB 인스턴스에 액세스할 수 있는 사용자를 관리하세요.
  • Google Cloud에서는 공유 VPC를 네트워크 토폴로지로 사용하는 것이 좋습니다. 공유 VPC는 환경 분리를 유지하면서 중앙 집중식 네트워크 구성 관리를 제공합니다.

  • Cloud VPN 또는 Cloud Interconnect를 사용하여 기업 네트워크와Google Cloud간의 연결에 대한 보안과 신뢰성을 극대화합니다. 자세한 내용은 네트워크 연결 제품 선택을 참고하세요.

네트워크 보안 권장사항에 대한 자세한 내용은 제로 트러스트 구현 Google Cloud 시작 영역의 네트워크 설계 결정을 참고하세요.

애플리케이션 연결

다음 방법을 사용하여 애플리케이션과 AlloyDB 간의 연결을 보호할 수 있습니다.

다음 다이어그램은 연결 옵션을 보여줍니다.

AlloyDB 연결 옵션입니다.

외부 IP 주소 없이 서비스에 연결을 설정하는 옵션에 대한 자세한 내용은 서비스 비공개 액세스 옵션을 참고하세요.

데이터베이스 인증

AlloyDB는 데이터베이스 클라이언트에 다음과 같은 인증 방법을 제공합니다.

  • 사용자 이름과 비밀번호를 사용하는 기본 제공 데이터베이스 인증 승인은 GRANT 또는 REVOKE 문을 사용하여 결정됩니다. 자세한 내용은 AlloyDB 사용자 역할 관리를 참고하세요.
  • 사용자 및 서비스 계정과 같은 IAM 주 구성원을 사용하는 IAM 인증 AlloyDB 언어 커넥터는 IAM 인증 프로세스를 자동화할 수 있습니다. 자세한 내용은 AlloyDB 언어 커넥터 개요를 참고하세요. IAM 인증에는 다음과 같은 이점이 있습니다.
    • 통합 액세스 제어: IAM은 데이터베이스를 비롯한 모든 Google Cloud 리소스에 대한 액세스 제어를 중앙 집중화합니다. 통합 액세스 제어를 사용하면 일관된 정책을 적용하고 사용자 및 역할을 더 쉽게 관리할 수 있습니다.
    • 사용자 인증 정보 관리 감소: 사용자에게 별도의 데이터베이스 비밀번호가 필요하지 않습니다. IAM 인증은 기존 Google 계정 사용자 인증 정보를 사용합니다.
    • 단기 토큰: IAM 인증은 단기 액세스 토큰을 사용하여 비밀번호 유출 또는 사용자 인증 정보 도용 위험을 줄입니다.

커넥터

AlloyDB 인증 프록시 또는 AlloyDB 언어 커넥터를 사용하여 데이터베이스 클라이언트에 대한 암호화된 연결을 구성할 수 있습니다. AlloyDB 인증 프록시는 TLS가 아닌 연결을 TLS 1.3 연결로 투명하게 업그레이드하는 클라이언트 측 프록시입니다. 언어 커넥터는 AlloyDB 클러스터의 프록시 서버에 연결하는 클라이언트 라이브러리입니다. 두 커넥터 모두 IAM을 사용하여 연결을 승인하고 mTLS를 사용하여 연결을 보호합니다. 원하는 경우 IAM 인증 대신 비밀번호 없는 인증을 구성할 수 있습니다.

인증 프록시를 사용하는 경우 AlloyDB 인증 프록시 사용 권장사항을 검토하세요.

데이터 보호 및 개인 정보 보호

이 섹션에서는 AlloyDB가 데이터와 데이터의 개인 정보를 보호하는 방법을 설명합니다.

AlloyDB는 기본 암호화를 사용하여 클러스터에 저장된 데이터 (예: 인스턴스 이름, 인스턴스 구성, 테이블 콘텐츠, 행 이름, 맞춤 함수)를 암호화합니다. 이 데이터는 AlloyDB 인스턴스만 액세스할 수 있습니다.

고객 관리 암호화 키 (CMEK)를 사용 설정하여 저장된 클러스터 데이터를 암호화할 수 있습니다. CMEK를 사용하면 키가 Cloud KMS에 소프트웨어 보호 키 또는 하드웨어 보호 키 (Cloud HSM 사용)로 저장되지만 사용자가 관리합니다. 암호화 키를 자동으로 프로비저닝하려면 Cloud KMS Autokey를 사용 설정하면 됩니다. Autokey를 사용 설정하면 개발자가 Cloud KMS에서 키를 요청할 수 있으며, 서비스 에이전트가 개발자 의도에 적합한 키를 프로비저닝합니다. Cloud KMS Autokey를 사용할 경우 키는 요청 시에 제공되며, 일관성이 유지되며, 업계 표준 방침을 따릅니다.

또한 AlloyDB는 Cloud 외부 키 관리자 (Cloud EKM)를 지원하므로 Google Cloud외부의 외부 키 관리자에 키를 저장할 수 있습니다. Cloud EKM을 사용하는 경우 키 액세스 근거는 각 요청의 이유를 볼 수 있는 필드를 Cloud EKM 요청에 추가합니다. 일부 외부 키 관리 파트너를 사용하면 근거에 따라 이러한 요청을 자동으로 승인하거나 거부할 수 있습니다.

데이터가 처리되는 위치

AlloyDB는 클러스터에 저장된 데이터의 데이터 상주를 지원합니다. 데이터 상주를 사용하면 리소스 위치 제한 정책 제약 조건을 사용하여 데이터를 저장할 리전을 선택할 수 있습니다. Cloud 애셋 인벤토리를 사용하여 AlloyDB 리소스의 위치를 확인할 수 있습니다.

사용 중인 데이터에 데이터 상주가 필요한 경우 Assured Workloads를 구성하면 됩니다. 자세한 내용은 Assured Workloads 및 데이터 상주를 참고하세요.

데이터 개인 정보 보호

데이터 개인 정보를 보호하기 위해 AlloyDB는 일반적인 개인 정보 보호 원칙을 준수합니다.

AlloyDB는 고객 데이터의 데이터 프로세서 역할을 합니다. 또한 Google은 결제, 계정 관리, 악용 감지와 같은 정보의 데이터 컨트롤러 역할을 합니다. 자세한 내용은 Google Cloud 개인정보처리방침을 참고하세요.

감사 로깅

AlloyDB는 다음 유형의 감사 로그를 작성합니다.

  • 관리자 활동 감사 로그: 메타데이터 또는 구성 정보를 쓰는 ADMIN WRITE 작업이 포함됩니다.
  • 데이터 액세스 감사 로그: 메타데이터 또는 구성 정보를 읽는 ADMIN READ 작업이 포함됩니다. 또한 사용자가 제공한 데이터를 읽거나 쓰는 DATA READDATA WRITE 작업도 포함됩니다.
  • 시스템 이벤트 감사 로그: 리소스 구성을 수정하는 자동화된 Google Cloud 작업을 식별합니다.

자세한 내용은 AlloyDB 감사 로깅을 참고하세요.

또한 규제 요건을 충족하기 위해 pgAudit 확장 프로그램을 사용하여 데이터베이스 명령어의 감사 추적을 사용 설정할 수 있습니다. pgAudit 확장 프로그램 로그에는 실행된 명령어, 명령어 실행 시간, 명령어를 실행한 사용자에 관한 세부정보가 포함됩니다.

액세스 투명성

액세스 승인 및 액세스 투명성을 사용하여 서비스를 지원하는 Google 직원의 AlloyDB 인스턴스 액세스를 제어할 수 있습니다. 액세스 승인을 사용하면 Google 직원의 액세스 요청을 승인하거나 무시할 수 있습니다. 액세스 투명성 로그는Google Cloud 관리자가 리소스에 액세스할 때 거의 실시간 수준의 정보를 제공합니다.

모니터링 및 사고 대응

다양한 도구를 사용하여 AlloyDB의 성능과 보안을 모니터링할 수 있습니다. 다음 사항을 고려하세요.

  • 로그 탐색기를 사용하여 이벤트 로그를 보고 분석하고 맞춤 측정항목과 알림을 만듭니다.
  • AlloyDB 시스템 통계 대시보드 또는 Cloud Monitoring 대시보드를 사용하여 AlloyDB 인스턴스의 성능을 모니터링합니다. 자세한 내용은 인스턴스 모니터링을 참고하세요.
  • pgAudit 확장 프로그램을 사용 설정하여 AlloyDB 작업 (예: AlloyDB 인스턴스에서 실행되는 명령 및 쿼리)을 감사합니다. 이러한 로그에는 PostgreSQL 데이터베이스 로그와 데이터 플레인 에이전트의 컨테이너 로그가 포함됩니다.
  • SQL 취약점 및 AlloyDB에 대한 위협 (예: 권한 에스컬레이션)을 감지하도록 Security Command Center를 구성합니다. 보안 운영 센터 (SOC) 분석가가 발견 결과에 대응할 수 있도록 알림과 플레이북을 설정할 수 있습니다.

인증 및 규정 준수

규제 요구사항을 충족하는 것은 사용자와 Google의 공동 책임입니다.

AlloyDB는 다음을 비롯한 여러 인증을 획득했습니다.

Google Cloud 에서 다양한 규제 프레임워크와 인증을 준수하는 방식에 대한 자세한 내용은 규정 준수 리소스 센터를 참고하세요.

AlloyDB는 규제, 리전 또는 주권 요구사항을 지원하는 Google 조직의 특정 폴더에 제어를 적용할 수 있는 Assured Workloads도 지원합니다. 자세한 내용은 제어 패키지별 지원 제품을 참고하세요.

다음 단계