디스커버리에 사용할 연결 관리

이 페이지에서는 Cloud SQL에 대해 디스커버리를 구성할 때 Sensitive Data Protection 기능이 만드는 연결로 작업하는 방법을 설명합니다.

서비스 에이전트 ID 가져오기

이 페이지의 절차를 실행하려면 스캔 구성과 연결된 서비스 에이전트의 ID가 필요합니다. 서비스 상담사 ID를 가져오려면 다음 단계를 따르세요.

  1. 디스커버리 스캔 구성 목록으로 이동합니다.

    디스커버리 스캔 구성으로 이동

  2. 스캔 구성을 선택합니다.
  3. 세부정보 페이지가 열리면 서비스 에이전트 ID를 복사합니다. 이 ID는 이메일 주소 형식입니다.

서비스 에이전트에 필요한 IAM 역할 부여

  1. 스캔 구성과 연결된 서비스 에이전트에 필요한 드라이버 역할이 있는지 확인합니다.

    • 검색 작업의 범위가 전체 조직 또는 폴더인 경우 서비스 에이전트에 DLP 조직 데이터 프로필 드라이버 (roles/dlp.orgdriver) 역할이 있는지 확인합니다.
    • 검색 작업의 범위가 단일 프로젝트인 경우 서비스 에이전트에 DLP 프로젝트 데이터 프로필 드라이버(roles/dlp.projectdriver) 역할이 있는지 확인합니다.
  2. 서비스 에이전트에 Secret Manager 보안 비밀 접근자(roles/secretmanager.secretAccessor) 역할을 부여합니다.

서비스 에이전트 ID를 가져오려면 이 페이지의 서비스 에이전트 ID 가져오기를 참고하세요.

자세한 내용은 Identity and Access Management 문서의 서비스 상담사에게 역할 부여를 참고하세요.

각 Cloud SQL 인스턴스 사용자 만들기

디스커버리 범위 내에 있는 각 인스턴스에 대해 데이터를 프로파일링하는 데 필요한 권한이 있는 사용자 계정을 만듭니다.

기존 사용자 계정을 사용할 수 있지만 이 계정에 이 섹션에 나열된 권한이 있는지 확인해야 합니다.

MySQL용 Cloud SQL 인스턴스 사용자 만들기

이 섹션에서는 데이터 프로파일링에서 사용할 MySQL 사용자 계정을 만드는 방법을 설명합니다. 사용자 계정을 만들거나 기존 계정을 재사용하든지 여부에 관계없이 계정에 mysql_native_password 인증 플러그인이 있어야 합니다. 이 섹션에는 이 인증 플러그인을 사용하도록 기존 데이터베이스 사용자 계정을 수정하는 방법에 대한 정보가 포함되어 있습니다.

  1. 인스턴스에 연결
  2. 데이터베이스 사용자 계정을 준비합니다.

    • 데이터베이스 사용자를 만들려면 mysql 프롬프트에서 다음 명령어를 실행합니다.

      CREATE USER 'USERNAME'@'%' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
      

      다음을 바꿉니다.

      • USERNAME: 사용자 계정의 사용자 이름
      • PASSWORD: 사용자 계정의 비밀번호

      자세한 내용은 MySQL 문서의 CREATE USER 문을 참조하세요.

    • mysql_native_password 인증 플러그인을 사용하지 않는 기존 데이터베이스 사용자 계정을 사용하려면 ALTER USER 명령어를 사용하여 해당 계정의 인증 플러그인을 변경합니다.

      ALTER USER 'USERNAME'@'%' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
      

      자세한 내용은 MySQL 문서의 ALTER USER 문을 참조하세요.

  3. 사용자에게 SELECTSHOW VIEW 권한을 부여합니다.

    GRANT SELECT, SHOW VIEW ON *.* TO 'USERNAME'@'%';
    

    출력은 다음과 비슷합니다.

    Query OK, 0 rows affected (0.00 sec)

    자세한 내용은 MySQL 문서의 GRANT 문을 참고하세요.

  4. (선택사항) performance_schema.log_status을 프로파일링하려면 사용자에게 BACKUP_ADMIN 권한을 부여합니다. 자세한 내용은 MySQL 문서의 MySQL 성능 스키마를 참고하세요.

    GRANT BACKUP_ADMIN ON *.* TO 'USERNAME'@'%';
    
  5. Secret Manager에서 보안 비밀을 만들어 비밀번호를 저장합니다. Cloud SQL 인스턴스가 포함된 프로젝트에서 보안 비밀을 만듭니다.

    보안 비밀의 리소스 이름을 확인합니다.

