AWS リソースを整理して管理しやすくするための方法として AWS リソースへのタグ付けがあります。
タグ付けを行うことで、AWS リソースを管理しやすくなりますが、AWS の利用者それぞれに自由にタグ付けを設定されてしまうと収拾がつかなくなることがあります。
今回は、アカウント管理や統制を検討している方に向けて、タグの設定を統制する方法を紹介します。
タグの基本知識
タグは「キー」と「値」の2つの部分で構成され、タグ付与対象の AWS リソースの管理、識別、整理、検索、フィルタリングに役立ちます。*1
例えば、本番環境・検証環境とでリソースを区別したい時や、利用部門ごとにリソースを区別したいといった場合に利用できます。
※ ほとんどの AWS リソースがタグに対応していますが、一部対応していないサービス・リソースタイプもあります。
タグポリシー
タグポリシーとは
タグポリシーはポリシーの一種で、組織のアカウント内のリソース間でタグを標準化するのに役立ちます。タグポリシーでは、リソースのタグ付けルールを指定します。*2
タグポリシーを利用することで以下が実現できます。
- 特定のタグキーが使用される場合に、使用できるタグ値を制限できる
- 大文字小文字の区別を強制できる
例えば、"Env" タグキーで、タグ値は "Prd", "Dev", "Stg" のいずれかを指定させたい場合に、これを強制させることができます。
タグポリシーの作成
タグポリシーの利用には、AWS Organizations の有効化(すべての機能の有効)を実施する必要があります。
AWS Organizations は、複数の AWS アカウント を統合するためのアカウント管理サービスです。*3
まず、AWS Organizations コンソールでタグポリシーを有効化します。
次に、ポリシーを作成をクリックします。
タグポリシー作成画面でポリシー名など項目を入力します。
「タグ」セクションがありますが、こちらは今作成しようとしているタグポリシー自体に付与されるタグの事を指しています。
「ビジュアルエディタまたは JSON」セクションでポリシーを設定することができます。タグキー大文字化コンプライアンスの項目は、大文字小文字も区別されて判定されるという設定です。
ここでは、タグキー "Env" を使用する場合に、"Prd", "Dev", "Stg" のタグ値のみが許可されるというポリシーを S3 バケットに対して設定しています。
タグポリシーの適用
タグポリシーを作成しただけでは、どの AWS アカウントにも適用されていない状態です。そのため、タグポリシーを強制したい AWS アカウントや組織(OU)にアタッチする必要があります。
タグポリシーの動作
実際にタグポリシーの動作を確認してみると、指定した形式でないタグを登録しようとするとエラー文が表示されとなり登録できない動作となります。
ここでは、タグキー "Env" を使う場合に、"Prd", "Dev", "Stg" のタグ値のどれにも合致していなかったためエラーとなっています。
なお、今回付与したタグポリシーによって、"Env" タグ名以外のタグが付与できなくなることはありません。"Name" タグ等の、タグポリシーで指定していないタグキーは引き続き自由に設定できます。
また、あくまで指定した形式のタグ登録のみ許可されるという動作のため、適切なタグが付与されていない場合に、リソースそのものの作成が拒否されることはありません。
おわりに
今回はタグポリシーの利用方法を紹介しました。
タグはほとんどのAWSリソースに付与することができますが、多くの人が利用する環境や複数AWSアカウントがある場合は、タグ値が煩雑になりがちだと思います。
タグポリシーを利用することで、特定のタグキーに対して大文字小文字の違いも含めてタグ値を強制することができます。
本記事がAWS Organizationsを利用してのアカウント管理や統制を検討している方の参考になれば幸いです。