IAM ユーザーとロールのタグ付け
IAM タグでタグキー – 値のペアで、カスタム属性を IAM エンティティ(ユーザーまたはロール)に追加できます。たとえば、位置情報をユーザーに追加するには、タグキー
location
とタグ値 us_wa_seattle
を追加できます。または、3 つの位置 (loc-country =
us
、loc-state = wa
、loc-city =
seattle
) のタグキー – キーのペアを使用できます。タグを使用して、エンティティのリソースへのアクセスや、エンティティにアタッチできるタグを制御できます。タグを使用したアクセスの制御については、「IAM リソースタグを使用した IAM ユーザーおよびロールへのアクセスとそのユーザーおよびロールのアクセスの制御」を参照してください。
AWS STS のタグを使用して、ロールを引き受けるとき、またはユーザーをフェデレートするときにカスタム属性を追加することもできます。詳細については、「AWS STS でのセッションタグの受け渡し」を参照してください。
AWS タグ命名規則を選択する
IAM ユーザーおよびロールにタグをアタッチし始めるときは、タグ命名規則を慎重に選択します。すべての AWS タグに同じ規則を適用します。ポリシーでタグを使用して
AWS リソースへのアクセスを制御する場合、これは特に重要です。AWS のタグをすでに使用している場合は、命名規則を確認し、必要に応じて調整します。タグ付けのカテゴリと戦略の詳細については、AWS General Reference ガイドの「AWS タグ付け AWS リソース」を参照してください。タグ付けのユースケースとベストプラクティスを確認するには、「タグ付けのベストプラクティス
IAM および AWS STS でのタグ付けの規則
IAM および AWS STS のタグの作成と適用を管理する多数の規則。
命名タグ
IAM ユーザー、IAM ロール、AWS STS assume-role セッション、および AWS STS フェデレーティッドユーザーセッションのタグ命名規則を作成する場合は、次の規則を確認してください。
-
タグキーと値には、文字、数字、空白、記号 (_ . : / = + - @ .) の任意の組み合わせを使用できます。
-
タグキー – 値のペアは大文字と小文字が区別されませんが、大文字と小文字は保持されます。つまり、
Department
とdepartment
のタグキーを別々に持つことはできません。Department=foo
タグでユーザーをタグ付けし、department=bar
タグを追加すると、最初のタグが置き換えられます。2 番目のタグは追加されません。 -
テキスト
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 エンティティ (ユーザーまたはロール) にアタッチするとき、次の規則を確認します。
-
ユーザーまたはロールにタグを付けることはできますが、グループやポリシーにタグを付けることはできません。
-
タグエディタを使用して、IAM エンティティにタグ付けすることはできません。タグエディタは IAM タグをサポートしていません。他のサービスでのタグエディタの使用については、『AWS マネジメントコンソール ユーザーガイド』の「タグエディタの使用」を参照してください。
-
IAM エンティティにタグ付けするには、特定のアクセス許可が必要です。ロールやユーザーにタグ付けまたはタグ解除するには、タグを一覧表示するアクセス許可も必要です。詳細については、「IAM エンティティのタグ付けに必要なアクセス許可」を参照してください。
-
AWS アカウントの IAM リソースの数とサイズは制限されています。詳細については、「IAM および 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
値に置き換わります。
IAM エンティティのタグ付けに必要なアクセス許可
IAM エンティティ (ユーザーまたはロール) が他のエンティティをタグ付けできるようにするには、アクセス許可を設定する必要があります。IAM ポリシーの次の IAM タグアクションのいずれかまたはすべてを指定することができます。
-
iam:ListRoleTags
-
iam:ListUserTags
-
iam:TagRole
-
iam:TagUser
-
iam:UntagRole
-
iam:UntagUser
IAM エンティティが特定のユーザーのタグを追加、一覧表示、または削除できるようにするには
タグを管理する必要のある IAM エンティティのアクセス許可ポリシーに、以下のステートメントを追加します。アカウント番号を使用して、<username>
を、管理する必要のあるユーザー名に置き換えます。この例の JSON ポリシードキュメントを使用してポリシーを作成する方法については、「[JSON] タブでのポリシーの作成」を参照してください。
{ "Effect": "Allow", "Action": [ "iam:ListUserTags", "iam:TagUser", "iam:UntagUser" ], "Resource": "arn:aws:iam:*:
<account-number>
:user/<username>
" }
IAM ユーザーがタグを自己管理できるようにするには
独自のタグの管理をユーザーに許可するアクセス許可ポリシーに、以下のステートメントを追加します。この例の JSON ポリシードキュメントを使用してポリシーを作成する方法については、「[JSON] タブでのポリシーの作成」を参照してください。
{ "Effect": "Allow", "Action": [ "iam:ListUserTags", "iam:TagUser", "iam:UntagUser" ], "Resource": "arn:aws:iam:*:user/${aws:username}" }
IAM エンティティが特定のユーザーにタグを追加できるようにするには
指定したユーザーのタグを追加する必要はあるが、削除やタグ付けは不要な IAM エンティティのアクセス許可ポリシーに、以下のステートメントを追加します。
iam:AddRoleTags
および iam:AddUserTags
アクションでは、iam:ListRoleTags
および iam:ListUserTags
アクションも含める必要があります。
このポリシーを使用するには、<username>
を、管理する必要のあるユーザー名に置き換えます。この例の JSON ポリシードキュメントを使用してポリシーを作成する方法については、「[JSON] タブでのポリシーの作成」を参照してください。
{ "Effect": "Allow", "Action": [ "iam:ListUserTags", "iam:TagUser" ], "Resource": "arn:aws:iam:*:
<account-number>
:user/<username>
" }
IAM エンティティが特定のロールのタグを追加、一覧表示、または削除できるようにするには
タグを管理する必要のある IAM エンティティのアクセス許可ポリシーに、以下のステートメントを追加します。<rolename>
を、管理する必要のあるロールの名前に置き換えます。この例の JSON ポリシードキュメントを使用してポリシーを作成する方法については、「[JSON] タブでのポリシーの作成」を参照してください。
{ "Effect": "Allow", "Action": [ "iam:ListRoleTags", "iam:TagRole", "iam:UntagRole" ], "Resource": "arn:aws:iam:*:
<account-number>
:role/<rolename>
" }
または、IAMFullAccess
IAM エンティティのタグの管理 (コンソール)
IAM ユーザーまたはロールのタグは、AWS マネジメントコンソール から管理することができます。
ユーザーまたはロールのタグを管理するには (コンソール)
-
AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/
)を開きます。 -
コンソールのナビゲーションペインで、[ロール] または [ユーザー] を選択し、編集するエンティティの名前を選択します。
-
[タグ] タブを選択し、以下のいずれかのアクションを完了します。
-
エンティティにタグがない場合は、[タグの追加] を選択します。
-
[タグの編集] を選択して、既存のタグセットを管理します。
-
-
タグのセットを完了するには、タグを追加または削除します。次に、[変更の保存] を選択します。
IAM エンティティのタグの管理 (AWS CLI または AWS API)
IAM ユーザーおよびロールのタグを表示、アタッチ、または削除することができます。AWS CLI または AWS API を使用して IAM ユーザーおよびロールのタグ付けを管理できます。
IAM ロールに現在アタッチされているタグを一覧表示するには (AWS CLI または AWS API)
-
AWS CLI: aws iam list-role-tags
-
AWS API: ListRoleTags
IAM ユーザーに現在アタッチされているタグを一覧表示するには (AWS CLI または AWS API)
-
AWS CLI: aws iam list-user-tags
-
AWS API: ListUserTags
タグを IAM ロールにアタッチするには (AWS CLI または AWS API)
-
AWS CLI: aws iam tag-role
-
AWS API: TagRole
タグを IAM ユーザーにアタッチするには (AWS CLI または AWS API)
-
AWS CLI: aws iam tag-user
-
AWS API: TagUser
IAM ロールからタグを削除するには (AWS CLI または AWS API)
-
AWS CLI: aws iam untag-role
-
AWS API: UntagRole
IAM ユーザーからタグを削除するには (AWS CLI または AWS API)
-
AWS CLI: aws iam untag-user
-
AWS API: UntagUser
他の AWS サービスのリソースにタグをアタッチする方法については、これらのサービスのドキュメントを参照してください。
IAM を使用して、タグで詳細なアクセスを許可する設定については、「IAM ポリシーの要素: 変数とタグ」を参照してください。