PostgreSQL용 Cloud SQL 인스턴스 사용자 만들기

PostgreSQL용 Cloud SQL 인스턴스의 경우 Sensitive Data Protection은 두 가지 유형의 사용자 계정을 지원합니다.

  • PostgreSQL을 통해 생성된 기본 제공 사용자 계정입니다.
  • IAM 주 구성원, 특히 스캔 구성과 연결된 서비스 에이전트입니다.

옵션 1: PostgreSQL에서 기본 제공 사용자 계정 만들기

이 섹션에서는 PostgreSQL을 통해 기본 제공 사용자 계정을 만드는 방법을 설명합니다.

  1. 인스턴스에 연결
  2. postgres 프롬프트에서 다음 명령어를 실행하여 사용자를 만듭니다.

    CREATE USER USERNAME WITH PASSWORD 'PASSWORD';
    

    다음을 바꿉니다.

    • USERNAME: 사용자 계정의 사용자 이름
    • PASSWORD: 사용자 계정의 비밀번호

    출력은 다음과 비슷합니다.

    CREATE ROLE

    자세한 내용은 PostgreSQL 문서의 CREATE USER를 참고하세요.

  3. 사용자에게 pg_read_all_data 역할을 부여합니다.

    GRANT pg_read_all_data TO USERNAME;
    

    출력은 다음과 비슷합니다.

    GRANT ROLE

    자세한 내용은 PostgreSQL 문서의 GRANT를 참고하세요.

  4. Secret Manager에서 보안 비밀을 만들어 비밀번호를 저장합니다. Cloud SQL 인스턴스가 포함된 프로젝트에서 보안 비밀을 만듭니다.

    보안 비밀의 리소스 이름을 확인합니다.

옵션 2: 서비스 에이전트를 인스턴스의 사용자로 추가(PostgreSQL만 해당)

PostgreSQL용 Cloud SQL 인스턴스를 구성하는 경우에만 이 단계를 따르세요.

  1. PostgreSQL용 Cloud SQL 문서에서 안내에 따라 데이터베이스에 IAM 서비스 계정을 추가합니다.

    제공하는 서비스 계정은 스캔 구성과 연결된 서비스 에이전트여야 합니다. 서비스 에이전트 ID를 가져오려면 이 페이지의 서비스 에이전트 ID 가져오기를 참고하세요.

  2. PostgreSQL에서 서비스 에이전트에 pg_read_all_data 역할을 부여합니다.

    GRANT pg_read_all_data TO "TRUNCATED_SERVICE_AGENT_ID";
    

    TRUNCATED_SERVICE_AGENT_ID.gserviceaccount.com 접미사가 없는 서비스 상담사 ID(예: service-1234567890@dlp-api.iam)로 바꿉니다.

    출력은 다음과 비슷합니다.

    GRANT ROLE

Cloud SQL 인스턴스에 대한 액세스 권한 제공

스캔 구성을 만든 후 Sensitive Data Protection은 디스커버리 범위 내의 각 인스턴스에 대해 기본 서비스 연결을 자동으로 만듭니다. 프로파일링을 시작하려면 먼저 각 서비스 연결을 수정하여 각 Cloud SQL 인스턴스의 사용자 인증 정보를 제공해야 합니다.

