AlloyDB 인증 프록시 정보

이 페이지에서는 AlloyDB 데이터베이스에 승인된 암호화된 연결을 설정할 수 있는 커넥터인 AlloyDB 인증 프록시를 간략하게 설명합니다.

인증 프록시 사용에 관한 단계별 가이드는 AlloyDB 인증 프록시를 사용하여 연결을 참고하세요.

개요

인증 프록시를 사용하면 클라이언트를 AlloyDB 데이터베이스에 직접 연결하는 것보다 다음과 같은 이점이 있습니다.

  • IAM 기반 연결 승인 (AuthZ): 인증 프록시는 IAM 주 구성원의 사용자 인증 정보와 권한을 사용하여 AlloyDB 인스턴스에 대한 연결을 승인합니다.

  • 보안 암호화 통신: 인증 프록시는 클라이언트와 AlloyDB 인스턴스 간에 256비트 AES 암호화를 사용하여 TLS 1.3 연결을 자동으로 생성, 사용, 유지하여 클라이언트 및 서버 ID를 확인하고 데이터 트래픽을 암호화합니다.

AlloyDB 인스턴스에 연결하는 방법에 관한 자세한 내용은 연결 개요를 참고하세요.

AlloyDB 인증 프록시 작동 방식

AlloyDB 인증 프록시는 로컬 환경에서 로컬 클라이언트를 실행하여 작동합니다. 애플리케이션은 데이터베이스에서 사용하는 표준 데이터베이스 프로토콜을 사용하여 AlloyDB 인증 프록시와 통신합니다.

AlloyDB 인증 프록시는 보안 터널 (TLS 1.3, 256비트 AES 암호화)을 사용하여 서버에서 실행 중인 컴패니언 프로세스와 통신합니다. AlloyDB 인증 프록시를 통해 설정된 각 연결은 AlloyDB 인스턴스에 대한 하나의 연결을 만듭니다.

애플리케이션에서 AlloyDB 인증 프록시에 연결할 때 애플리케이션과 대상 AlloyDB 인스턴스 간의 기존 연결을 사용할 수 있는지 여부를 확인합니다. 연결이 없으면 AlloyDB Admin API를 호출하여 임시 SSL 인증서를 가져오고 이를 사용하여 AlloyDB에 연결합니다. 임시 SSL 인증서는 24시간 후에 만료됩니다. AlloyDB 인증 프록시는 이러한 인증서가 만료되기 전에 새로 고칩니다.

AlloyDB 인증 프록시는 모든 포트에서 리슨할 수 있지만 포트 5433에서만 AlloyDB 인스턴스에 대한 발신 또는 이그레스 연결을 만듭니다. AlloyDB 인증 프록시는 고정 IP 주소가 없는 도메인 이름 alloydb.googleapis.com을 통해 API를 호출하므로 포트 443의 모든 이그레스 TCP 연결이 허용되어야 합니다. 클라이언트 머신에 아웃바운드 방화벽 정책이 있는 경우 AlloyDB 인스턴스의 IP에서 포트 5433으로 나가는 연결이 가능한지 확인합니다.

AlloyDB 인증 프록시에서 IAM 주체를 승인하는 방법

클라이언트의 AlloyDB 인스턴스에 대한 클라이언트의 연결을 승인하기 위해 인증 프록시 클라이언트는 클라이언트의 IAM 주 구성원 사용자 인증 정보를 사용하여 Google Cloud 에 인증한 후 IAM 주 구성원에게 Cloud AlloyDB 클라이언트 (roles/alloydb.client) 및 서비스 사용량 소비자(roles/serviceusage.serviceUsageConsumer) IAM 역할이 있는지 확인합니다.

