创建和管理授权视图
本文档介绍了如何使用 Google Cloud CLI 或 Google Cloud 控制台定义、创建授权视图以及对授权视图执行其他管理 操作。在阅读本文档之前,您应该先熟悉 授权视图概览。
所需的角色
如需获取对授权视图执行管理操作所需的权限,请让您的管理员向您授予底层表的Bigtable 管理员 (roles/bigtable.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供对授权视图执行管理操作所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需对授权视图执行管理操作,您需要以下权限:
-
bigtable.authorizedViews.get -
bigtable.authorizedViews.list -
bigtable.authorizedViews.create -
bigtable.authorizedViews.update -
bigtable.authorizedViews.delete -
bigtable.authorizedViews.getIamPolicy -
bigtable.authorizedViews.setIamPolicy -
bigtable.authorizedViews.readRows -
bigtable.authorizedViews.sampleRowKeys -
bigtable.authorizedViews.mutateRows
如需了解如何在授权视图级 管理 Bigtable IAM 角色,请参阅授权视图级 IAM 管理。
Google Cloud创建授权视图
创建授权视图时,请考虑将针对该视图运行的查询。发送到授权视图的读取、写入和删除请求必须仅引用授权视图中的数据。例如,如果您尝试读取、写入或删除表中的某一行,而该行中的列不在您的授权视图中,则请求会失败。
为避免因向表中添加了不在授权视图中的列而导致对授权视图的数据请求失败,您可以为列族指定一个空列限定符前缀“”。
每个授权视图最多可以指定 100 个定义参数。
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含您要创建授权视图的表的实例。
在导航窗格中,点击 Bigtable Studio 。
点击构建器 以打开查询构建器。
选择您要创建授权视图的表。
添加子句以构建查询,该查询仅返回您希望授权视图用户有权访问的数据。
- 授权视图可接受的子句包括行键前缀 和列 (列限定符)。
- 如需指定列限定符前缀,请在该前缀后添加星号。例如,如需包含以“data”开头的所有列,请在列族名称后的列 字段中输入
data*。 - 保存授权视图时,系统会忽略 Limit 子句。
- 如需详细了解如何使用查询构建器,请参阅在控制台中构建查询。
点击运行 。
验证结果窗格中显示的数据应包含在授权视图中后,点击另存为视图 。
输入授权视图的永久标识符,该标识符尚未用于该表。
可选:如需保存但不授予访问权限,请点击保存 。
可选:如需保存授权视图,然后为其配置访问权限,请点击保存并授予访问权限 。如需详细了解访问权限 控制,请参阅 使用 IAM 进行 Bigtable 访问权限控制。
- 至少添加一个主账号,然后选择应向该主账号或主账号组分配的角色。
- 可选:如需为其他角色授予访问权限,请点击添加其他角色 ,然后为每个其他角色输入正文和角色。
- 点击保存 。
gcloud
运行 bigtable authorized-views create 命令。如需了解详情,
请参阅 gcloud bigtable authorized-views
create 的参考文档。
gcloud bigtable authorized-views create AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID \
--definition-file=DEFINITION_FILE_PATH
替换以下内容:
AUTHORIZED_VIEW_ID:授权视图的永久标识符,该标识符尚未用于该表INSTANCE_ID:包含该表的实例的永久标识符TABLE_ID:您要创建授权视图的表的永久标识符DEFINITION_FILE_PATH:授权视图的有效 JSON 格式表示形式的路径。如需查看格式正确的定义文件示例,请参阅定义文件示例。
您也可以在不提供定义文件的情况下运行该命令。在这种情况下,gcloud CLI 会打开一个编辑器并提示您输入值。
如需确认授权视图已创建, 请获取该表的授权视图列表。
Java
如需了解如何安装和使用 Bigtable 的客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅 为客户端库设置身份验证。
修改授权视图
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含授权视图的实例。
在导航窗格中,点击 Bigtable Studio 。
在探索器中,展开表和授权视图 。
在要修改的授权视图旁边,点击 more_vert 操作菜单, 然后点击 打开。
修改或添加子句以构建查询,该查询仅返回您 希望授权视图用户有权访问的数据。
- 授权视图可接受的子句包括行键前缀 和列 (列限定符)。
- 如需指定列限定符前缀,请在该前缀后添加星号。例如,如需包含以“data”开头的所有列,请在列族名称后的列 字段中输入
data*。 - 保存授权视图时,系统会忽略 Limit 子句。
- 如需详细了解如何使用查询构建器,请参阅在控制台中构建查询。
点击运行 。
验证结果窗格中显示的数据应包含在授权视图中后,点击另存为视图 。
在对话框中,输入您修改的授权视图的 ID。
对话框会显示一条消息,警告您将覆盖现有授权视图。
可选:如需保存但不授予访问权限,请点击保存 。
可选:如需保存授权视图,然后为其配置访问权限,请点击保存并授予访问权限 。如需详细了解访问权限 控制,请参阅 使用 IAM 进行 Bigtable 访问权限控制。
- 至少添加一个主账号,然后选择应向该主账号或主账号组分配的角色。
- 可选:如需为其他角色授予访问权限,请点击添加其他角色 ,然后为每个其他角色输入正文和角色。
- 点击保存 。
gcloud
使用 bigtable authorized-views
update 命令修改授权视图。如需了解详情,请参阅
gcloud bigtable authorized-views
update的参考文档。
gcloud bigtable authorized-views update AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID \
--definition-file=DEFINITION_FILE_PATH
替换以下内容:
AUTHORIZED_VIEW_ID:授权视图的永久标识符INSTANCE_ID:实例的永久标识符TABLE_ID:源表的永久标识符DEFINITION_FILE_PATH:授权视图的有效 JSON 格式表示形式的路径。如需查看格式正确的定义文件示例,请参阅定义文件示例。
您也可以在不提供定义文件的情况下运行该命令。在这种情况下,gcloud CLI 会打开一个编辑器并提示您输入值。
可选:如需阻止 gcloud CLI 显示确认提示,以显示当前授权视图结构与提交更新后的结构之间的差异,请将 --no-interactive 标志附加到该命令。
Java
如需了解如何安装和使用 Bigtable 的客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅 为客户端库设置身份验证。
启用或停用防删除保护
如需为授权视图启用防删除保护,请修改定义授权视图的 JSON 文件,方法是将 deletionProtection 标志设置为 true。
如需停用防删除保护,请修改定义授权视图的 JSON 文件,方法是将 deletionProtection 标志设置为 false。
如需最终确定对授权视图的更改,请运行 bigtable
authorized-views update 命令,并使用更新后的 JSON 文件的名称。如需了解详情,请参阅
gcloud bigtable authorized-views update的参考文档。
删除授权视图
如果您删除某个表,该表的所有授权视图也会被删除。
如果您删除授权视图,则无法撤消删除操作。但是,如果您删除某个表,然后撤消删除操作,则该表的所有授权视图都会与该表一起恢复。然后,您必须为授权视图以及表重新配置 IAM。如需了解详情,请参阅撤消删除 表。
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含授权视图的实例。
在导航窗格中,点击 Bigtable Studio 。
在探索器中,展开表和授权视图 。
在要删除的授权视图旁边,点击 more_vert 操作菜单, 然后点击 删除。
gcloud
使用 bigtable instances tables
authorized-views delete 命令删除授权视图。如需了解详情,
请参阅 gcloud bigtable authorized-views
delete 的参考文档。
gcloud bigtable authorized-views delete AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID
替换以下内容:
AUTHORIZED_VIEW_ID:授权视图的永久标识符INSTANCE_ID:实例的永久标识符TABLE_ID:源表的永久标识符
可选:如需阻止 gcloud CLI 显示确认提示,要求您确认或取消删除操作,请将 --nointeractive 标志附加到该命令。
Java
如需了解如何安装和使用 Bigtable 的客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅 为客户端库设置身份验证。
获取表的授权视图列表
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含授权视图的实例。
在导航窗格中,点击 Bigtable Studio 。
在探索器中,展开表和授权视图 。
gcloud
运行 bigtable authorized-views list 命令。如需了解详情,
请参阅 gcloud bigtable authorized-views
list 的参考文档。
gcloud bigtable authorized-views list \
--instance=INSTANCE_ID \
--table=TABLE_ID
替换以下内容:
INSTANCE_ID:实例的永久标识符TABLE_ID:表的永久标识符
Java
如需了解如何安装和使用 Bigtable 的客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅 为客户端库设置身份验证。
查看授权视图的详细信息
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含授权视图的实例。
在导航窗格中,点击 Bigtable Studio 。
在探索器中,展开表和授权视图 。
在要查看的授权视图旁边,点击 more_vert操作菜单, 然后点击打开。
gcloud
如需获取授权视图的详细信息,请运行 bigtable instances
tables authorized-views describe 命令。如需了解详情,
请参阅 gcloud bigtable authorized-views
describe 的参考文档。
gcloud bigtable authorized-views describe \
–-instance=INSTANCE_ID \
–-table=TABLE_ID \
AUTHORIZED_VIEW_ID
替换以下内容:
INSTANCE_ID:实例的永久标识符TABLE_ID:表的永久标识符AUTHORIZED_VIEW_ID:授权视图的永久标识符
Java
如需了解如何安装和使用 Bigtable 的客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅 为客户端库设置身份验证。
授予对授权视图的访问权限
如需详细了解访问权限控制,请参阅使用 IAM 进行Bigtable 访问权限控制。
控制台
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含授权视图的实例。
在导航窗格中,点击 Bigtable Studio 。
在探索器窗格中,展开表和授权视图 。
在授权视图名称旁边,点击 more_vert 操作菜单, 然后点击 授予访问权限。
至少添加一个主账号,然后选择应向该主账号或主账号组分配的角色。
可选:如需为其他角色授予访问权限,请点击添加其他角色 ,然后为每个其他角色输入正文和角色。
点击保存 。
gcloud
如需授予对授权视图的访问权限,请使用 bigtable
authorized-views add-iam-policy-binding 命令。如需了解详情,
请参阅 gcloud bigtable authorized-views
add-iam-policy-binding 的参考文档。
gcloud bigtable authorized-views add-iam-policy-binding AUTH_VIEW_ID \
--instance=INSTANCE_ID --table=TABLE_ID \
--member=PRINCIPAL --role=ROLE
替换以下内容:
AUTH_VIEW_ID:授权视图的 IDTABLE_ID:授权视图所属的表的 IDINSTANCE_ID:包含该表的实例PRINCIPAL:您要授予访问权限的主账号(用户),例如user:222larabrown@gmail.comROLE:您要授予的角色,例如roles/bigtable.reader。