re:Invent 2024 が始まり、新たな発表がたくさん出てきました。
今回は、Amazon CloudWatch でテレメトリ設定を一元的に可視化できるようになりましたので、早速検証してみました。
また、AWS Config がサービスリンクレコーダーのサポートを開始したことも発表されましたが、この2つは同時に利用するものです。
アップデート概要
CloudWatch のオブザーバビリティ機能に対し、それらのログやトレースを収集するための設定状況を一元的に可視化できる
Amazon VPC フローログ、Amazon EC2 詳細メトリクス、AWS Lambda トレースが監視対象
CloudWatch のテレメトリ設定を有効化すると、AWS Config の新機能である「サービスリンクレコーダー」が自動的に有効化される
テレメトリ設定を有効化する
テレメトリ設定は、アカウント単位か組織全体で有効化できます。
今回は組織全体で有効化してみます。
必要に応じて、委任管理者アカウントを登録することができます。
CloudWatchの「テレメトリ設定」を押下します。

ちなみに、アカウント単位で有効化する場合は、「オンにする」→「このアカウント」から有効化します。
これから実施する、組織設定をすれば「この組織」も選択できるようになります。

CloudWatchの「設定」を押下します。

「Organization」を選択し、「信頼されたアクセス権限を有効にする」を押下します。

IAMロールが作られるという注意書きが表示されるので確認後、「信頼されたアクセス権限を有効にする」を押下します。

「委任管理者を登録する」を押下します。

委任管理者にしたいAWSアカウントIDを入力し、「委任管理者を登録する」を押下します。

組織設定管理が有効化になりました。
続いて、「CloudWatchテレメトリ設定」を有効化します。

組織のテレメトリ設定が有効になりました。

ちなみに、今回は「設定」画面で組織のテレメトリ設定を有効化しましたが、最初の画面から「テレメトリ設定」→「オンにする」→「この組織」でも同じように組織のテレメトリ設定を有効化できます。

無効化する際は、「設定」画面から無効化できます。
IAMロールとConfigサービスリンクレコーダーを確認する
IAMロールを確認すると、「AWSServiceRoleForObservabilityAdmin」ロールが作成されています。


以下が詳細なポリシーです。
許可
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:ListAccounts", "organizations:ListAccountsForParent", "organizations:ListChildren", "organizations:ListParents", "organizations:DescribeOrganization", "organizations:DescribeOrganizationalUnit" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "config:PutServiceLinkedConfigurationRecorder", "config:DeleteServiceLinkedConfigurationRecorder" ], "Resource": [ "arn:aws:config:*:*:configuration-recorder/AWSConfigurationRecorderForObservabilityAdmin/*" ] }, { "Effect": "Allow", "Action": [ "config:PutConfigurationAggregator", "config:DeleteConfigurationAggregator", "config:SelectAggregateResourceConfig" ], "Resource": [ "arn:aws:config:*:*:config-aggregator/aws-service-config-aggregator/observabilityadmin.amazonaws.com/*" ] }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": [ "arn:aws:iam::*:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig" ], "Condition": { "StringEquals": { "iam:AWSServiceName": [ "config.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "config.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess" ], "Resource": "*", "Condition": { "StringEquals": { "organizations:ServicePrincipal": [ "config.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "organizations:ListDelegatedAdministrators" ], "Resource": "*", "Condition": { "StringEquals": { "organizations:ServicePrincipal": [ "observabilityadmin.amazonaws.com", "config.amazonaws.com" ] } } } ] }
信頼関係
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
続いて、Configを確認します。
Configの設定でサービスリンクレコーダー「AWSConfigurationRecorderForObservabilityAdmin」が作成されています。

記録されたリソースタイプで、Amazon VPC フローログ、Amazon EC2 詳細メトリクス、AWS Lambda トレースが監視対象となっていることが分かります。

テレメトリ設定を確認する
CloudWatchのテレメトリ設定を確認します。
テレメトリ設定を自動で検出し、設定状況を表示してくれます。
「リソースを表示」では全てリソースが表示され、画面下のリンクはそれぞれの項目でフィルタされた状態でリソースが表示されます。
「リソースを表示」を押下します。

各リソースのテレメトリ設定状況が表示されます。

有効化されない場合は、詳細なメトリクス、ログ、トレースが「オフ」になっています。
サポートされていない場合は、「NS」と表示されます。
試しにLambda関数でトレースを有効化してみます。

モニタリングツールから「Lambda service trace」を有効化します。

ついでにタグも設定しておきます。

しばらくすると、テレメトリ設定の画面のステータスが更新されました。

先ほど設定したLambda関数のトレース設定が「オン」と判定されています。

タグも「1」と更新されており、リンクを押下すると先ほど設定したタグが表示されます。

まとめ
CloudWatchのオブザーバビリティ機能が豊富になってきましたが、各リソースの設定状況が有効になっているかを確認するには、各リソースを見に行くしかありませんでした。
今回のアップデートにより、テレメトリ設定を一元的に可視化することができ、簡単に設定状況を確認できます。
運用をしていると、気付かないうちに監視設定が無効になっていることも考えられるので、有効化しておいて損はないと思います。