CloudWatch テレメトリ設定でOU単位のVPCフローログ自動設定を試してみた
こんにちは!クラウド事業本部のおつまみです!
先日 Amazon CloudWatch の新機能「テレメトリ設定の有効化ルール」が発表されました。
こちらのブログは単一アカウントで有効化ルールを試す内容だったので、今回は組織適用(OUへの適用)を試してみました。
3行まとめ
- CloudWatch テレメトリ設定で組織全体の VPC フローログを自動有効化できる
- アカウント・OU・タグベースでの細かい制御や一元的な管理が可能
- VPC フローログが作成されるタイミングはAWS Configのリソース記録変更タイミングになる
- 新規作成された VPC の場合、3分程度で自動的にフローログが設定される
- 既存 VPC の場合、1~2日程度で自動的にフローログが設定される
これまで
セキュリティやトラブルシューティングのために VPC フローログを有効化することが推奨されていますが、従来は以下のような課題がありました。
- 複数のアカウントや VPC を管理している場合、すべての VPC に対して手動でフローログを設定するのは面倒
- 新しく作成された VPC にフローログの設定を忘れがち
- 組織全体での一貫したログ収集ポリシーの適用が困難
CloudWatch テレメトリ設定の有効化ルールでできること
CloudWatch テレメトリ設定は、AWS リソースのログやメトリクスを自動的に収集・管理するための機能です。
「有効化ルール」を使用することで、以下のようなことが可能になります。
主要機能:
- 新規作成される VPC に自動的にフローログを設定
- 既存の VPC にも一括でフローログを有効化
- タグベースでの細かい制御
- 組織全体での一元的な管理
やってみた
今回は、AWS Organizations の OU(Organizational Unit)構成を活用して、ProductionOU に配置されたアカウントのVPCのみにフローログを有効化する設定を試してみました。
検証環境
AWS Organizations 構成
Root
└── WorkloadOU
├── ProductionOU
│ ├── 本番アカウント (111111111111)
└── DevelopmentOU
└── 開発アカウント (222222222222)
VPC構成
- ProductionOU: 本番アカウントに1個の既存VPC
- DevelopmentOU: 開発アカウントに1個の既存VPC
1. CloudWatch テレメトリ設定を有効化
まず、管理アカウントで CloudWatch テレメトリ設定を有効化します。
私は既に有効化済みだったので、以下のブログを参考にして設定してください。
2. ProductionOU のみを対象とした有効化ルールの作成
「テレメトリ設定」の「データソース」タブから「EC2 VPC」を選択し、「ログ」をクリックします。
範囲を指定
- 有効化ルール名: デフォルトで入力済
- ソースアカウントを選択:
組織内のすべてのアカウント
もしくはアカウントをフィルタリング
を選択します。
今回はProductionOU のみに適用させたいので、アカウントをフィルタリング
を選択します。
- ソースアカウント:
ProductionOU
のOU IDを選択
この設定により、ProductionOU に配置されたアカウントの VPC のみが対象になります。
なおここではOUのみではなく、アカウントIDやタグでの設定も可能です。
送信先を指定
- ロググループ名のパターン:
cloudwatch-telemetry-vpc-flow-logs
(実際にアカウントで作成されるロググループ名) - ログの保持期間:
Never Expire
(コンプライアンス要件に合わせて設定)
データオプションを選択
ログの形式や集計間隔などを指定できます。
今回はデフォルトのままにしました。
プレビューと作成
期待値通りの設定になっているか(特にソースアカウント)を確認し、EC2 VPC 有効化の設定
をクリックします。
3. ルールの適用確認
このように有効化ルールが作成されます。
作成後15~30分ほどすると、 管理アカウントおよび子アカウントにAWS Config にサービスリンクレコーダーが作成されていました。これが CloudWatch テレメトリ設定の実体となります。
冒頭紹介したブログにも書かれていますが、今回作成されたのは PAID でした。
PAID の場合は Config の記録料金発生対象になりますのでご注意ください。
記録範囲は、設定レコーダーにリンクされたサービスによって設定され、範囲内の設定項目 (CIs) が無料 (INTERNAL) で記録されるか、請求コスト (PAID) に影響するかを決定します。
4. 動作確認
ProductionOU下のアカウント
ルール作成から1〜2時間様子見していましたが、ProductionOU 内の既存 VPC にはフローログが作成されませんでした。
既にブログを書いていた先人に聞いたところ「ルール有効化後に作成した新規 VPC にはすぐにフローログが作成された」と有難いお言葉を頂いたので、新規VPCを作成してみました。
すると、約3分ほどで新規 VPC にフローログが作成されたことが確認できました!
- CloudTrailのイベント履歴画面
おそらくAWS Configで記録したリソース変更に連動したタイミングではないかと思います。
そして、約1日と約5時間後に ProductionOU 内の VPC にフローログが自動設定されました!
既存 VPC は設定まで気長に待つ必要がありそうです。
- CloudTrailのイベント履歴画面
DevelopmentOU下のアカウント
期待通り、DevelopmentOU 内のアカウントのVPCにはフローログが設定されませんでした。
管理アカウントからの見え方
管理アカウントのCloudWatchテレメトリ設定からは管理しているアカウントにて、どのくらいの割合でVPCフローログが有効化されているかを確認できます。詳細を確認するには、データソースを表示
をクリックします。
検出されたデータソースからはリソース個別でVPCフローログが有効化されていることを確認できます。アカウントも一緒に確認できるのがいいですね。
注意点と制限事項
コストについて
- AWS Config: この機能は AWS Config のサービスリンクレコーダーを使用するため、Config の記録料金が発生します
- CloudWatch Logs: フローログのデータ量に応じて、ログの保存・分析コストが発生します
削除時の動作
- 有効化ルールを削除しても、既に設定されたフローログは自動的に削除されません
- 不要になったフローログは手動で削除する必要があります
権限要件
- CloudWatch テレメトリ設定を有効化するには、適切な IAM 権限が必要です
- Organizations の管理アカウントまたは委任管理者アカウントでの操作が推奨されます
- 子アカウントで有効化ルールを削除しようとすると下記画像のようなエラーになりました。
さいごに
今回はCloudWatch テレメトリ設定の有効化ルールを使って、特定のOUにのみフローログを自動適用する設定を実際に試してみました。
AWS Organizations のOU構造を活用したガバナンスが確立されている組織にとって非常に有効な機能です。
ぜひこの機能を使ってみてください。
最後までお読みいただきありがとうございました!
以上、おつまみ(@AWS11077)でした!