如何标记数千个现有AWS资源?

问题描述 投票:0回答:2

我正在尝试标记各个区域的 1000 多个 AWS 资源。 对于要创建的新资源,我实施了标记策略(SCP)。但对于现有的资源,我该采取什么方法呢?

我想出了以下方法:

  1. 使用 AWS Resource Explorer Service 查找所有区域中所有未标记的资源。

  2. 一个 python 脚本,用于标记与特定服务关联的所有资源。 (注意:我很久以前就编写了一个脚本来查找与实例关联的资源并将标签与它们对齐(如果标签不存在)) 参考:TagResourcesAssociatedWithEC2Instance

  3. 上述脚本可以利用并可与其他资源(RDS、Route53、ECS 等)一起使用

上述方法的问题在于,需要花费大量时间来逻辑地识别彼此关联的所有资源。

有没有更快的方法来根据标签“环境”或“所有者”隔离所有资源,并使用一组预定义的标签来标记所有资源?

我尝试过以下方法:

Python 脚本用于识别未标记的资源,将标签关联到与每个服务一致的资源。 列出帐户中的所有资源 -> 检查标签。 但问题是我找不到仅基于 ARN 的相互依赖关系。

amazon-web-services tags boto3 cost-optimization
2个回答
1
投票

既然您提到您正在使用 Terraform 来部署资源,那么在 Terraform 代码中,您需要在 AWS provider 块中指定

default_tags
设置。添加后,您只需再次运行
terraform apply
,Terraform 就会将这些默认标签添加到 Terraform 管理的每个 AWS 资源中。


0
投票

对于不是由 Terraform 创建的资源,这里是我用 Python 创建的一个小脚本,我认为它可以实现您正在寻找的内容。

您需要告诉脚本以下信息:

要使用的 AWS CLI 配置文件 运行的 AWS 区域 要处理的AWS资源(目前我已经添加了10个选项) 标签键和标签值以及“提示”词可以帮助脚本识别丢失标签的可能值。 您将获得资源列表,以及基于现有资源键、描述和资源 ID 的缺失标签建议。一旦您对标签值建议感到满意,您可以选择批量或一一地将缺失的标签应用到您的 AWS 资源。

© www.soinside.com 2019 - 2024. All rights reserved.