AWS configについてまとめています。
AWS Configは、リソースのインベントリと変更のモニタリングをおこなうサービス
AWS Config は、AWS リソースの設定を評価、監査、審査できるサービスです。AWS Config では、AWS リソースの設定を継続的にモニタリングして記録し、想定された設定になっているかどうかを自動的に評価。評価内容は、ビジュアル画面で表示されます。
関連)AWS Config(リソースのインベントリと変更の追跡)| AWS
社内のガイドラインに沿って運用されているのかどうかを確認できるんですね。評価の結果、このましくな設定や変更を見つけた場合は、記録された設定履歴をさかのぼって原因を確認できます。この仕組により、コンプライアンス違反となる設定を一発で発見できるんですね。コンプライアンス監査やセキュリティ分析、変更管理や運用上のトラブルシューティングに対して活用することができます。
AWS Configの料金
AWS Configは、設定したルールに沿って評価するごとに料金がかかる従量課金制。ルール評価の回数が多くなると単価が少しづつ下がります。
- 最初の 100,000 件のルール評価 リージョンごとのルール評価ごとに 0.001USD
- 次の 400,000 件のルール評価 (100,001~500,000) リージョンごとのルール評価ごとに 0.0008USD
- 500,001 件以上のルール評価 リージョンごとのルール評価ごとに 0.0005USD
AWS Configのメリット
AWS Config は、AWSリソース設定変更を継続的にモニタリングし、記録します。任意の時点で、AWS リソース、AWS リソースの設定、EC2 インスタンス内のソフトウェア設定のインベントリを実行することが可能。以前の状態からの変更が検出されると、Amazon Simple Notification Service (SNS)による通知がユーザにはいしんされます。
AWS Configによる監視ポリシーは、継続的に利用が可能です。AWSリソースのプロビジョニングや設定のルールを定義しておき、単独またはパックと呼ばれるコンプライアンス改善アクションと一緒にパッケージ化してプロビジョニングが可能。パックしておけば1回のクリックで組織全体にデプロイが可能なんですね。変更検知でAmazon SNSと、Amazon Cloud Watch Eventsがトリガーされます。結果、お客様に配信され、確認してアクションを実行できます。
AWS Configの使い方
AWS Configを使うには、AWS Configのページからセットアップを行います。「1-Click セットアップ」を実行すると、難しい設定を行うことなくすぐにAWS Configが使用可能になります。
AWS Configのダッシュボードが表示されます。
「高度なクエリ」では、対象の状態をSQLで取得することができるサンプルクエリが大量に用意されています。AWS Configでは、SQLクエリを実行してAWSリソースの状態を取得可能なんですね。
以下のSQLは、EC2インスタンスのうちステータスがUser initialtedとなっているものを取得します。書式は一般的なSQLのselect文ですね。
SELECT resourceId, resourceName, resourceType, configuration.stateTransitionReason, configuration.instanceType, tags, availabilityZone WHERE resourceType = 'AWS::EC2::Instance' AND configuration.stateTransitionReason = 'User initiated'
関連)EC2 Instances with User initiated state transition
以下は、EC2インスタンスのうち、imageID「ami-12345」というAMIから作られたものを取得するクエリです。
【関連記事】
▶AWSのIAMは、AWSサービスとリソースへのアクセス管理とアクセス分析が可能
SELECT resourceId, resourceType, configuration.instanceType, configuration.placement.tenancy, configuration.imageId, availabilityZone WHERE resourceType = 'AWS::EC2::Instance' AND configuration.imageId = 'ami-12345'
クエリ結果として、以下が取得できます。
{ "QueryInfo": { "SelectFields": [ { "Name": "resourceId" }, { "Name": "resourceType" }, { "Name": "configuration.instanceType" }, { "Name": "configuration.placement.tenancy" }, { "Name": "configuration.imageId" }, { "Name": "availabilityZone" } ] }, "Results": [ "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}", "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2a\",\"resourceType\":\"AWS::EC2::Instance\"}", "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}", "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t1.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2a\",\"resourceType\":\"AWS::EC2::Instance\"}", "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}", "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}", "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}" ] }
AWS Configのまとめ
- AWS ConfigはAWSリソースの設定変更を監視、評価できる機能
- グラフ表示の視覚インタフェースで、想定外の変更がひと目で把握できる
- AWSリソースの状態をSQLクエリで取得可能