本页介绍了如何使用敏感数据保护功能在您为 Cloud SQL 配置发现功能时创建的关联。
获取服务代理 ID
若要执行本页中的操作,您需要知道与扫描配置关联的服务代理的 ID。如需获取服务代理 ID,请按以下步骤操作:
前往发现扫描配置列表。
- 选择您的扫描配置。
- 在打开的详情页面上,复制服务代理 ID。此 ID 的格式为电子邮件地址。
向服务代理授予所需的 IAM 角色
确保与您的扫描配置关联的服务代理具有所需的驱动程序角色:
- 如果发现操作的范围是整个组织或文件夹,请确保服务代理具有 DLP 组织数据集成驱动程序 (
roles/dlp.orgdriver
) 角色。 - 如果发现操作的范围仅限于一个项目,请确保服务代理具有 DLP Project Data Profiles Driver (
roles/dlp.projectdriver
) 角色。
- 如果发现操作的范围是整个组织或文件夹,请确保服务代理具有 DLP 组织数据集成驱动程序 (
向服务代理授予 Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor
) 角色。
如需获取服务代理 ID,请参阅本页面上的获取服务代理 ID。
如需了解详情,请参阅 Identity and Access Management 文档中的向服务人员授予角色。
为每个 Cloud SQL 实例创建用户
对于纳入发现范围内的每个实例,请创建一个具有分析数据所需权限的用户账号。
您可以使用现有用户账号,但必须确保该账号具有本部分列出的权限。
为 Cloud SQL for MySQL 实例创建用户
本部分介绍了如何创建 MySQL 用户账号以用于数据分析。无论您是创建用户账号还是重复使用现有账号,该账号都必须安装 mysql_native_password
身份验证插件。本部分介绍了如何修改现有数据库用户账号以使用此身份验证插件。
- 连接到您的实例。
准备数据库用户账号。
如果您想创建数据库用户,请在
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 语句。
向用户授予
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 中,创建一个 Secret 来存储密码。在包含 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 中,创建一个 Secret 来存储密码。在包含 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
后续步骤
- 了解如何管理数据分析文件。