标记 AWS Security Hub 资源 - AWS Security Hub

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

标记 AWS Security Hub 资源

标签是一个可选标签,您可以定义它并将其分配给 AWS 资源,包括某些类型的 AWS Security Hub 资源。标签可以帮助您以不同的方式识别、分类和管理资源,例如,按用途、所有者、环境或其他标准。例如,您可以使用标签来区分资源、识别支持某些合规性要求或工作流程的资源或分配成本。

您可以为以下类型的 Security Hub 资源分配标签:自动化规则、配置策略和 Hub 资源。

标签基础知识

一个资源可具有多达 50 个标签。每个标签都包含您定义的一个标签键和一个可选的标签值标签键是一种常见的标签,充当更具体的标签值的类别。标签值 充当标签键的描述符。

例如,如果您为不同的环境创建不同的自动化规则(一组自动化规则用于测试账户,另一组用于生产账户),则可以为这些规则分配 Environment 标签密钥。关联的标签值可能是适用于与测试账户关联规则的 Test,也可能是与生产账户和 OU 关联规则的 Prod

在为 AWS Security Hub 资源定义并分配标签时,请注意以下几点:

  • 每个资源最多可以有 50 个标签。

  • 对于每个资源,每个标签键都必须是唯一的,并且只能有一个标签值。

  • 标签键和值区分大小写。作为最佳实践,我们建议您定义标签大写的策略,并在您的资源中一致地实施该策略。

  • 一个标签密钥最多可以包含 128 个 UTF-8 字符。标签值最多可以包含 256 个 UTF-8 字符。这些字符可以是字母、数字、空格或以下符号:_ . : / = + - @

  • aws: 前缀专门预留供 AWS 使用。您不能在您定义的任何标签键或值中使用它。此外,您无法更改或删除使用此前缀的标签键或值。使用此前缀的标签不计入每个资源的 50 个标签配额中。

  • 您分配的任何标签仅适用于您的 AWS 账户 并且仅在您分配它们的 AWS 区域 中可用。

  • 如果您使用 Security Hub 为资源分配标签,则标签仅应用于直接存储在适用 AWS 区域 中的 Security Hub 的资源。它们不适用于 Security Hub 在其他 AWS 服务 为您创建、使用或维护的任何关联的支持资源。例如,如果您为更新与 Amazon Simple Storage Service (Amazon S3) Service 相关的调查发现的自动化规则分配标签,则这些标签仅应用于 Security Hub 中指定区域的自动化规则。它们不适用于您的 S3 存储桶。要同时为关联资源分配标签,您可以使用 AWS Resource Groups 或 AWS 服务 来存储资源,例如用于 S3 存储桶的 Amazon S3。为关联资源分配标签可以帮助您识别 Security Hub 资源的支持资源。

  • 如果删除资源,则分配给该资源的所有标签也将被删除。

重要

不要在标签中存储机密或其他类型的敏感数据。标签可供许多 AWS 服务 访问,包括 AWS Billing and Cost Management。它们不适合用于敏感数据。

要为 Security Hub 资源添加和管理标签,您可以使用 Security Hub 控制台、Security Hub API 或 AWS Resource Groups Tagging API。通过 Security Hub,在创建资源时,您可以将标签添加到资源中。您还可以为单个现有资源添加和管理标签。通过资源组,您可以为跨多个 AWS 服务(包括 Security Hub)的多个现有资源批量添加和管理标签。

有关其他添加标签的提示和最佳实践,请参阅《为 AWS 资源添加标签用户指南》中的为 AWS 资源添加标签

在 IAM policy 中使用标签

开始为资源添加标签后,您可在 AWS Identity and Access Management (IAM) policy 中定义基于标签的资源级权限。通过这种方式使用标记,您可以更全面地控制您 AWS 账户 中的哪些用户和角色有权创建和标记资源,以及哪些用户和角色有权添加、编辑和删除标签。要基于标签控制访问,您可以在 IAM policy 的条件元素中使用与标签关联的条件密钥

例如,您可以创建一个 IAM policy,允许用户拥有对所有 AWS Security Hub 资源的完全访问权限(如果资源的 Owner 标签指定了用户名):

