本页介绍了如何使用 Google Cloud 标记来管理对 Spanner 实例的访问权限。
Google Cloud 标记是一种键值对,可附加到 Google Cloud 资源(例如项目或 Spanner 实例)。你可以使用标签将群组 和整理实例,以及有条件地 基于 Identity and Access Management (IAM) 访问权限政策 某个实例是否具有特定标记。您可以使用 Google Cloud CLI 或 Google Cloud 控制台创建和管理 Spanner 实例标记。创建标记后,您可以创建标记绑定,以将标记附加到 Google Cloud 资源。标记绑定由 根据 Google Cloud 资源层次结构为该资源的子资源。 例如,如果您将标记附加到项目,则该项目中的所有实例 继承该标记。您还可以使用标签整理 Google Cloud 资源,但不能使用标签设置 IAM 政策的条件。
如需详细了解标记,请参阅标记概览。
Spanner 实例标记的常见使用场景
常见的代码用例包括:
- Identity and Access Management (IAM) 标记:授予 Identity and Access 基于实例是否具有特定标记的 Management (IAM) 角色。通过 标记值是否存在是该 IAM 政策的条件; 有助于控制对 Spanner 实例的访问权限。
- 状态标记:通过创建标记来指示和管理实例的状态。
例如,
state:active
、state:todelete
和state:archive
。 - 环境标记:指定生产、测试和开发环境
例如创建
env:prod
、env:dev
和env:test
。
如何创建和管理 Spanner 实例标记
标记采用键值对结构。您需要在
组织资源,然后将标记值附加到标记键(例如,
标记键 environment
,值为 prod
和 dev
)。然后,您可以创建
将标记值关联到 Google Cloud 资源(例如项目)的绑定
或 Spanner 实例。请注意,您不能将代码分配给
数据库。
所需权限
所需权限取决于您要执行的操作。有关 相关信息,请参阅 Resource Manager 中的所需权限 文档。
创建标记键和标记值
在将标记附加到实例之前,您必须先创建标记并 赋值。如需创建标记键和标记值,请参阅创建标记 和添加标记值。
将标记附加到实例
创建标记键值对后,您可以创建标记绑定并将其附加到 Spanner 实例。
控制台
在 Google Cloud 控制台中,前往 Spanner 实例 页面。
选择要为其附加标记的实例。
点击
标记。如果您的组织未显示在标记面板中,请点击选择范围。选择您的组织,然后点击打开。
在“标记”面板中,选择添加标记。
在键字段中,选择要从哪个键附加代码 列表。您可以通过输入关键字来过滤列表。
在值字段中,选择要附加的代码的值 。您可以通过输入关键字来过滤列表。
如果您想附加更多标签,请点击
添加标记,然后选择键 和价值点击保存。
在确认对话框中,点击确认以附加标记。
系统会显示一条通知以确认您的标记已更新。
gcloud
如需创建标记绑定并将其附加到您的实例,请运行以下命令 命令:
gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/VALUE_NAME
--location=LOCATION
PROJECT_ID
:项目的 ID。INSTANCE_ID
:实例的 ID。ORG_ID
:组织的 ID。KEY_NAME
:代码的显示(简称)名称 键。例如env
。VALUE_NAME
:代码的显示(简称)名称 值。例如prod
。LOCATION
:您的实例的位置。例如us-east1
。
例如,要在 Spanner 实例上创建标记绑定,
将 my-instance
替换为标记键值对 env:prod
,请运行以下命令
命令:
gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/my-project/instances/my-instance
--tag-value=123456789012/env/prod
--location=us-east1
IAM 条件和标记
您可以使用标记和 IAM 条件有条件地将角色绑定授予 用户。如果应用了带有条件角色绑定的 IAM 政策,则更改或 删除附加到资源的标记可能会移除用户对相应资源的访问权限 资源。
如需了解详情,请参阅 IAM Conditions 概览。
控制台
如需使用标记有条件地向用户授予角色绑定,请参阅 管理对标记的访问权限。
gcloud
如需将基于标记的条件应用于 IAM 政策,请确保您拥有 所需的权限,然后运行以下命令:
gcloud organizations add-iam-policy-binding ORG_ID
--role=roles/ROLE --member=PRINCIPAL
--condition=resource.matchTag('PROJECT_ID/KEY_NAME', 'VALUE_NAME')
ORG_ID
:组织的 ID。ROLE
:要分配给主账号的角色名称。通过 角色名称是预定义角色的完整路径,例如roles/logging.viewer
或自定义角色的角色 ID,例如organizations/{ORG_ID}/roles/logging.viewer
。PRINCIPAL
:您要向其添加主账号的主账号 角色绑定。格式应为user|group|serviceAccount:email
或domain:domain
。例如:user:test-user@gmail.com
、group:admins@example.com
、serviceAccount:test123@example.domain.com
或domain:example.domain.com
。PROJECT_ID
:项目的 ID。KEY_NAME
:代码的显示(简称)名称 键。例如env
。VALUE_NAME
:代码的显示(简称)名称 值。例如prod
。
此命令将 IAM 策略绑定添加到组织的 IAM 策略。 政策绑定由成员、角色和可选条件组成。
例如,如需有条件地向 user1@example.com
授予
在所有 123456789012
个项目资源中拥有以下角色的 spanner.backupAdmin
角色:
标记 env:prod
,请运行以下命令:
gcloud organizations add-iam-policy-binding my-project
--member=user1@example.com --role=roles/spanner.backupAdmin
--condition=resource.matchTag('123456789012/env', 'prod')
列出附加到实例的标记
您可以查看直接附加到实例或由实例继承的标记绑定列表。
gcloud
如需获取直接附加到资源的标记绑定列表,请使用 gcloud resource-manager tags bindings list
命令。如果您将
--effective
标志,您还可以获取由此继承的所有标记绑定
资源。
如需列出附加到实例的所有标记绑定,请运行以下命令:
gcloud resource-manager tags bindings list
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--location=LOCATION
--effective
PROJECT_ID
:项目的 ID。INSTANCE_ID
:实例的 ID。LOCATION
:您的实例的位置。例如us-east1
。
删除标记绑定
移除标记键或值定义时,请确保标记已与实例分离。您必须先删除现有的标记绑定,然后才能删除标记。
控制台
在 Google Cloud 控制台中,前往 Spanner 实例 页面。
选择要为其删除标记绑定的实例。
点击
标记。在“代码”面板中,点击要分离的代码旁边的
删除内容。点击保存。
在确认对话框中,点击确认以分离标记。
系统会显示一条通知以确认您的标记已更新。
gcloud
如需删除标记绑定,请运行以下命令:
gcloud resource-manager tags bindings delete
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/KEY_VALUE
--location=LOCATION
PROJECT_ID
:项目的 ID。INSTANCE_ID
:实例的 ID。ORG_ID
:组织的 ID。KEY_NAME
:代码的显示(简称)名称 键。例如env
。VALUE_NAME
:代码的显示(简称)名称 值。例如prod
。LOCATION
:您的实例的位置。例如us-east1
。
删除标记
删除标记绑定后,您可以删除标记。删除代码 键和标记值,请参阅删除标记。
后续步骤
详细了解 Google Cloud 标记。
详细了解如何使用 Resource Manager 在 Spanner 实例上创建和管理标记。
详细了解标签,这是整理 Google Cloud 资源的另一种方式。
详细了解如何创建带有条件的 IAM 允许政策。