BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS】Organizationsを使用してCloudWatchのアカウント連携やってみた

はじめに

こんにちは!
株式会社BFT名古屋支店の新人エンジニア ケセランパサランです。
先日AWS Organizationsという複数のAWSアカウントを組織として一括管理できる機能を使用して、CloudWatchを統合してみたのですが…アカウント連携の方法が2種類あることを知らなかったので、遠回りをしてしまいました(汗)
今回はその連携方法ごとのできることの違いや、設定方法(マネジメントコンソール)をアウトプットしたいと思います。

複数のAWSアカウントを1つのアカウントで監視したい!
だけど、何ができるの?見え方はどうなるの?どう設定すればいいの?連携方法ごとの違いは?という方、この記事を読んでいただければ概要~設定方法までざっくり理解いただけると思います!
Organizationsを使用しない場合でも、主な手順やアカウント連携の概念は変わらないので参考になると思います。



目次




構成と用語解説

AWS Organizationsとは、複数のAWSアカウントを統合するためのアカウント管理サービスです。AWS Organizationsでは、一括請求、セキュリティ、コンプライアンスなど様々な機能において一元管理をすることができます。
公式ユーザガイドかこちら↓
AWS Organizations の概要 - AWS Organizations

例えば3アカウントでOrganizationsとCloudWatchを使用する場合、以下のような構成にできます。
CloudWatchのアカウント連携はOrganizationsを使用しなくてもできますが、使用した方が設定がスムーズに行えるのでおすすめです!

CloudWatchアカウント連携構成図

3つのアカウントはAアカウントを親とする組織に所属しており、このAアカウント(親アカウント)をCloudWatch連携する際にモニタリングアカウント(監視する側)とします。監視される側のアカウントはソースアカウントと呼ばれます。
モニタリングアカウントは同時にソースアカウントになることも可能です。



2つのアカウント連携方法の違い

実は、CloudWatchには「クロスアカウントオブザーバビリティ」「クロスアカウントクロスリージョンCloudWatchコンソール」という2種類のアカウント連携方法があります。
ご存知だったでしょうか?私はこれに気づかずに作業を進め…あれ?できないぞ??となりました(笑)

どちらも他のアカウントの監視情報を別のアカウントで見ることができるようになることには違いないのですが、見れる情報やできることに違いがあります。その違いをまとめたのが以下の表になります。

CloudWatchアカウント連携方法比較

ずばり、「クロスアカウントオブザーバビリティ」の方が統合、同じ画面ですべてのアカウントを見る、という印象で、「クロスアカウントクロスリージョンCloudWatchコンソール」の方が他アカウントに切り替え、のぞき見、という印象ですね。

実際の画面は以下のような感じになります。

クロスアカウントオブザーバビリティ↓

クロスアカウントオブザーバビリティ画面



クロスアカウントクロスリージョンCloudWatchコンソール↓

クロスアカウントクロスリージョンCloudWatchコンソール画面




設定方法ざっくり解説

2つのアカウント連携の設定手順については公式のユーザガイドがあるので、ここでは手順をざっくりと解説したいと思います。
どちらもマネジメントコンソールでCloudWatchを開き、左側のナビゲーションペインの下の方にある「設定」から行います。
2023年11月現在では以下のような画面が表示されます。上部の黄色で囲ってある方がクロスアカウントオブザーバビリティの、下部の緑色で囲ってある方がクロスアカウントクロスリージョンCloudWatchコンソールの設定です。
なお以下の作業はすべてAdmin権限で実施した場合のものですので、最低限必要な権限は別途ご自身の環境で調整ください。

CloudWatch設定画面



クロスアカウントオブザーバビリティ

公式ユーザガイドはこちらです↓
CloudWatch のクロスアカウントオブザーバビリティ - Amazon CloudWatch

  1. ユーザガイドの手順のはじめの「必要なアクセス許可」は、操作するユーザに付与する必要があります。Admin権限の場合は不要です。
  2. モニタリングアカウント(監視する側)で「モニタリングアカウント設定」をします。ソースアカウント(監視される側)の情報などを入力します。
  3. 設定が終わると表示される「アカウントをリンクするためのリソース」から、テンプレートをダウンロードします。
  4. そのテンプレートを使用してSatckSetを作成します。リージョンは手順1を実行したリージョンで行います。※ターゲットアカウントとの間に信頼関係がない場合(Organizationsを使用しない場合)は以下のサイトを参考に、モニタリングアカウントとソースアカウントそれぞれで権限を作成します( セルフマネージド型のアクセス許可を付与する - AWS CloudFormation

Organizationsを使用する場合はモニタリングアカウントで操作が簡潔します。非常にありがたいですね!


クロスアカウントクロスリージョンCloudWatchコンソール

公式ユーザガイドはこちらです↓
クロスアカウントクロスリージョン CloudWatch コンソール - Amazon CloudWatch

  1. ソースアカウント(監視される側)で「データを共有」をします。モニタリングアカウント(監視する側)の情報などを入力します。
  2. 入力が終わるとダウンロードできるテンプレートをダウンロードします。
  3. そのテンプレートを使用してStackを作成します。
  4. モニタリングアカウント(監視する側)にログインして、「クロスアカウントクロスリージョンを表示」を有効化します。
  5. Organizationsを使用する場合は「組織のアカウントリストを表示する」を設定すると、アカウントを切り替えるところでアカウント名が表示されるようになる。

こちらの設定手順ではソースアカウントからの操作がメインとなっていますね。
また、クロスアカウントオブザーバビリティはStackSet、クロスアカウントクロスリージョンCloudWatchコンソールではStackを使用するところもややこしいので注意が必要です!



おわりに

最後まで読んでいただきありがとうございました!
CloudWatchのアカウント連携がまさか2通りもあるなんて夢にも思っていなかったです。
この記事を読んで同じ遠回りをする人が少しでも減れば幸いです!

また今回はOrganizationsを使用した場合と使用しなかった場合の2通りを試しましたが、Organizationsを使用した方が権限なども整えられたりしていて非常にスムーズでした。
そもそも複数アカウントを扱う機会自体が少ないかもしれませんが、もし機会があれば一括請求、アカウント連携等簡単に行えるOrganizationsをぜひ使用してみてくださいね~


参考サイト