タグとは - AWS リソースのタグ付けのベストプラクティス

タグとは

タグは、リソースに適用されるキーと値のペアであり、目的は、それらのリソースに関するメタデータを格納することです。タグは、キーとオプションの値で構成されるラベルです。現在、すべてのサービスとリソースタイプがタグをサポートしているわけではありません (「Services that support the Resource Groups Tagging API」を参照)。他のサービスでは、独自の API でタグをサポートしている場合があります。タグは暗号化されていないため、個人を特定できる情報 (PII) など、機密データの保存には使用しないでください。

AWS CLI、API、または AWS Management Console を使用してユーザーが作成して AWS リソースに適用するタグを、ユーザー定義タグと呼びます。AWS CloudFormation、Elastic Beanstalk や Auto Scaling などのいくつかの AWS サービスでは、作成し、管理するリソースに自動的にタグが割り当てられます。これらのキーをAWS 生成タグと呼び、通常は aws のプレフィックスが付けられます。このプレフィックスはユーザー定義のタグキーには使用できません。

AWS リソースに追加できるユーザー定義タグの数には、使用要件と制限があります。詳細については、『AWSジェネラルリファレンスガイド』の「タグ名の制限と要件」を参照してください。 AWS 生成タグは、これらのユーザー定義のタグ制限の対象にはなりません。

表 1 — ユーザー定義のタグキーと値の例

インスタンス ID タグキー タグ値
i-01234567abcdef89a CostCenter 98765
Stack Test
i-12345678abcdef90b CostCenter 98765
Stack Production

表 2 — AWS 生成タグの例

AWS 生成タグキー 根拠
aws:ec2spot:fleet-request-id インスタンスを起動した Amazon EC2 スポットインスタンスリクエストを識別します。
aws:cloudformation:stack-name リソースを作成した AWS CloudFormation スタックを識別します。
lambda-console:blueprint AWS Lambda 関数のテンプレートとして使用されるブループリントを識別します。
elasticbeanstalk:environment-name リソースを作成したアプリケーションを識別します。
aws:servicecatalog:provisionedProductArn プロビジョニングされた製品のAmazon リソースネーム (ARN)
aws:servicecatalog:productArn プロビジョニング済み製品の起動元の製品の ARN。

AWS 生成タグは名前空間を形成します。例えば、AWS CloudFormation テンプレートでは、まとめてデプロイするリソースのセットを stack で定義します。ここで、stack-name はリソースを識別するために割り当てるわかりやすい名前です。aws:cloudformation:stack-name などのキーを調べると、パラメータのスコープに使用される名前空間には、aws組織cloudformationサービス、stack-nameパラメータの 3 つの要素が使用されていることがわかります。

ユーザー定義タグも名前空間を使用できるため、組織識別子をプレフィックスとして使用することをお勧めします。そうすれば、タグが管理対象スキーマのものなのか、環境内で使用しているサービスやツールによって定義されたものなのかを、簡単に区別できます。

Establishing Your Cloud Foundation on AWS」ホワイトペーパーでは、実装すべき一連のタグを推奨しています。1 つのタグで使用できるパターンやリストは、多くの場合、企業によって異なります。表 3 の例を見てください。

表 3 — 同じタグキー、異なる値の検証ルール

組織

タグキー タグ値の検証 タグ値の例
会社 A CostCenter 5432, 5422, 5499 5432
会社 B CostCenter ABC* ABC123

これら 2 つのスキーマが別々の組織に属していれば、タグが競合しても問題はありません。ただし、これら 2 つの環境を統合すると、名前空間が競合する可能性があり、検証がより複雑になります。このようなシナリオはないと思われますが、企業は買収や合併されることがあります。また、マネージドサービスプロバイダー、ゲームパブリッシャー、ベンチャーキャピタル企業と提携しているクライアントなど、異なる組織のアカウントが共有された AWS 組織の一部である状況も考えられます。ビジネス名をプレフィックスとして使用して一意の名前空間を定義すれば、表 4 に示すような問題を回避できます。

表 4 - タグキーにおける名前空間の使用

組織

タグキー タグ値の検証 タグ値の例
会社 A company-a:CostCenter 5432, 5422, 5499 5432
会社 B company-b:CostCenter ABC* ABC123

事業の買収や売却が定期的に行われる大規模で複雑な組織では、このような状況がより頻繁に発生します。新規買収のプロセスと慣行がグループ全体で共有されれば、このような状況の問題は解決します。名前空間を明確にしておくと、古いタグの使用状況を報告して関連チームに連絡でき、新しいスキーマを採用してもらえるので便利です。名前空間は、範囲を示したり、組織の所有者と連携したユースケースや責任範囲を表すためにも使用できます。

表 5 - タグキー内のスコープまたはユースケーススコープの例

ユースケース タグキー 根拠 許可された値
データ分類 example-inc:info-sec:data-classification 情報セキュリティ定義のデータ分類セット sensitive, company-confidential, customer-identifiable
操作 example-inc:dev-ops:environment テスト環境と開発環境のスケジューリングの実装 development, staging, quality-assurance, production
ディザスタリカバリディザスタリカバリ example-inc:disaster-recovery:rpo リソースの目標復旧時点 (RPO) の定義 6h, 24h
コスト配分 example-inc:cost-allocation:business-unit 財務チームには、各チームの使用状況と支出に関するコストレポートが必要です。 corporate, recruitment, support, engineering

タグはシンプルで柔軟性があります。タグのキーと値はどちらも可変長の文字列で、幅広い文字セットをサポートできます。長さと文字セットの詳細については、AWS 全般リファレンスの「AWS リソースのタグ付け」を参照してください。タグでは大文字と小文字を区別します。つまり、costCentercostcenterとは別のタグキーです。国によって単語のスペルが異なる場合があり、それがキーに影響する可能性があります。たとえば、米国ではキーを costcenter と定義しても、英国では costcentre が優先される場合があります。リソースタグ付けの観点から見ると、これらは異なるキーです。タグ付け戦略の一環として、スペル、大文字と小文字、句読点を定義します。これらの定義は、リソースを作成または管理するすべての人の参考資料として使用してください。このトピックについては、次のセクション「タグ付け戦略の構築」でさらに詳しく説明します。