연결을 업데이트하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 서비스 연결 페이지로 이동합니다.

    서비스 연결로 이동

    연결이 목록에 표시됩니다.

  2. 업데이트할 연결에서 작업 > 연결 수정을 클릭합니다.

  3. 다음 중 하나를 수행합니다.

연결을 업데이트하면 민감한 정보 보호가 제공된 사용자 인증 정보로 인스턴스에 연결하려고 시도합니다. 연결에 오류가 있으면 민감한 정보 보호에서 인스턴스에 연결을 자동으로 다시 시도합니다. 자세한 내용은 이 페이지의 연결 오류 보기를 참고하세요.

사용자 계정 사용자 인증 정보 제공

사용자 이름과 비밀번호가 포함된 Secret Manager 리소스를 입력합니다. Secret Manager 리소스는 다음 형식이어야 합니다.

projects/PROJECT_NUMBER/secrets/SECRET_NAME/versions/VERSION_NUMBER

다음을 바꿉니다.

  • PROJECT_NUMBER: 프로젝트의 숫자 ID
  • SECRET_NAME: 비밀번호가 포함된 보안 비밀의 이름
  • VERSION_NUMBER: 보안 비밀의 버전 번호. 최신 버전을 제공하려면 latest을 사용하세요.

서비스 에이전트를 사용자 계정으로 사용

이 옵션은 PostgreSQL용 Cloud SQL 인스턴스에서만 사용할 수 있습니다.

서비스 에이전트를 사용자 계정으로 사용하려면 Cloud SQL IAM 데이터베이스 인증을 선택합니다.

인스턴스에 대한 최대 동시 연결 수 업데이트

Sensitive Data Protection은 기본적으로 최대 2개의 동시 연결을 사용하여 Cloud SQL 인스턴스 디스커버리로 인한 영향을 최소화합니다. 인스턴스 크기와 사용량에 따라 이 숫자를 적절한 값으로 늘리는 것이 좋습니다.

자세한 내용은 Cloud SQL 문서의 최대 동시 연결 수를 참고하세요.

디스커버리 서비스의 최대 연결 한도를 변경하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 서비스 연결 페이지로 이동합니다.

    서비스 연결로 이동

    연결이 목록에 표시됩니다.

  2. 업데이트할 연결에서 작업 > 연결 수정을 클릭합니다.

  3. 최대 연결 수 필드에 새 한도를 입력합니다.

  4. 완료를 클릭합니다.

연결 오류 보기

  1. Google Cloud 콘솔에서 서비스 연결 페이지로 이동합니다.

    서비스 연결로 이동

    연결된 항목이 표시됩니다. 연결에 오류가 있으면 오류 아이콘과 함께 표시됩니다.

  2. 오류가 있는 연결의 경우 작업 > 오류 보기를 클릭합니다. 관련 오류 메시지가 표시됩니다. 각 메시지에는 연결을 요청한 스캔 구성의 이름이 포함됩니다.

  3. 필요에 따라 오류를 해결합니다. 오류에 따라 해결 방법에는 다음이 포함될 수 있습니다.

    • 제공한 사용자 인증 정보 수정
    • Secret Manager에 저장된 비밀번호를 업데이트합니다.
    • 데이터베이스에 로그인하고 데이터베이스 사용자에게 필요한 권한을 부여합니다.
    • 지정된 스캔 구성과 연결된 서비스 에이전트에 지정된 IAM 역할을 할당합니다.

민감한 정보 보호는 인스턴스에 연결을 자동으로 다시 시도합니다. 재연결 시도가 성공하면 오류 메시지가 삭제됩니다.

공개 IP 주소가 없는 인스턴스의 검색 허용

공개 IP 주소가 없는 Cloud SQL 인스턴스에서 검색을 실행하려면 해당 인스턴스에 비공개 경로 사용 설정 옵션을 선택합니다. 이 옵션을 사용하면 Google Cloud 서비스가 비공개 IP 연결을 통해 Cloud SQL 인스턴스의 데이터에 액세스할 수 있습니다.

자세한 내용은 다음을 참조하세요.

다음 단계