AWS CloudTrail & AWS Config
https://d1.awsstatic.com/webinars/jp/pdf/services/20190618_AWS-Blackbelt_Config.pdf
## CloudTrail とは
- AWS ユーザーの操作をロギングするサービス(全リージョンで有効にしておくのがベストプラクティス)
- ロギングデータはS3に暗号化されて保存
- KMSを利用した暗号化にも対応
- Digest File を利用したログファイル整合性の確認
- CloudTrail ログファイル、ダイジェストファイルの編集・削除の検知
- Bucket Policy により、複数アカウントのCloudTrail Log を1つのバケットに集約することも可能
- CloudTrail 自体の利用料金は無料
- 活用方法
## AWS Config とは
- AWS リソースを切り口に時系列ベースでロギング
- AWS リソースのレポジトリ情報からリソースの変更履歴、構成変更を管理するサービス
- 構成情報は定期的にスナップショットとしてS3に保存(最大7年)
- 必要に応じSNSを使った通知も可能
- 構成情報を元に、現在のシステムがあるべき状態になっているかを評価
- 独自の評価ルール or AWS が適用するルールを利用
- 機能
- 対応しているAWSリソース
- Amazon EC2
- Terminate したインスタンスも確認可能
- Amazon VPC
- Amazon EBS
- Amazon CloudTrail
- Amazon IAM
- Amazon RDS
- AWS Certificate Manager
- S3
- ELB
- AWS Service Catalog
- CloudTrail
- Amazon Redshift
- AWS Systems Manager
- Amazon API Gateway
- AWS CloudFormation
- Amazon DynamoDB tables
- AWS CodeBUild
- AWS CodePipeline
- AWS WAF
- Amazon CloudFront
- AWS Elastic Beanstalk
- AWS Lambda
- AWS X-Ray
- AWS Shield
- ディスカバリの仕組み
- First Discovery
- サポートされるリソースに対して、ディスカバリが実行され、Configuration Item が作成される
- Periodically Discovery
- CIに対して、定期的に構成変更がないかをディスカバリ
- Configuration History
- 6時間ごとにディスカバリ結果を出力
- Configuration Snapshot
- 定期的にSnapshot を出力
- AWS Config リレーションシップでリソースの連携関係を把握できる
- AWS Config Rules
## ベストプラクティス
- AMI の種類のチェック
- 実行中のインスタンスの
- required-tags
- リソースに指定したタグがあるかどうかを確認
- EBSが暗号化されているかを確認
- Systems Manager の管理下におかれているかを確認
- VPC Flow Logs が有効になっているかを確認
- S3 のバケットの権限の確認
- 有効なアクセスキーが、指定日内にローテーションされているかどうかを確認
記録対象について
- すべてのアカウントとリージョンで有効化する
- すべてのリソースタイプについて、設定変更を記録する
- グローバルリソースは1リージョンで記録を有効にする(重複して登録されるのを防ぐ)
- 権限管理が行われ、特定の人にしかアクセスできないS3バケットにヒストリーとスナップショットを保存する
- Data aggregation 機能を利用して、管理アカウントから集中管理する
- Organizations ベースのaggregator を利用する(マルチアカウント環境だと統制がとりにくい)
全体的なAWS Config 利用の流れとしては
アカウントとリージョンを指定してAWS Config データを取得する。それをアグリゲータを利用して、リージョンとアカウントを一つにまとめる。それを集約ビューでまとめる。
## 雑感
CloudTrail はユーザの操作に対してのロギングが行えるサービス。AWS Config はリソースの変更に対してロギングが行えるサービス。
削除されてしまったEC2インスタンスの追跡を行いたい場合はリソースベースのAWS Config が良さそう。それを誰が行なったのかを追跡するのはCloudTrail といった具合なのかなと思った。
AWS Config に関しては、アカウント管理者がユーザに対してルールに準拠しているかを検知したいと行った場合に使えるので中央集権的に管理するのにちょうど良いサービスという印象。CloudTrail は有効にしておくのがベストプラクティスで短期~長期にわたってユーザの操作ログを分析したりするのに向いている。
CloudTrail は有効にしているが、AWS Config は有効に使えていないので業務で使えたらなと思った。