IAM リソースのタグ付け - AWS Identity and Access Management

IAM リソースのタグ付け

タグは、ユーザーが AWS リソースに割り当てることのできるカスタム属性ラベルです。各 タグは 2 つの部分で構成されます:

  • タグキー (例: CostCenterEnvironmentProjectPurpose)。タグキーでは、大文字と小文字が区別されます。

  • タグ値として知られるオプションのフィールド (例、 111122223333Production、チーム名など)。タグ値を省略すると、空の文字列を使用した場合と同じになります。タグキーと同様に、タグ値は大文字と小文字が区別されます。

これらは共にキーバリューのペアと呼ばれます。IAM リソースで使用できるタグの数の制限については、「IAM クォータおよび AWS STS クォータ、名前の要件、および文字の制限」を参照してください。

タグを使用すると、AWS リソースの特定と整理に役立ちます。多くの AWS のサービスではタグ付けがサポートされるため、さまざまなサービスからリソースに同じタグを割り当てて、リソースの関連を示すことができます。例えば、Amazon S3 バケットに割り当てたタグと同じタグを IAM ロールに割り当てることができます。タグ付け戦略の詳細については、AWS 一般的なリファレンスガイドの「タグ付け AWS リソース」を参照してください。

IAM リソースの特定、整理、追跡に加え、IAM ポリシーのタグを使って、リソースを表示および操作できるユーザーを制御することもできます。タグを使用したアクセスの制御については、「タグを使用した IAM ユーザーおよびロールへのアクセスとそのユーザーおよびロールのアクセスの制御」を参照してください。

AWS STS のタグを使用して、ロールを引き受けるとき、またはユーザーをフェデレートするときにカスタム属性を追加することもできます。詳細については、「AWS STS でのセッションタグの受け渡し」を参照してください。

AWS タグ命名規則を選択する

IAM リソースにタグをアタッチする際は、タグの命名規則を慎重に選択します。すべての AWS タグに同じ規則を適用します。ポリシーでタグを使用して AWS リソースへのアクセスを制御する場合、これは特に重要です。AWS のタグをすでに使用している場合は、命名規則を確認し、必要に応じて調整します。

注記

アカウントが AWS Organizations のメンバーである場合、「Organizations ユーザーガイド」の「Tag policies」(タグポリシー) を参照し、Organizations でタグを使用する方法についてご確認ください。

タグの命名に関するベストプラクティス

ここでは、タグの命名規則に関するベストプラクティスについて説明します。

AWS タグの名前は大文字と小文字が区別されるので、一貫して使用するようにしてください。たとえば、タグ CostCenter とタグ costcenter は別のものです。一方は財務分析とレポート用のコスト配分タグとして設定され、もう一方はそうではないかもしれません。同様に、Name タグは多くのリソース用の AWS コンソールで目にしますが、name タグはそうではありません。

いくつかのタグは AWS により事前に定義されています。また、さまざまな AWS のサービスによって自動的に作成されます。多くの場合、AWS で定義されるタグの名前はすべて小文字で、名前に含まれる単語はハイフンで区切られ、タグのソースサービスを識別するプレフィックスが付きます。例:

  • aws:ec2spot:fleet-request-id のタグは、インスタンスを起動した Amazon EC2 スポットインスタンスリクエストを識別します。

  • aws:cloudformation:stack-name のタグは、リソースを作成した AWS CloudFormation スタックを識別します。

  • elasticbeanstalk:environment-name のタグは、リソースを作成したアプリケーションを識別します。

タグの名前を付ける際は、すべて小文字を使用し、単語はハイフンで区切り、組織名や略称を識別するプレフィックスを付けることを検討してください。例えば、AnyCompany という名前の架空の会社の場合では、次のようにタグを定義できます。

  • anycompany:cost-center のタグは、内部のコストセンターのコードを識別するのに使用

  • anycompany:environment-type のタグは、開発、テスト、本番のいずれの環境であるかを識別するのに使用

  • anycompany:application-id のタグは、リソースが作成されたアプリケーションを識別するのに使用

プレフィックスを付けることで、自分の組織が定義したタグだということが明確に識別でき、AWS または使用中のサードパーティーのツールにより定義されたタグではないことがわかります。すべて小文字を使用し、単語をハイフンで区切ることにより、タグ名に大文字を使用した場合の混乱を避けることができます。例えば、anycompany:project-id の方が、ANYCOMPANY:ProjectIDanycompany:projectIDAnycompany:ProjectId よりも覚えるのが簡単です。

IAM および AWS STS でのタグ付けの規則

IAM および AWS STS でのタグの作成と適用を管理する多数の規則。

命名タグ

IAM リソース、AWS STS assume-role セッション、AWS STS フェデレーションユーザーセッションのタグ命名規則を作成するときは、次の規則に従います。

文字の要件 – タグキーバリューには、文字、数字、空白、記号 (_ . : / = + - @) の任意の組み合わせを使用できます。