{ "Version":"2012-10-17", "Statement": [ { "Sid": "ModifyResourceIfOwner", "Effect": "Allow", "Action": "securityhub:*", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

如果您定义基于标签的资源级权限,该权限立即生效。这意味着,您的资源在创建后会更安全,而且您可以快速开始将标签用于新资源。您还可以使用资源级权限来控制哪些标签键和值可以与新的和现有资源关联。有关更多信息,请参阅 IAM 用户指南中的使用标签控制对 AWS 资源的访问权限

向 AWS Security Hub 资源添加标签

要向单个 AWS Security Hub 资源添加标签,您可以使用 Security Hub 控制台或 Security Hub API。控制台不支持向 Hub 资源添加标签。

要同时向多个 Security Hub 资源添加标签,请使用 AWS Resource Groups Tagging API 的标记操作。

重要

向资源添加标签可能会影响对该资源的访问。在向资源添加标签之前,请查看任何可能使用标签控制资源访问权限的 AWS Identity and Access Management (IAM) 策略。

Console

要将标签添加到资源中

创建自动化规则或配置策略时,Security Hub 控制台会提供向其添加标签的选项。您可以在标签部分中提供标签密钥和标签值。

Security Hub API & AWS CLI

要将标签添加到资源中

要创建资源并以编程方式向其添加一个或多个标签,请使用适合您要创建的资源类型的操作:

在您的请求中,使用 tags 参数指定要添加到资源的每个标签的标签键和可选标签值。该 tags 参数指定对象数组。每个对象都指定一个标签密钥及其关联的标签值。

要将一个或多个标签添加到现有资源,请使用 Security Hub API 的 TagResource 操作,或者如果您使用的是 AWS CLI,请运行 tag-resource 命令。在您的请求中,指定您要向其添加标签的资源的 Amazon 资源名称(ARN)。使用 tags 参数为要添加的每个标签指定标签密钥 (key) 和可选的标签值 (value)。tags 参数指定一个对象数组,每个标签密钥对应一个对象及其关联的标签值。

例如,以下 AWS CLI 命令将具有 Prod 标签值的 Environment 标签键添加到指定配置策略。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。

示例 CLI 命令:

$ aws securityhub tag-resource \ --resource-arn arn:aws:securityhub:us-east-1:123456789012:configuration-policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tags key=Environment,value=Prod

其中:

  • resource-arn 指定要向其添加标签的配置策略的 ARN。

  • Environment 是要添加到规则中的标签的标签密钥。

  • Prod 是指定标签键(Environment)的标签值。

在以下示例中,该命令向配置策略添加了多个标签。

$ aws securityhub tag-resource \ --resource-arn arn:aws:securityhub:us-east-1:123456789012:configuration-policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tags key=Environment,value=Prod key=CostCenter,value=12345 key=Owner,value=jane-doe

对于 tags 数组中的每个对象,都需要 keyvalue 参数。但是,value 参数的值可以是空字符串。如果您不想将标签值与标签密钥相关联,请不要为 value 参数指定值。例如,以下命令添加一个没有关联标签值的 Owner 标签键:

$ aws securityhub tag-resource \ --resource-arn arn:aws:securityhub:us-east-1:123456789012:configuration-policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tags key=Owner,value=

如果标记操作成功,Security Hub 将返回一个空的 HTTP 200 响应。否则,Security Hub 会返回 HTTP 4 xx 或 500 响应,说明操作失败的原因。

查看 AWS Security Hub 资源的标签

您可以使用 Security Hub 控制台或 Security Hub API 查看 Security Hub 自动化规则或配置策略的标签(包括标签键和标签值)。控制台不支持查看 Hub 资源的标签。

要同时查看多个 Security Hub 资源的标签,请使用 AWS Resource Groups Tagging API 的标记操作。

Console
查看资源的标签
  1. 使用 Security Hub 管理员的凭证,打开 AWS Security Hub 控制台,网址为 https://console.aws.amazon.com/securityhub/

  2. 根据要添加标签的资源类型,请执行以下操作之一:

    • 要查看自动化规则的标签,请在导航窗格中选择自动化。然后,选择自动化规则。

    • 要查看配置策略的标签,请在导航窗格中选择配置。然后,在策略选项卡上,选择配置策略旁边的选项。将打开一个侧面板,其中显示分配给策略的标签数量。您可以展开标签标头以查看标签键和标签值。

标签部分列出当前分配给该资源的所有标签。

Security Hub API & AWS CLI

查看资源的标签

要检索和查看现有资源的标签,请调用 ListTagsForResource API。在您的请求中,使用 resourceArn 参数指定资源的 Amazon 资源名称(ARN)。

如果您使用的是 AWS CLI,请运行 list-tags-for-resource 命令并使用参数 resource-arn 指定资源的 ARN。例如:

$ aws securityhub list-tags-for-resource --resource-arn arn:aws:securityhub:us-east-1:123456789012:configuration-policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

如果操作成功,Security Hub 将返回一个 tags 数组。数组中的每个对象都指定了当前分配给资源的标签(包括标签密钥和标签值)。例如:

{ "tags": [ { "key": "Environment", "value": "Prod" }, { "key": "CostCenter", "value": "12345" }, { "key": "Owner", "value": "" } ] }

其中 EnvironmentCostCenterOwner 是分配给资源的标签键。Prod 是与 Environment 标签键关联的标签值。12345 是与 CostCenter 标签键关联的标签值。Owner 标签密钥没有关联的标签值。

要检索所有带有标签的 Security Hub 资源以及分配给每个资源的所有标签的列表,请使用 AWS Resource Groups Tagging API 的 GetResources 操作。在您的请求中,将 ResourceTypeFilters 参数的值设置为 securityhub。要执行此操作,使用 AWS CLI,并请运行 get-resources 命令并将 resource-type-filters 参数的值设置为 securityhub。例如:

$ aws resourcegroupstaggingapi get-resources -\-resource-type-filters "securityhub"

如果操作成功,Resource Groups 将返回一个 ResourceTagMappingList 数组。该数组包含每个带有标签的 Security Hub 资源的一个对象。每个对象都指定 Security Hub 资源的 ARN 以及分配给该资源的标签键和值。

编辑 AWS Security Hub 资源的标签

要编辑 AWS Security Hub 资源的标签(标签键或标签值),可以使用 Security Hub API。Security Hub 控制台目前不支持标签编辑。

要同时编辑多个 Security Hub 资源的标签,请使用 AWS Resource Groups Tagging API 的标记操作。

重要

编辑资源的标签可能会影响对资源的访问。在编辑资源的标签密钥或值之前,请查看可能使用该标签控件资源访问权限的任何 AWS Identity and Access Management (IAM) 策略。

Security Hub API & AWS CLI

编辑资源的标签

当您以编程方式编辑资源的标签时,会用新值覆盖现有标签。因此,编辑标签的最佳方法取决于您是要编辑标签密钥、标签值还是两者都有。要编辑标签密钥,请删除当前标签添加新标签

要仅编辑或删除与标签密钥关联的标签值,请使用 Security Hub API 的 TagResource 操作覆盖现有值。如果您使用的是 AWS CLI,请运行 tag-resource 命令。在您的请求中,指定要编辑或删除标签值的资源的 Amazon 资源名称(ARN)。

要编辑标签值,请使用 tags 参数指定要更改其标签值的标签密钥。您还应该为密钥指定新的标签值。例如,以下 AWS CLI 命令将分配给指定自动化规则的 Environment 标签键的标签值从 Prod 更改为 Test。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。

$ aws securityhub tag-resource \ --resource-arn arn:aws:securityhub:us-east-1:123456789012:configuration-policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tags key=Environment,value=Test

其中:

  • resource-arn 指定配置策略的 ARN。

  • Environment 是与要更改的标签值关联的标签键。

  • Test 是指定标签键 (Environment) 的新标签值。

要从标签密钥中移除标签值,请不要在 value 参数中为该密钥的 tags 参数指定值。例如:

$ aws securityhub tag-resource \ --resource-arn arn:aws:securityhub:us-east-1:123456789012:configuration-policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tags key=Owner,value=

如果操作成功,Security Hub 将返回空的 HTTP 200 响应。否则,Security Hub 会返回 HTTP 4 xx 或 500 响应,说明操作失败的原因。

从 AWS Security Hub 资源中移除标签

要从 AWS Security Hub 资源中移除标签,您可以使用 Security Hub API。Security Hub 控制台目前不支持移除标签。

要同时从多个 Security Hub 资源中移除标签,请使用 AWS Resource Groups Tagging API 的标记操作。

重要

从资源中删除标签可能对影响资源访问。在移除标签之前,请查看可能使用该标签控件资源访问权限的任何 AWS Identity and Access Management (IAM) 策略。

Security Hub API & AWS CLI

要从资源中删除标签

要以编程方式从资源中删除一个或多个标签,请使用 Security Hub API 的 UntagResource 操作。在请求中,使用 resourceArn 参数指定要从中删除标签的资源的 Amazon 资源名称(ARN)。使用 tagKeys 参数指定要删除的标签的标签键。要移除多个标签,请为要移除的每个标签附加 tagKeys 参数,并用和号 (&) 分隔,例如,tagKeys=key1&tagKeys=key2。如果仅从资源中删除特定的标签值(而不是标签键),请编辑标签而不是删除标签。

如果您使用的是 AWS CLI,请运行 untag-resource 命令从资源中移除一个或多个标签。在 resource-arn 参数中,指定要从中移除标签的资源的 ARN。使用 tag-keys 参数指定要删除的标签的标签键。例如,以下命令从指定配置策略中移除 Environment 标签(包括标签键和标签值):

$ aws securityhub untag-resource \ --resource-arn arn:aws:securityhub:us-east-1:123456789012:configuration-policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tag-keys Environment

其中,resource-arn 指定要移除标签的配置策略的 ARN,Environment 是要移除的标签的标签键。

要从资源中移除多个标签,请添加每个额外的标签密钥作为 tag-keys 参数的参数。例如:

$ aws securityhub untag-resource \ --resource-arn arn:aws:securityhub:us-east-1:123456789012:configuration-policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --tag-keys Environment Owner

如果操作成功,Security Hub 将返回空的 HTTP 200 响应。否则,Security Hub 会返回 HTTP 4 xx 或 500 响应,说明操作失败的原因。