本页面介绍了如何在为 Cloud SQL 配置发现功能时使用敏感数据保护创建的连接。
获取服务代理 ID
如需执行本页中的流程,您需要与扫描配置关联的服务代理的 ID。如需获取服务代理 ID,请按以下步骤操作:
转到发现扫描配置列表。
- 选择您的扫描配置。
- 在打开的详情页面上,复制服务代理 ID。此 ID 采用电子邮件地址的格式。
向服务代理授予所需的 IAM 角色
确保与您的扫描配置关联的服务代理具有所需的 Driver 角色:
- 如果发现操作的范围是整个组织或文件夹,请确保服务代理具有 DLP Organization Data Profile Driver (
roles/dlp.orgdriver
) 角色。 - 如果发现操作的范围是单个项目,请确保服务代理具有 DLP Project Data Profiles Driver (
roles/dlp.projectdriver
) 角色。
- 如果发现操作的范围是整个组织或文件夹,请确保服务代理具有 DLP Organization Data Profile Driver (
向服务代理授予 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 实例,敏感数据保护支持两种类型的用户帐号:
- 通过 PostgreSQL 创建的内置用户帐号。
- IAM 主帐号,具体是指与扫描配置关联的服务代理。
方法 1:在 PostgreSQL 中创建内置用户帐号
本部分介绍了如何通过 PostgreSQL 创建内置用户帐号。
- 连接到您的实例。
在
postgres
提示符处,运行以下命令以创建用户:CREATE USER USERNAME WITH PASSWORD 'PASSWORD';
替换以下内容:
USERNAME
:用户帐号的用户名PASSWORD
:用户帐号的密码
输出类似于以下内容:
CREATE ROLE
如需了解详情,请参阅 PostgreSQL 文档中的创建用户。
向用户授予
pg_read_all_data
角色:GRANT pg_read_all_data TO USERNAME;
输出类似于以下内容:
GRANT ROLE
如需了解详情,请参阅 PostgreSQL 文档中的 GRANT。
在 Secret Manager 中,创建一个 Secret 来存储密码。
- 如果发现操作的范围是整个组织或文件夹,请在包含 Cloud SQL 实例的项目中创建 Secret。
- 如果发现操作的范围是单个项目,请在该项目中创建 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 实例)
提供用户账号凭据
输入用户名以及包含密码的 Secret Manager 资源。Secret Manager 资源必须采用以下格式:
projects/PROJECT_NUMBER/secrets/SECRET_NAME/versions/VERSION_NUMBER
替换以下内容:
PROJECT_NUMBER
:项目的数字 ID。SECRET_NAME
:包含密码的 Secret 的名称。VERSION_NUMBER
:密钥的版本号;如需提供最新版本,请使用latest
。
将服务代理用作用户账号
此选项仅适用于 Cloud SQL for PostgreSQL 实例。
如需将服务代理用作用户帐号,请选择 Cloud SQL IAM 数据库身份验证。
更新实例的并发连接数上限
默认情况下,敏感数据保护最多使用两个并发连接,以最大程度减少发现功能对 Cloud SQL 实例的影响。我们建议您根据实例大小和利用率将此数字增加到适当的值。
如需了解详情,请参阅 Cloud SQL 文档中的并发连接数上限。
如需更改发现服务的连接数上限,请执行以下操作:
在 Google Cloud 控制台中,前往服务连接页面。
您的连接会显示在列表中。
对于要更新的连接,点击 > 管理连接限制。
操作在随即显示的窗格中,输入新的上限。
点击完成。
后续步骤
- 了解如何查看数据分析文件。