大文字と小文字の区別 – タグキーの大文字と小文字の区別は、タグ付けされた IAM リソースの種類によって変わります。IAM ユーザーとロールのタグキーバリューのペアでは、大文字と小文字は区別されませんが、大文字と小文字は維持されます。つまり、Departmentdepartment のタグキーを別々に持つことはできません。Department=finance タグでユーザーをタグ付けし、department=hr タグを追加すると、最初のタグが置き換えられます。2 番目のタグは追加されません。

他の IAM リソースタイプでは、タグキーバリューでは大文字と小文字が区別されます。つまり、Costcentercostcenter タグキーとを個別に使用できます。例えば、カスタマー管理ポリシーに Costcenter = 1234 タグを付け、costcenter = 5678 タグを追加すると、そのポリシーには Costcentercostcenter タグキーの両方が表示されます。

ベストプラクティスとしては、大文字と小文字の扱いに一貫性がない場合は、同様のタグを使用しないことを推奨します。タグに大文字を使用する場合の戦略を決定し、その戦略をすべてのリソースタイプにわたって一貫して実装することを推奨します。タグ付けに関するベストプラクティスの詳細については、「AWS 全般のリファレンス」の「AWS リソースのタグ付け」を参照してください。

IAM リソースにアタッチされているタグキーの、大文字と小文字の区別の差異を次に示します。

タグキーバリューでは大文字と小文字が区別されません

  • IAM ロール

  • IAM ユーザー

タグキーバリューでは大文字と小文字が区別されます。

  • カスタマー管理ポリシー

  • インスタンスプロファイル

  • OpenID Connect ID プロバイダー

  • SAML ID プロバイダー

  • サーバー証明書

  • 仮想 MFA デバイス

加えて、次のルールが適用されます。

  • テキスト aws: から開始するタグキーや値を作成することはできません。このタグプレフィックスは AWS 社内使用のために予約されています。

  • 空の値 (例: phoneNumber = ) を含むタグを作成することができます。空のタグキーを作成することはできません。

  • 1 つのタグで複数の値を指定することはできませんが、カスタムの複数値構造を 1 つの値で作成することができます。たとえば、ユーザー Zhang がエンジニアリングチーム、QA チームで働いているとします。team = Engineering タグ、team = QA タグの順にアタッチする場合は、タグの値を Engineering から QA に変更します。代わりに、カスタム区切り文字を使用して 1 つのタグに複数の値を含めることができます。この例では、team = Engineering:QA タグを Zhang にアタッチします。

    注記

    team タグを使用して、この例のエンジニアへのアクセスを制御するには、Engineering を含む可能性のある各設定を許可するポリシー (例: Engineering:QA) を作成する必要があります。ポリシーのタグの使用の詳細については、「タグを使用した IAM ユーザーおよびロールへのアクセスとそのユーザーおよびロールのアクセスの制御」を参照してください。

タグの適用と編集

タグを IAM リソースにアタッチするときは、次の規則に従います。

  • ほとんどの IAM リソースにはタグを付けられますが、グループ、引き受け済みのロール、アクセスレポート、ハードウェアベース MFA デバイスにはタグを付けることができません。

  • タグエディタを使って IAM リソースにタグ付けすることはできません。タグエディタは IAM タグをサポートしていません。他のサービスでのタグエディタの使用の詳細については、「AWS Resource Groups ユーザーガイド」の「タグエディタでの作業」を参照してください。

  • IAM リソースにタグ付けするには、特定のアクセス許可が必要です。リソースにタグを付ける、またはタグを解除するには、タグを一覧表示するアクセス許可も必要です。詳細については、このページの最後にある各 IAM リソースのトピックのリストを参照してください。

  • AWS アカウントの IAM リソースの数とサイズには制限があります。詳細については、「IAM クォータおよび AWS STS クォータ、名前の要件、および文字の制限」を参照してください。

  • 同じタグを複数の IAM リソースに適用することができます。たとえば、AWS_Development という名前の部門に 12 人のメンバーがあるとします。12 人のユーザーと、department のタグキー、awsDevelopment の値を持つロールを持つことができます (department = awsDevelopment)。また、タグ付けをサポートする他のサービスのリソースで同じタグを使用することもできます。

  • IAM エンティティ (ユーザーまたはロール) は、タグキーが同じである複数のインスタンスを持つことはできません。たとえば、タグのキーバリューのペア costCenter = 1234 を含むユーザーがいる場合は、タグキーバリューのペア costCenter = 5678 をアタッチできます。IAM は、costCenter タグの値を 5678 に更新します。

  • IAM エンティティ (ユーザーまたはロール) にアタッチされているタグを編集するには、新しい値のタグをアタッチして、既存のタグを上書きします。例えば、タグのキーバリューのペア department = Engineering を持つユーザーがいるとします。そのユーザーを QA 部門に移動させる必要がある場合、department = QA タグのキーバリューのペアをこのユーザーにアタッチします。その結果、department タグキーの Engineering 値は、QA 値に置き換わります。