Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

AWS Config を使ってTagのチェックを行う。

More than 1 year has passed since last update.

はじめに

AWSを運用していていつも悩まされるのはTagの付け忘れです。
時間が経ってしまうと何のインスタンスかいちいちログインして調べないと分からない場合もたまに。。。
そういったTagの付け忘れをいち早く検知するためにAWS Configを使ってみました。

AWS Configとは

AWSリソースのレポジトリ情報を取得し、リソースの設定履歴、構成変更を管理したり、取得した構成情報を元に、現在のシステムがあるべき状態になっているかを評価することができるサービスです。

サポートされているリソース

現在、サポートされているリソースはこちらを参照してください。

料金

はじめの10ルールまでは「1リージョン、1ヶ月、アクティブなConfig Rule 1つあたり、2.00USD」だそうです。(2018-07-17現在)
料金については日々変動するため正確な費用を知りたい場合はサービス料金ページで確認してください。
また、AWS Configを使うにあたり、追加料金が発生する可能性があるので、細かく費用を気にする場合はその点は注意です。

ー AWS公式ページより
設定のスナップショットおよび設定履歴ファイルは指定した S3 バケットに送信され、Amazon Simple Notification Service (SNS) によって設定変更通知が送信されます。標準の Amazon S3 および Amazon SNS の料金が適用されます。カスタムルールは AWS Lambda を使用して作成します。標準の AWS Lambda の料金が適用されます。
別途記載がない限り、表示されている料金には VAT、GST、売上税その他取引に対して適用される一切の税金および関税は含まれません。

設定

今回利用するルールは required-tagsというルールです。
指定したタグがリソースにあるかどうか、もしくは指定した値かどうかの確認を行うことができます。

ルール追加

まずは AWS Config サービスへ移動し、「ルールの追加」をクリックします。
スクリーンショット 2018-07-15 13.27.24.png

・ルールの追加

「required-tags」を選択します。
スクリーンショット 2018-07-15 13.28.13.png

名前を入力します。(今回はデフォルト)
スクリーンショット 2018-07-15 13.31.28.png

・トリガー

変更範囲は「リソース」を選択し、リソースに「EC2:Instance」を選びます。
※ここは必要に応じて対象リソースを調整してください。
スクリーンショット 2018-07-15 13.31.44.png

・ルールのパラメータ

今回は「tag1Key」に「Name」を設定します。
ここでNameタグが付与されているかどうかチェックするよう指定しています。
スクリーンショット 2018-07-15 13.31.57.png

「保存」をクリックして設定は完了です。
スクリーンショット 2018-07-15 13.35.57.png

コンプライアンスが「評価中」から変わったらチェック完了です。

結果

コンプライアンスチェックが完了し、準拠していない場合は以下のように表示されます。
ルール名をクリックするとより詳細情報へと移動します。
スクリーンショット 2018-07-15 22.37.26.png

評価の詳細を見ると1つが「準拠」でもう1つが「非準拠」になっています。
スクリーンショット 2018-07-15 22.38.15.png

EC2サービスへ移動し、非準拠となっているのを確認するとNameタグが付いていないインスタンスでした。
スクリーンショット 2018-07-15 22.51.10.png

次にNameタグを付けて再評価してみます。
適当に値はconfigにしておきます。
スクリーンショット 2018-07-15 23.20.01.png

設定したら「再評価」をクリックします。ただ、評価したばっかでクリックするとエラーとなる場合があるので時間を置くか「結果の削除」をクリックしてやり直してみてください。
スクリーンショット 2018-07-15 23.21.01.png

評価が完了すると先ほど「非準拠」だったのが「準拠」に変わりました
スクリーンショット 2018-07-16 21.46.34.png

Valueの指定

今度はNameタグに「config」という値が設定されているかをチェックします。
まずはルールの編集の鉛筆マークをクリックします。
スクリーンショット 2018-07-16 21.53.16.png

「tag1Value」に「config」と入力して「保存」をクリックします。
スクリーンショット 2018-07-16 21.53.48.png

先ほどと同様に「再評価」が完了すると以下のように表示されました。
スクリーンショット 2018-07-16 21.55.04.png

今度は先ほどのインスタンスではなくNameタグに「test」と入力された方が「非準拠」となりました。
先ほどはTagが付与されていない場合のみでしたが、tag1Valueで指定することでNameタグに「config」という値以外を非準拠とすることもできます。

さらに、複数のValueパターンを指定したい場合、カンマ区切りで設定することで可能になります。
スクリーンショット 2018-07-17 8.56.08.png

Nameタグでの活躍は低そうですが、サービス単位や部署ごとで分けたい場合などはServicesタグやCategoryタグなどの付与を必須とし、入力値も指定することで呼称なども統一できて良いと思います。

おわりに

Nameタグを付け忘れたり、スペルミスなどで誤った値を付けてしまっていたら後で気づくのは難しいと思います。
そこで、AWS Configを使ってTag管理することで、インスタンスにNameタグが付いているか、カテゴリ分けができているかをチェックしてくれるので便利です。

hengjiu
AWSであなたの仕事を快適に。 〜 For your Comfortable Working 〜
https://www.hengjiu.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away