最近、AWS SysOpsの勉強をしている延長で「AWS Config」について簡単にまとめます。勉強の精度に応じて適宜ブラッシュアップしていきます。
では早速。
AWS Configって何が出来る?
■AWSの各リソースの変更を記録してくれるサービス。
→ 例えばEC2のインスタンスタイプやタグ、EBSの容量変更などを全て記録してくれる。いわゆる変更管理が出来る。
CloudTrailの利用ではだめ?
CloudTrailでも変更は追えるけど追いづらい・・・。AWS Configであれば特定のリソースに絞って時系列でわかりやすく確認できる。差分もわかりやすいと思う。
■ルール設定が可能でルールに準拠出来ていない場合は教えてくれる。
→ 例えばssh(ポート22)のインバウンドルールで0.0.0.0が許容状態だったら、警告してくれる。なお、Trusted Advisorの「セキュリティ」項目も同じようなチェックはしてくれますが、AWS Configのほうは自分でルールを選択できる。
次の画面はAWS Configのダッシュボードです。事前設定したルールに準拠できているか、ルール対象のリソースの準拠数などを確認出来ます。
- 設定単位:リージョン
- 保存期間:デフォルト7年
※設定から変更可能。 - コスト:ルール評価ごとに 0.001 USD
※そこまで高額にはならない。 - 配信先:S3やSNS
※別途Amazon EventBridgeでキャッチアップも可能。
ルールチェックの「動作契機」は次の通り。
- 定期的
- 構成変更時
※動作契機はルールによって異なる。
ルールは事前定義された「マネージド型」及び自分で構築する「カスタム」が導入出来る。カスタムの場合は自分でLambda等を組み合わせて構築する必要がある。マネージド型には次のようなルールがある。
- cloudtrail-enabled
Checks whether AWS CloudTrail is enabled in your AWS account. - ec2-ebs-encryption-by-default
Check that Amazon Elastic Block Store (EBS) encryption is enabled by default. The rule is NON_COMPLIANT if the encryption is not enabled.
※現状は約300のルールがある。
■ルール非準拠の場合に修復が可能
例えば、次のようなことが可能。
- インバウンド全開のEC2を停止や終了する。
- パブリックなS3のパブリック設定を解除する。
※修復アクションは「Systems Manager Automation」を利用し、現在は300以上の事前定義されたアクションが利用可能となっている。
設定項目に「アグリゲータ」ってあるけどこれは?
複数のソースアカウントとリージョンから AWS Config 設定データとコンプライアンスデータを収集する、AWS Config の新しいリソースタイプです。
https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/config-concepts.html
つまり、1アカウントで複数リージョン、あるいは複数アカウントで複数リージョンの「設定状態」や「チェック結果」(コンプライアンス結果)を収集することが出来るものらしい。規模が大きい場合は有用です。
タイムラインで変更を追ってみる
リソースメニューから任意インスタンスに関わる変更を追ってみます(タイムライン)。対象インスタンスIDのタイムラインを確認した様子が次の図です。
過去に該当インスタンスに対して行われた変更履歴を追うことが出来ます。
変更時にメール通知(概要)
Amazon EventBridgeで「Config」の変更をキャッチアップすることは可能です。例えば、任意リソースの変更が生じた場合はSNS(メール)で通知してもらって早く変更に気付いたりすることが出来ます。
↑任意リソースタイプ、任意リソースIDで絞り込んだキャッチアップが可能となっています。SNS通知やLambda連携によって色々なことが出来そうです。
まとめ
AWS Configでどんなことが出来るのか、基本的な内容をご紹介しました。
企業利用だと各リソースの構成管理を行うことが求められることがありますが、簡単な設定で長期間保存することが出来ます。さらにルール逸脱の状況も簡単に確認できますので、設定しておいて損はないと思われます。
最後までご覧いただきありがとうございました!
コメント