CloudWatch Logグループにタグを設定する

タグ使っていますか?Nameタグはもちろん、コスト配分タグをご利用の方は多いかと思います。先日、CloudWatcロググループにタグを設定しようとしたところ、AWSコンソールからタグを確認したり、タグをつけられない事に気がつきました。AWS CLIでタグの確認と適用を行います。
2019.08.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

タグ使っていますか?Nameタグはもちろん、コスト配分タグをご利用の方は多いかと思います。先日、CloudWatcロググループにタグを設定しようとしたところ、AWSコンソールからタグを確認したり、タグをつけられない事に気がつきました。AWS CLIでタグの確認と適用を行います。

AWS CLIでのタグ適用

ロググループ/aws/events/SSMのタグを表示するには以下のようにします。タグがついていない状態であることがわかります。

$ aws logs list-tags-log-group --log-group-name /aws/events/SSM
{
    "tags": {}
}
$

ロググループ/aws/events/SSMにタグCmBillingGroupxsystemを設定してから、タグを表示します。

$ aws logs tag-log-group --log-group-name /aws/events/SSM --tags CmBillingGroup=xsystem
$ aws logs list-tags-log-group --log-group-name /aws/events/SSM
{
    "tags": {
        "CmBillingGroup": "xsystem"
    }
}
$

まとめてタグの設定状況を確認する

ロググループの一覧を取得し、タグの設定状況を表示するシェルスクリプトを作成しました。以下の内容をcwlogs-check-tags.shで保存します。

#! /bin/bash
log_group_names=`aws logs describe-log-groups --query logGroups[].[logGroupName] --output text`

while read log_group_name
do
  echo $log_group_name
  aws logs list-tags-log-group --log-group-name $log_group_name
done << FILE
$log_group_names
FILE

スクリプトを実行すると、ロググループ名とタグが表示されます。まとめてタグの設定状況を確認したい時にご活用ください。

$ sh ./cwlogs-check-tags.sh
/aws/events/SSM
{
    "tags": {
        "CmBillingGroup": "xsystem"
    }
}
/aws/lambda/LambdaGuardduty2Backlog-dev-main
{
    "tags": {}
}

留意事項

AWS Configルールrequired-tagsを使うと、指定したタグが設定されているか確認できますが、執筆時点でCloudWatchロググループには対応していません。最新の情報はユーザーガイドをご覧ください。

さいごに

CloudWatchロググループのタグを、AWS CLIで表示したり設定したりしました。AWSコンソールから設定できないことから、コスト配分タグの設定漏れが発生しやすい箇所かと思います。一覧表示のスクリプトを使って確認していただければと思います。

参考