回答:
AWSには、アカウントで行われたほとんどのAPI呼び出しを追跡するCloudTrailサービスがあります。次に、これらを指定したS3バケットのファイルに保存します。
https://aws.amazon.com/cloudtrail/
CloudTrailを使用すると、誰またはどのサービスがどの変更を呼び出したかを確認できます。多くの場合、使用された引数も含まれます。
残念ながら、現時点ではすべてのサービスをサポートしていません。
これを助けることができる複数のAWSサービスがあり、どれがあなたに最も適しているかに関してあなたの正確なニーズに本当に依存します。それぞれに異なる機能(およびコスト)が適用されます。
CloudTrailが言及されましたが、あなたの質問(および@Evgeny の回答のコメントで言及されている)を考えると最初に頭に浮かぶオプションは、AWS Config Serviceです。ある時点で(S3バケットに)AWS構成の「スナップショット」を保存しますが、SNSトピックに変更を送信するのにも役立ちます。その後、これらを好きなように処理できます。たとえば、トラフィックの少ないアカウントでは、これらをSlackに直接入力します。トラフィックの多いアカウントではNumberOfMessagesPublished
、そのSNSトピックのメトリックを追跡して、通常よりも多くの変更が行われたかどうかを確認しています。
AWS Configは「ルール」サービスも提供しています。これらは私が期待するよりも少し高価ですが、あなたのニーズに応じて、それらは役に立つかもしれません。遊んでいたときのように、一度にすべてをアクティブにしないでください。各ルールの月額料金がすぐに適用されます。;)(ただし、ルールを使用せずにConfigを使用できます-それが現在私が行っていることです)。
Trusted Advisorもあります。これは、正確に要求したことを実行しませんが、S3バケットを開いたままにしていないかなど、エンジニアがインフラストラクチャを構成する方法に対して特定のチェックを実行するのに便利です。チェックの多くは他の方法でブロックされるため、ビジネスレベルのサポートプラン以上で最も役立ちます。
次に、CloudCheckrなどのサードパーティツールがあり、AWS Cost Explorer、Trusted Advisor、Config、CloudTrail、CloudWatch、Inspector、GuardDutyの側面を組み合わせています。本当に深く入りたいが、すべてを自分で構成する時間を節約したい場合に役立ちます。
または、TerraformやCloudFormationなどのツールを使用してインフラストラクチャを管理し、それらを介してすべての変更を行う必要があることを義務付けることもできます。次に、構成ファイル/テンプレートをソース管理にコミットし、CIのライブインフラストラクチャに対してそれらをテストし、追跡されていない変更が行われた場合にビルドを失敗させることもできます。そうすることで、コミット履歴が監査ログになりますが、エンジニアを訓練する必要があります。