Amazon Web Services ブログ

AWS リソースのタグ管理 〜タグ付けと統制〜(前編)

AWS リソースにタグ付けをすると、リソース整理、コスト配分、アクセス制御などを行うことが可能です。本ブログではタグ付け戦略やアカウント分離戦略 (*) が検討済であるという前提のもとで、タグ付けの実装に関する情報を前後編に分けてご紹介します。前編ではタグを効果的に活用するために (1) タグ付けを効果的に行う方法(2) タグ付けの統制を行う方法を、実際の操作や設定方法の参考となるウェブサイトと共にご紹介します。後編ではタグ付けの目的に応じて (3)タグ付けと統制を行うための具体的なサンプルをご紹介します。

(*) AWSリソースに実際のタグづけを行う前に、目的に合わせたタグ付け戦略を必ず作成します。タグ付け戦略のベストプラクティスについては AWS Whitepaper をご参照ください。また、タグ付けの主要な目的としてリソース・コスト配分を検討される場合には、アカウント分離の戦略も併せてご検討ください。アカウント分離の戦略としては、例えば、巨大なアカウントの作成は障害の影響範囲を拡大させるため、避けることなどを検討します。アカウント分離戦略の詳細については、こちらの AWS ブログも併せてご参照ください。

(1) タグ付けを効果的に行う方法

AWSリソースのタグはタグキーとタグ値で構成されます。AWS マネジメントコンソールから、コストが発生する全てのリソースに個別にタグ付けすることができますし、多数のリソースにタグ付けする場合の手間を減らせる機能も用意されています。

タグには Key と Value を指定

a. 手動作成したリソースへのタグ付け

タグエディタ (Tag Editor)

リージョンやリソースタイプなど条件に合致する複数のリソースに一度にタグ付けすることが可能です。タグエディタの具体的な操作方法は同ユーザーガイド内のタグの管理ページをご参照ください。

 AWS リソースグループのタグ付けAPI

リソースグループのタグ付け API を使うことで、タグに関する様々な操作を行うことが可能です。タグ付けAPIの詳細については、当該の API Reference をご参照ください。

b. IaC (Infrastructure as Code) リソースへのタグ付け

AWS CloudFormation

CloudFormation を用いて AWS リソースを操作する際に、Tags プロパティを追加することで自動的にタグ付けが可能です。例えば、EC2 インスタンスのプロパティの Syntax は 同ユーザーガイド内の該当ページをご参照ください。

AWS Cloud Development Kit (AWS CDK)

AWS CDK を用いて AWS リソースを操作する際に、Tags クラスを用いてタグ付けが可能です。Tags クラスの記載例は同デベロッパーガイド内のタグ付けページをご参照ください。

(2) タグ付けの統制を行う方法

複数の作業者にてタグ付けを行う場合や、複数のタイミングでタグ付けを行う場合には、タグの付け忘れや誤ったタグ付けを無くすような仕組みを作り統制をとることを検討ください。タグ付けの統制には、リアクティブガバナンスとプロアクティブガバナンスの考え方があります。リアクティブガバナンスとプロアクティブガバナンスはどちらか一方だけに拘らずに用途に応じてバランスよく使用することをお勧めします。

a.リアクティブガバナンス

タグ付けにおけるリアクティブガバナンスの目的は、適切にタグ付けされていないリソースを見つけることです。

自動的に非準拠リソースを発見したい場合

AWS Organizations のタグポリシー

タグポリシーはポリシーの一種で、組織のアカウント内のリソース間でタグを標準化するのに役立ちます。タグポリシーを使用する場合の操作については、Organizations ユーザーガイド内のタグポリシーの作成、更新、削除ページをご参照ください。ポリシーの準拠状況については、マネジメントコンソールを通してだけでなく、AWS リソースグループのタグ付けAPI の GetComplianceSummary などで確認することが可能です。

AWS Config ルール

AWS Config を使用して AWS リソースの設定内容を評価することが可能です。Config ルールでは 「required-tags」マネージドルールを使用することで、指定したタグがリソースにあるかどうかを確認できます。マネージドルールを使用する具体的な手順については同デベロッパーガイド内のAWS Configルールの管理ページをご参照ください。Config ルールを Organizationsと連携することで、Config ルールを Organizations 配下のアカウントに対してルール適用することも可能です。Organizations 連携の詳細については、関連ブログ 「委任された管理者から AWS Config ルールと適合パックをデプロイする」や、AWS Black Belt Online Seminar の AWS Config Update を参照ください。

Amazon CloudWatch Events

CloudWatch Events を使用すると非準拠タグをモニタリングできます。例えば、新しく付けられたタグが有効なタグポリシーに準拠していないことを検知します。CloudWatch Eventでルールを追加する具体的な手順については、ユーザーガイドの該当ページをご参照ください。CloudWatch Events を使用した非準拠タグのモニタリングに使用する具体的なルールの記載については、ユーザーガイドの該当ページをご参照ください。

手動で個別に非準拠リソースを検索する場合

タグエディタ (Tag Editor)

上でもご紹介をしたタグエディタを用いてタグ付けの状況を検索して確認することが可能です。

 AWS Resource Explorer

AWS Resource Explorer はリソースの検索および発見サービスです。Resource Explorer の具体的な操作方法は同ユーザーガイドの該当ページをご参照ください。

その他

AWS Cost Explorer

AWS Cost Explorer は、コストと使用状況を表示および分析するために使用できるツールです。コスト配分タグを使用している場合には、Cost Explorerのタグのフィルタリングを用いて、当初の予定コストと実績コストを比較することでタグの付け忘れや付け間違いを発見するということが可能です。具体的なデータのフィルタリング方法については同ユーザーガイドの該当ページをご参照ください。

b.プロアクティブガバナンス

タグ付けにおけるプロアクティブガバナンスの目的は、標準化されたタグがリソース作成時に一貫して適用されるように制度や仕組みを事前に準備することです。

AWS Organizations のタグポリシー

リアクティブガバナンスでもご紹介したタグポリシーの設定を”強制”とすることでポリシー非準拠のタグ検知だけでなく、ポリシー非準拠のタグ付けリクエストの実行を制限することが可能です。”強制”とする場合の操作は Organizations のユーザーガイドの強制についてのページをご参照ください。

AWS Organizations の サービスコントロールポリシー

サービスコントロールポリシー (SCP) は、組織のアクセス許可の管理に使用できる組織ポリシーの一種で、作成される特定のリソースにタグを要求することも可能です。具体的なポリシーの操作は同ユーザーガイドの該当ページをご参照ください。

AWS Identity and Access Management (IAM) ポリシー

IAMでも aws:RequestTag 条件キーを用いてタグ付要求の制限が可能です。具体的な設定例は IAM ユーザーガイドの該当ページをご参照ください。

なお、制限を強制する場合には、運用への想定外の影響を発生させないように事前に注意深く影響確認を行うことをお勧めします。

おわりに:

本ブログではタグを効果的に活用するために (1) タグ付けを効果的に行う方法(2) タグ付けの統制を行う方法を、実際の操作や設定方法の参考となるウェブサイトと共にご紹介しました。後編ではタグ付けの目的に応じて (3)タグ付けと統制を行うための具体的なサンプルをご紹介します。適切なタグ付けを行うことで、AWSリソースの管理が容易になります。ぜひタグの有効利用を検討ください。

参考情報:

この記事はカスタマーソリューションマネージャーの北川裕介と髙木昇により作成されました。ご質問やお問い合わせはお問い合わせページ、もしくは担当営業までご連絡をお願いします。AWS リソースのタグ付けについては以下も併せてご参照ください。