클라이언트에서 IAM 사용자 인증 정보를 찾기 위해 인증 프록시 클라이언트는 다음 항목을 각각 확인하고, 찾은 항목 중 첫 번째 항목을 사용하여 Google Cloud에 대한 인증을 시도합니다.

  1. --credentials-file 플래그로 제공된 사용자 인증 정보

    서비스 계정을 사용하여 연결된 JSON 키 파일을 만들어 다운로드하고 인증 프록시 클라이언트를 시작할 때 --credentials-file 플래그를 해당 파일 경로로 설정합니다. 서비스 계정에는 AlloyDB 인스턴스의 Cloud AlloyDB 클라이언트(roles/alloydb.client) 및 서비스 사용량 소비자(roles/serviceusage.serviceUsageConsumer) IAM 역할이 있어야 합니다.

    명령줄에서 이 옵션을 사용하려면 --credentials-file 플래그가 JSON 사용자 인증 정보 파일의 경로와 파일 이름으로 설정된 alloydb-auth-proxy 명령어를 호출합니다. 경로는 절대적이거나 현재 작업 디렉터리를 기준으로 할 수 있습니다.

  2. --token 플래그로 제공된 사용자 인증 정보

    액세스 토큰을 만들고 --token 플래그와 함께 alloydb-auth-proxy 명령어를 호출하여 OAuth 2.0 액세스 토큰으로 설정합니다.

  3. 환경 변수로 제공된 사용자 인증 정보

    이 옵션은 --credentials-file 플래그를 사용하는 대신 GOOGLE_APPLICATION_CREDENTIALS 환경 변수에 설정한 JSON 사용자 인증 정보 파일을 지정한다는 점을 제외하면 --credentials-file 플래그를 사용하는 것과 유사합니다.

  4. 인증된 Google Cloud CLI 클라이언트의 사용자 인증 정보

    gcloud CLI를 설치하고 개인 계정으로 인증한 경우 인증 프록시 클라이언트에서 동일한 계정 사용자 인증 정보를 사용할 수 있습니다. 이 방법은 특히 개발 환경을 준비하고 실행하는 데 유용합니다.

    gcloud auth login에 선택된 계정이 없으면 인증 프록시 클라이언트는 gcloud auth application-default login에 선택된 계정을 확인합니다.

  5. Compute Engine 인스턴스 관련 사용자 인증 정보

    Compute Engine 인스턴스에서 AlloyDB에 연결하는 경우 인증 프록시 클라이언트는 Compute Engine 인스턴스와 연결된 서비스 계정을 사용할 수 있습니다. 서비스 계정에 AlloyDB 인스턴스의 Cloud AlloyDB 클라이언트(roles/alloydb.client) 및 서비스 사용량 소비자(roles/serviceusage.serviceUsageConsumer) IAM 역할이 있는 경우 인증 프록시 클라이언트가 성공적으로 인증됩니다.

    Compute Engine 인스턴스가 AlloyDB 인스턴스와 동일한 프로젝트에 있는 경우 Compute Engine 인스턴스의 기본 서비스 계정에는 AlloyDB를 인증하는 데 필요한 권한이 있습니다. 두 인스턴스가 서로 다른 프로젝트에 있는 경우 Compute Engine 인스턴스의 서비스 계정을 AlloyDB 인스턴스가 포함된 프로젝트에 추가해야 합니다.

  6. 환경의 기본 서비스 계정

    인증 프록시 클라이언트가 앞에서 설명한 위치에서 사용자 인증 정보를 찾을 수 없는 경우 서비스 계정으로 인증에 설명된 로직을 따릅니다. 일부 환경(예: Compute Engine, App Engine 등)은 애플리케이션이 기본적으로 인증하는 데 사용할 수 있는 기본 서비스 계정을 제공합니다. 기본 서비스 계정을 사용하는 경우 Cloud AlloyDB 클라이언트(roles/alloydb.client) 및 서비스 사용량 소비자(roles/serviceusage.serviceUsageConsumer) IAM 역할이 있어야 합니다.

    Google Cloud의 인증 방식에 대한 자세한 내용은 인증 개요를 참조하세요.

다음 단계