Amazon EC2 Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

为 Systems Manager 文档添加标签

您可以使用 AddTagsToResource API、AWS CLI 或 AWS Tools for Windows 向 Systems Manager 资源 (包括文档、托管实例、Maintenance Window、Parameter Store 参数和补丁基准) 添加标签。

当您具有相同类型的许多资源时,添加标签会很有用 — 您可以根据分配给资源的标签快速识别特定资源。每个标签都包含您定义的一个 和一个可选

例如,您可以为特定环境、部门、用户、组或时间段的文档添加标签。在为文档添加标签后,您可以通过创建一个指定用户可访问的标签的 IAM 策略来限制对该文档的访问权限。有关使用标签限制对文档的访问权限的更多信息,请参阅使用标签控制对文档的访问权限

使用 AWS CLI 为文档添加标签

  1. 在终端 (Linux, OS X, or Unix) 或命令提示符 (Windows) 中,运行 list-documents 命令列出可添加标签的文档。

    Copy
    aws ssm list-documents

    记下您要添加标签的文档的名称。

  2. 运行以下命令为文档添加标签。

    Copy
    aws ssm add-tags-to-resource --resource-type "Document" --resource-id "document-name" --tags "Key=key,Value=value"

    document-name - 您要添加标签的 Systems Manager 文档的名称。

    key 是您提供的自定义密钥的名称。例如,regionquarter

    value 是您要为该密钥提供的值的自定义内容。例如,westQ318

    如果成功,则命令没有输出。

  3. 执行以下命令验证文档标签。

    Copy
    aws ssm list-tags-for-resource --resource-type "Document" --resource-id "document-name"

使用 AWS Tools for Windows 为文档添加标签

  1. 打开 AWS Tools for Windows PowerShell 并运行以下命令以列出您可添加标签的文档:

    Copy
    Get-SSMDocumentList
  2. 一次运行一条以下命令来为文档添加标签:

    Copy
    $tag1 = New-Object Amazon.SimpleSystemsManagement.Model.Tag $tag1.Key = "key" $tag1.Value = "value" Add-SSMResourceTag -ResourceType "Document" -ResourceId "document-name" -Tag $tag1

    document-name - 您要添加标签的 Systems Manager 文档的名称。

    key 是您提供的自定义密钥的名称。例如,regionquarter

    value 是您要为该密钥提供的值的自定义内容。例如,westQ318

    如果成功,则命令没有输出。

  3. 运行以下命令验证文档标签:

    Copy
    Get-SSMResourceTag -ResourceType "Document" -ResourceId "document-name"

使用标签控制对文档的访问权限

在为文档添加标签后,您可以通过创建一个指定用户可访问的标签的 IAM 策略来限制对该文档的访问权限。当用户尝试使用文档时,系统会检查 IAM 策略和为该文档指定的标签。如果用户对分配给该文档的标签没有访问权限,用户会收到访问被拒绝错误。使用以下过程创建一个 IAM 策略来通过使用标签限制对文档的访问权限。

开始前的准备工作

创建文档并添加标签。有关更多信息,请参阅 为 Systems Manager 文档添加标签

使用标签限制用户对文档的访问权限

  1. Open the IAM console at https://console.amazonaws.cn/iam/.

  2. 在导航窗格中选择 Policies,然后选择 Create policy

  3. Create Your Own Policy 部分,选择 Select

  4. Policy Name 字段中,指定一个将它标识为目标文档的用户策略的名称。

  5. 输入描述。

  6. Policy Document 字段中,复制并粘贴以下示例策略。将 tag_keytag_value 替换为您的标签的键值对。

    Copy
    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:GetDocument" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key":[ "tag_value" ] } } } ] }

    您可以使用以下 Condition 格式在策略中指定多个键。指定多个键会为这些键创建 AND 关系。

    Copy
    "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key1":[ "tag_value1" ], "ssm:resourceTag/tag_key2":[ "tag_value2" ] } }

    您可以使用以下 Condition 格式在策略中指定多个值。ForAnyValue 为这些值建立 OR 关系。还可以指定ForAllValues 来建立 AND 关系。

    Copy
    "Condition":{ "ForAnyValue:StringLike":{ "ssm:resourceTag/tag_key1":[ "tag_value1", "tag_value2" ] } }
  7. 选择 Create Policy

  8. 将策略分配给 IAM 用户或组。有关更多信息,请参阅更改 IAM 用户的权限将策略附加到 IAM 组

将策略附加到 IAM 用户或组账户之后,如果用户尝试使用某个文档,并且用户的策略不允许用户访问该文档的标签 (调用 GetDocument API),系统将会返回错误。错误类似于以下内容:

"User: user_name is not authorized to perform: ssm:GetDocument on resource: document-name with the following command."

当文档具有多个标签时,如果用户无权访问这些标签中的任何一个,则用户仍会收到访问被拒绝错误。