本文档介绍了如何使用标签来管理 Cloud Logging 日志存储分区。您可以在组织级或项目级创建标记,以便为资源添加注释。您还可以根据资源是否具有特定标记,有条件地授予 Identity and Access Management (IAM) 角色或有条件地拒绝 IAM 权限。如需了解代码,请参阅代码概览。
例如,如果您使用 BigQuery 分析 Cloud Billing 数据,则可以将 project:production
标记附加到存储来自生产资源的日志数据的日志分桶,并将 project:development
标记附加到存储来自开发资源的日志数据的日志分桶。然后,您可以使用标记查询 Cloud Billing 数据,并查看开发环境和生产环境之间的费用明细。
您可以明确将标记附加到日志分桶,也可以从其父级组织、文件夹和项目继承标记。
准备工作
如需开始使用代码管理日志存储分区,请执行以下操作:
- 请确保您已创建标记并配置其值。您可以使用 Resource Manager 来管理代码定义。如需了解如何创建和管理代码,请参阅创建和管理代码。
-
如需获得使用标记管理日志存储分区所需的权限,请让管理员向您授予项目或组织的以下 IAM 角色:
-
Tag User (
roles/resourcemanager.tagUser
) -
Tag Viewer (
roles/resourcemanager.tagViewer
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含使用标记管理日志存储分区所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需使用标记管理日志存储分区,您需要拥有以下权限:
-
向日志分桶添加或移除标记:
-
resourcemanager.tagValues.{get,list}
-
resourcemanager.tagKeys.{get,list}
-
resourcemanager.projects.get
-
logging.buckets.createTagbinding
-
logging.buckets.deleteTagBinding
-
-
查看附加到日志分桶的标记:
-
resourcemanager.tagValues.{get,list}
-
resourcemanager.tagKeys.{get,list}
-
logging.buckets.listTagBindings
-
logging.buckets.listEffectiveTags
-
-
Tag User (
-
如需获得管理日志存储分区所需的权限,请让您的管理员为您授予项目的 Logs Configuration Writer (
roles/logging.configWriter
) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含
logging.buckets.list
权限,管理日志存储分区需要该权限。
将标记附加到日志存储桶
如需将标记附加到日志存储桶,请执行以下操作:
Google Cloud 控制台
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
找到要将标记附加到的日志存储桶。
在日志存储桶中,点击更多图标 more_vert,然后点击修改标记。
在对话框的直接代码部分中,选择创建代码时所用的资源,找到相应代码。例如,如需使用在项目级创建的代码,请选择选择当前项目作为范围。
您还可以选择手动输入选项,手动搜索项目、组织或代码 ID。
选择适当的键值对,然后点击保存。
系统会显示一个确认更改的对话框。点击确认以最终确认更改。
gcloud
如需将标记附加到日志存储桶,请运行 gcloud resource-manager tags bindings create
命令以创建标记绑定:
gcloud resource-manager tags bindings create \ --tag-value=TAG_VALUE_ID \ --parent=BUCKET_NAME \ --location=LOCATION
在上一个命令中,进行以下替换:
TAG_VALUE_ID:标记值的永久 ID 或命名空间名称。例如
tagValues/4567890123
。如需详细了解标记标识符,请参阅标记定义和标识符。BUCKET_NAME:日志存储桶的名称。例如
logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID
。LOCATION:日志存储桶的位置。
API
如需向日志存储桶附加标记,请使用 tagBindings.create
方法。
查看附加到日志存储桶的标记
如需查看附加到日志存储桶的标记,请执行以下操作:
Google Cloud 控制台
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
找到您要查看其标记的日志存储桶。
标记列中列出了与日志存储桶关联的标记。如需查看与日志存储桶关联的所有代码,请点击 arrow_drop_down More(更多)按钮以展开代码列表。
gcloud
运行 gcloud resource-manager tags bindings list
命令:
gcloud resource-manager tags bindings list \ --parent=BUCKET_NAME \ --location=LOCATION
在上一个命令中,进行以下替换:
TAG_VALUE_ID:标记值的永久 ID 或命名空间名称。例如
tagValues/4567890123
。如需详细了解标记标识符,请参阅标记定义和标识符。BUCKET_NAME:日志存储桶的名称。例如
logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID
。LOCATION:日志存储桶的位置。
可选:如需查看日志存储桶继承的标记,请添加 --effective
标志。添加此标志会返回类似于以下内容的响应:
namespacedTagKey: 961309089256/environment namespacedTagValue: 961309089256/environment/production tagKey: tagKeys/417628178507 tagValue: tagValues/247197504380 inherited: true
如果所有标记都明确附加到日志存储桶,并且没有任何标记被继承,则 inherited
字段为 false 且被省略。
API
如需获取存储桶的标记绑定列表,请使用 tagBindings.list
方法。
移除日志存储桶上的标记
如需移除附加到日志存储桶的代码,您必须删除附加到日志存储桶的代码绑定。如需删除代码,您必须从所有附加的资源中移除代码。
Google Cloud 控制台
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
找到您要移除标记的日志存储桶。
在日志存储桶中,点击更多图标 more_vert,然后点击修改标记。
在对话框中,将指针悬停在要移除的标记上,然后点击
删除项。点击保存以保存更改。系统会显示一个确认更改的对话框。点击确认以最终确认更改。
gcloud
运行 gcloud resource-manager tags bindings delete
命令:
gcloud resource-manager tags bindings delete \ --tag-value=TAG_VALUE_ID \ --parent=BUCKET_NAME \ --location=LOCATION
在上一个命令中,进行以下替换:
TAG_VALUE_ID:标记值的永久 ID 或命名空间名称。例如
tagValues/4567890123
。如需详细了解标记标识符,请参阅标记定义和标识符。BUCKET_NAME:日志存储桶的名称。例如
logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID
。LOCATION:日志存储桶的位置。
API
如需移除日志存储桶上的标记,请使用 tagBindings.delete
方法。
限制
您无法使用 IAM 角色授予来控制主账号在列出 Google Cloud 项目中的日志桶时看到哪些日志桶。校长会看到完整列表或空列表。不过,您可以将 IAM 角色授予与 IAM 条件搭配使用,以限制主账号对日志存储桶可以执行的操作。例如,您可以限制主账号是否可以删除特定日志存储桶。
如果您将 Cloud Billing 数据导出与 BigQuery 搭配使用,则标记可能需要最多 1 小时才能在导出内容中使用。如果标记是在一个小时内添加或移除的,或者日志存储桶存在的时间不超过一个小时,则这些被添加或移除的标记可能不会反映在导出结果中。
包含 IAM 条件的自定义角色和角色授予
如果您打算使用自定义 IAM 角色,并且打算将 IAM 条件附加到角色授予中,则可能需要创建多个自定义角色。将 IAM 条件附加到角色授予后,某些 IAM 权限会失效。
对于 Cloud Logging,如果角色授予包含 IAM 条件,则以下 IAM 权限会失效:
logging.buckets.list
logging.buckets.create
因此,您可能需要创建一个具有 list
和 create
权限的角色,以及另一个包含其他存储桶专用权限的角色。例如,您可以创建一个包含 logging.buckets.delete
和 logging.buckets.update
权限的角色。
授予包含 list
和 create
权限的角色时,请勿向角色授予附加 IAM 条件。授予包含 delete
和 update
权限的角色后,您可以添加一个 IAM 条件,将授予权限的范围限制为具有特定标记的资源。
后续步骤
了解如何设置带有标记的组织政策。
如需了解 Cloud Billing 数据导出中的使用标记,请参阅 Cloud Billing 数据导出文档。