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

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

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

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

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

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

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

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

서비스 에이전트에는 Cloud SQL 및 Secret Manager 작업을 위한 권한이 필요합니다.

  • Cloud SQL 클라이언트(roles/cloudsql.client)
  • Cloud SQL 인스턴스 사용자(roles/cloudsql.instanceUser)
  • Secret Manager 보안 비밀 접근자(roles/secretmanager.secretAccessor)

조직 또는 폴더 수준에서 데이터를 프로파일링하는 경우 서비스 에이전트에 DLP 조직 데이터 프로필 드라이버(roles/dlp.orgdriver) 역할도 있는지 확인합니다.

서비스 에이전트 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에서 비밀번호를 저장할 보안 비밀을 만듭니다. 보안 비밀의 리소스 이름을 기록해 둡니다.

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에서 비밀번호를 저장할 보안 비밀을 만듭니다. 보안 비밀의 리소스 이름을 기록해 둡니다.

옵션 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 인스턴스에서만 사용할 수 있습니다.

서비스 에이전트를 사용자 계정으로 사용하려면 IAM 인증(Cloud SQL에서 구성되어야 함)을 선택합니다.

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

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

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

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

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

    서비스 연결로 이동

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

  2. 업데이트하려는 연결에서 작업 > 연결 한도 관리를 클릭합니다.

  3. 나타나는 창에 새 한도를 입력합니다.

  4. 완료를 클릭합니다.

다음 단계