本页面介绍了如何使用 Sensitive Data Protection 在为 Cloud SQL 配置发现时创建的连接。
获取服务代理 ID
如需执行本页面上的步骤,您需要与扫描配置关联的服务代理的 ID。如需获取服务代理 ID,请按以下步骤操作:
前往发现扫描配置列表。
- 在工具栏中,选择您的组织。
- 选择您的扫描配置。
- 在扫描配置详情页面上,复制服务代理字段的值。服务代理 ID 的格式为电子邮件地址。
向服务代理授予所需的 IAM 角色
确保与扫描配置关联的服务代理具有所需的驱动程序角色:
- 如果发现操作的范围是整个组织或某个文件夹,请确保服务代理具有 DLP Organization Data Profiles Driver (
roles/dlp.orgdriver
) 角色。 - 如果发现操作的范围是单个项目,请确保服务代理具有 DLP Project Data Profiles Driver (
roles/dlp.projectdriver
) 角色。
- 如果发现操作的范围是整个组织或某个文件夹,请确保服务代理具有 DLP Organization Data Profiles Driver (
为该服务代理授予 Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor
) 角色。
如需获取服务代理 ID,请参阅本页面上的获取服务代理 ID。
如需了解详情,请参阅 Identity and Access Management 文档中的向服务代理授予角色。
为每个 Cloud SQL 实例创建用户
对于发现范围内的每个实例,请创建一个具有分析数据所需权限的用户账号。
您可以使用现有用户账号,但必须确保该账号具有本部分中列出的权限。
为 Cloud SQL for MySQL 实例创建用户
本部分介绍了如何创建用于数据分析的 MySQL 用户账号。无论您是创建新用户账号还是重复使用现有账号,该账号都必须具有 caching_sha2_password
身份验证插件。
本部分包含有关如何修改现有数据库用户账号以使用此身份验证插件的信息。
- 连接到您的实例。
准备数据库用户账号。
如果您想创建数据库用户,请在
mysql
提示符下运行以下命令:CREATE USER 'USERNAME'@'%' IDENTIFIED WITH caching_sha2_password BY 'PASSWORD';
替换以下内容:
USERNAME
:用户账号的用户名PASSWORD
:用户账号的密码
如需了解详情,请参阅 MySQL 文档中的 CREATE USER 语句。
如果您想使用未使用
caching_sha2_password
身份验证插件的现有数据库用户账号,请使用ALTER USER
命令更改该账号的身份验证插件:ALTER USER 'USERNAME'@'%' IDENTIFIED WITH caching_sha2_password BY 'PASSWORD';
如需了解详情,请参阅 MySQL 文档中的 ALTER USER 语句。
向用户授予
SELECT
和SHOW VIEW
权限。GRANT SELECT, SHOW VIEW ON *.* TO 'USERNAME'@'%';
输出类似于以下内容:
Query OK, 0 rows affected (0.00 sec)
如需了解详情,请参阅 MySQL 文档中的 GRANT 语句。
可选:如果您希望对
performance_schema.log_status
进行分析,请向用户授予BACKUP_ADMIN
权限。如需了解详情,请参阅 MySQL 文档中的 MySQL 性能架构。GRANT BACKUP_ADMIN ON *.* TO 'USERNAME'@'%';
在 Secret Manager 中,创建密文以存储密码。在包含 Cloud SQL 实例的项目中创建 Secret。
记下相应 Secret 的资源名称。
为 Cloud SQL for PostgreSQL 实例创建用户
对于 Cloud SQL for PostgreSQL 实例,Sensitive Data Protection 支持两种类型的用户账号:
- 通过 PostgreSQL 创建的内置用户账号。
- 一个 IAM 主账号,具体来说,是与您的扫描配置关联的服务代理。
方法 1:在 PostgreSQL 中创建内置用户账号
本部分介绍了如何通过 PostgreSQL 创建内置用户账号。
- 连接到您的实例。
在
postgres
提示符下,运行以下命令以创建用户:CREATE USER USERNAME WITH PASSWORD 'PASSWORD';
替换以下内容:
USERNAME
:用户账号的用户名PASSWORD
:用户账号的密码
输出类似于以下内容:
CREATE ROLE
如需了解详情,请参阅 PostgreSQL 文档中的 CREATE USER。
向用户授予
pg_read_all_data
角色:GRANT pg_read_all_data TO USERNAME;
输出类似于以下内容:
GRANT ROLE
如需了解详情,请参阅 PostgreSQL 文档中的 GRANT。
在 Secret Manager 中,创建密文以存储密码。在包含 Cloud SQL 实例的项目中创建 Secret。
记下相应 Secret 的资源名称。
方法 2:将服务代理添加为实例中的用户(仅限 PostgreSQL)
只有在配置 Cloud SQL for PostgreSQL 实例时,才需要执行以下步骤。
按照 Cloud SQL for PostgreSQL 文档中的说明向数据库添加 IAM 服务账号。
您提供的服务账号必须是与扫描配置关联的服务代理。如需获取服务代理 ID,请参阅本页面上的获取服务代理 ID。
在 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 实例的访问权限
创建扫描配置后,敏感数据保护会自动为发现范围内的每个实例创建默认服务连接。在开始分析之前,您需要修改每个服务连接,以提供每个 Cloud SQL 实例的凭据。
如需更新连接,请按以下步骤操作:
在 Google Cloud 控制台中,前往服务连接页面。
您的连接会显示在列表中。
对于要更新的关联,请依次点击 > 修改关联。
操作执行下列其中一项操作:
- 提供用户账号凭据
- 将服务代理用作用户账号(仅适用于 Cloud SQL for PostgreSQL 实例)
更新连接后,敏感数据保护功能会尝试使用您提供的凭据连接到实例。如果连接出现错误,Sensitive Data Protection 会自动重试连接到实例。如需了解详情,请参阅本页面上的查看连接错误。
提供用户账号凭据
输入用户名和包含密码的 Secret Manager 资源。Secret Manager 资源必须采用以下格式:
projects/PROJECT_NUMBER/secrets/SECRET_NAME/versions/VERSION_NUMBER
替换以下内容:
PROJECT_NUMBER
:项目的数字 ID。SECRET_NAME
:包含密码的 Secret 的名称。VERSION_NUMBER
:相应 Secret 的版本号;如需提供最新版本,请使用latest
。
将服务代理用作用户账号
此选项仅适用于 Cloud SQL for PostgreSQL 实例。
如需使用服务代理作为用户账号,请选择 Cloud SQL IAM 数据库身份验证。
更新实例的并发连接数上限
默认情况下,Sensitive Data Protection 最多使用两个并发连接,以尽量减少发现对 Cloud SQL 实例的影响。建议您根据实例大小和利用率将此数字增加到适当的值。
如需了解详情,请参阅 Cloud SQL 文档中的最大并发连接数。
如需更改发现服务的最大连接限制,请执行以下操作:
在 Google Cloud 控制台中,前往服务连接页面。
您的连接会显示在列表中。
对于要更新的关联,请依次点击 > 修改关联。
操作在连接数上限字段中,输入新的上限。
点击完成。
查看连接错误
在 Google Cloud 控制台中,前往服务连接页面。
系统会列出您的连接。如果某个连接存在错误,系统会显示一个错误图标。
对于存在错误的连接,依次点击 > 查看错误。系统会列出相关联的错误消息。每条消息都包含请求连接的扫描配置的名称。
操作根据需要解决错误。根据错误的不同,解决方案可能涉及以下任一操作:
- 修改您提供的凭据。
- 更新存储在 Secret Manager 中的密码。
- 登录数据库并向数据库用户授予所需权限。
- 将指定的 IAM 角色分配给与指定扫描配置关联的服务代理。
Sensitive Data Protection 会自动重试连接到该实例。 如果重新连接尝试成功,系统会清除错误消息。
允许发现没有公共 IP 地址的实例
如需对没有公共 IP 地址的 Cloud SQL 实例运行发现,请为该实例选择启用专用路径选项。此选项允许 Google Cloud 服务通过专用 IP 连接访问 Cloud SQL 实例中的数据。
详情请参阅以下内容:
- Cloud SQL for MySQL:为现有实例配置专用 IP
- Cloud SQL for PostgreSQL:为现有实例配置专用 IP
后续步骤
- 了解如何管理数据分析文件。